WebBFT: Byzantine Fault Tolerance for Resilient Interactive Web Applications

  • Christian BergerEmail author
  • Hans P. ReiserEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10853)


Byzantine fault tolerant (BFT) applications are usually implemented with dedicated clients that interact with a set of replicas with some BFT protocol. In this paper, we explore the possibility of using web-based clients for interaction with a BFT service. Our contributions address the trustworthy deployment of client code and configuration in a browser-based execution environment (client bootstrapping), the design and implementation of a BFT client within the constraints of a browser-based JavaScript execution environment, and publish-subscribe extensions to the standard request/reply interaction model of BFT state machine model to simplify the implementation of efficient interactive web applications.



This research was supported by DFG through project OptScore.


  1. 1.
    Awerbuch, B., Scheideler, C.: Group spreading: a protocol for provably secure distributed name service. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 183–195. Springer, Heidelberg (2004). Scholar
  2. 2.
    Bessani, A., Sousa, J., Alchieri, E.E.P.: State machine replication for the masses with BFT-SMaRt. In: 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, pp. 355–362, June 2014Google Scholar
  3. 3.
    Bessani, A.N., Alchieri, E.: A guided tour on the theory and practice of state machine replication. In: Tutorial at the 32nd Brazilian Symposium on Computer Networks and Distributed Systems (2014)Google Scholar
  4. 4.
    Cachin, C., Samar, A.: Secure distributed DNS. In: 2004 International Conference on Dependable Systems and Networks, pp. 423–432. IEEE (2004)Google Scholar
  5. 5.
    Castro, M., Liskov, B.: Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4), 398–461 (2002)CrossRefGoogle Scholar
  6. 6.
    Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)CrossRefGoogle Scholar
  7. 7.
    Clement, A., Kapritsos, M., Lee, S., Wang, Y., Alvisi, L., Dahlin, M., Riche, T.: Upright cluster services. In: Proceedings of ACM SOSP, pp. 277–290. ACM (2009)Google Scholar
  8. 8.
    Clement, A., Marchetti, M., Wong, E., Alvisi, L., Dahlin, M.: BFT: the time is now. In: Proceedings of the 2nd Workshop on Large-Scale Distributed Systems and Middleware, p. 13. ACM (2008)Google Scholar
  9. 9.
    Fraser, N.: Differential synchronization. In: Proceedings of the 9th ACM Symposium on Document Engineering, pp. 13–20. ACM (2009)Google Scholar
  10. 10.
    Fraser, N.: Diff, match and patch libraries for plain text (2012). Accessed 20 September 17
  11. 11.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM TOPLAS 12(3), 463–492 (1990)CrossRefGoogle Scholar
  12. 12.
    Lamport, L., Shostak, R., Pease, M.: The Byzantine generals problem. ACM TOPLAS 4(3), 382–401 (1982)CrossRefGoogle Scholar
  13. 13.
    Looker, N., Munro, M., Xu, J.: Increasing web service dependability through consensus voting. In: 29th Annual International Computer Software and Applications Conference, COMPSAC 2005, vol. 2, pp. 66–69. IEEE (2005)Google Scholar
  14. 14.
    Martins, R., Gandhi, R., Narasimhan, P., Pertet, S., Casimiro, A., Kreutz, D., Veríssimo, P.: Experiences with fault-injection in a Byzantine fault-tolerant protocol. In: Eyers, D., Schwan, K. (eds.) Middleware 2013. LNCS, vol. 8275, pp. 41–61. Springer, Heidelberg (2013). Scholar
  15. 15.
    Merideth, M.G., Iyengar, A., Mikalsen, T., Tai, S., Rouvellou, I., Narasimhan, P.: Thema: Byzantine-fault-tolerant middleware for web-service applications. In: 24th IEEE Symposium on Reliable Distributed Systems (SRDS), pp. 131–140. IEEE (2005)Google Scholar
  16. 16.
    Myers, E.W.: An O(ND) difference algorithm and its variations. Algorithmica 1(1), 251–266 (1986)MathSciNetCrossRefGoogle Scholar
  17. 17.
    Nogueira, R., Araujo, F., Barbosa, R.: CloudBFT: elastic Byzantine fault tolerance. In: IEEE PRDC, pp. 180–189. IEEE (2014)Google Scholar
  18. 18.
    Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv. (CSUR) 22(4), 299–319 (1990)CrossRefGoogle Scholar
  19. 19.
    Sun, D., Xia, S., Sun, C., Chen, D.: Operational transformation for collaborative word processing. In: Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work, pp. 437–446. ACM (2004)Google Scholar
  20. 20.
    Wehrman, I., Pallemulle, S.L., Goldman, K.J.: Extending Byzantine fault tolerance to replicated clients. Technical report WUCSE-2006-7, Washington University (2006)Google Scholar
  21. 21.
    Yang, Z.: Using a Byzantine-fault-tolerant algorithm to provide a secure DNS. Ph.D. thesis, Massachusetts Institute of Technology (1999)Google Scholar
  22. 22.
    Zhao, W.: BFT-WS: a Byzantine fault tolerance framework for web services. In: 11th International IEEE EDOC Conference Workshop (EDOC 2007), pp. 89–96. IEEE (2007)Google Scholar
  23. 23.
    Zhao, W., Babi, M.: Byzantine fault tolerant collaborative editing. In: IET International Conference on Information and Communications Technologies (IETICT 2013) (2013)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2018

Authors and Affiliations

  1. 1.University of PassauPassauGermany

Personalised recommendations