Skip to main content

WebBFT: Byzantine Fault Tolerance for Resilient Interactive Web Applications

  • Conference paper
  • First Online:
Distributed Applications and Interoperable Systems (DAIS 2018)

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 10853))

Abstract

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 is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Google Docs is an online office suite, see https://www.google.com/docs/about/.

  2. 2.

    Pixlr is a popular online tool for photo editing, see https://pixlr.com/.

  3. 3.

    ShareLatex is an online Latex editor, see https://sharelatex.com/.

  4. 4.

    See https://github.com/brix/crypto-js.

  5. 5.

    BFT-WS uses the Apache Axis2 framework for Java. However, state-of-the art web clients use JavaScript instead of Java in order to make them platform independent. Also, the underlying replication library PBFT is not maintained anymore and a variety of replication libraries with better performance exist, e.g. BFT-SMaRt [2].

References

  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). https://doi.org/10.1007/978-3-540-27836-8_18

    Chapter  Google Scholar 

  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 2014

    Google Scholar 

  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. Cachin, C., Samar, A.: Secure distributed DNS. In: 2004 International Conference on Dependable Systems and Networks, pp. 423–432. IEEE (2004)

    Google Scholar 

  5. Castro, M., Liskov, B.: Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4), 398–461 (2002)

    Article  Google Scholar 

  6. Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)

    Article  Google Scholar 

  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. 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. Fraser, N.: Differential synchronization. In: Proceedings of the 9th ACM Symposium on Document Engineering, pp. 13–20. ACM (2009)

    Google Scholar 

  10. Fraser, N.: Diff, match and patch libraries for plain text (2012). https://code.google.com/archive/p/google-diff-match-patch/. Accessed 20 September 17

  11. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM TOPLAS 12(3), 463–492 (1990)

    Article  Google Scholar 

  12. Lamport, L., Shostak, R., Pease, M.: The Byzantine generals problem. ACM TOPLAS 4(3), 382–401 (1982)

    Article  Google Scholar 

  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. 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). https://doi.org/10.1007/978-3-642-45065-5_3

    Chapter  Google Scholar 

  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. Myers, E.W.: An O(ND) difference algorithm and its variations. Algorithmica 1(1), 251–266 (1986)

    Article  MathSciNet  Google Scholar 

  17. Nogueira, R., Araujo, F., Barbosa, R.: CloudBFT: elastic Byzantine fault tolerance. In: IEEE PRDC, pp. 180–189. IEEE (2014)

    Google Scholar 

  18. Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv. (CSUR) 22(4), 299–319 (1990)

    Article  Google Scholar 

  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. 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. Yang, Z.: Using a Byzantine-fault-tolerant algorithm to provide a secure DNS. Ph.D. thesis, Massachusetts Institute of Technology (1999)

    Google Scholar 

  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. Zhao, W., Babi, M.: Byzantine fault tolerant collaborative editing. In: IET International Conference on Information and Communications Technologies (IETICT 2013) (2013)

    Google Scholar 

Download references

Acknowledgment

This research was supported by DFG through project OptScore.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Christian Berger or Hans P. Reiser .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 IFIP International Federation for Information Processing

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Berger, C., Reiser, H.P. (2018). WebBFT: Byzantine Fault Tolerance for Resilient Interactive Web Applications. In: Bonomi, S., Rivière, E. (eds) Distributed Applications and Interoperable Systems. DAIS 2018. Lecture Notes in Computer Science(), vol 10853. Springer, Cham. https://doi.org/10.1007/978-3-319-93767-0_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-93767-0_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-93766-3

  • Online ISBN: 978-3-319-93767-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics