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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Google Docs is an online office suite, see https://www.google.com/docs/about/.
- 2.
Pixlr is a popular online tool for photo editing, see https://pixlr.com/.
- 3.
ShareLatex is an online Latex editor, see https://sharelatex.com/.
- 4.
- 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
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
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
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)
Cachin, C., Samar, A.: Secure distributed DNS. In: 2004 International Conference on Dependable Systems and Networks, pp. 423–432. IEEE (2004)
Castro, M., Liskov, B.: Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4), 398–461 (2002)
Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)
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)
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)
Fraser, N.: Differential synchronization. In: Proceedings of the 9th ACM Symposium on Document Engineering, pp. 13–20. ACM (2009)
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
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM TOPLAS 12(3), 463–492 (1990)
Lamport, L., Shostak, R., Pease, M.: The Byzantine generals problem. ACM TOPLAS 4(3), 382–401 (1982)
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)
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
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)
Myers, E.W.: An O(ND) difference algorithm and its variations. Algorithmica 1(1), 251–266 (1986)
Nogueira, R., Araujo, F., Barbosa, R.: CloudBFT: elastic Byzantine fault tolerance. In: IEEE PRDC, pp. 180–189. IEEE (2014)
Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv. (CSUR) 22(4), 299–319 (1990)
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)
Wehrman, I., Pallemulle, S.L., Goldman, K.J.: Extending Byzantine fault tolerance to replicated clients. Technical report WUCSE-2006-7, Washington University (2006)
Yang, Z.: Using a Byzantine-fault-tolerant algorithm to provide a secure DNS. Ph.D. thesis, Massachusetts Institute of Technology (1999)
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)
Zhao, W., Babi, M.: Byzantine fault tolerant collaborative editing. In: IET International Conference on Information and Communications Technologies (IETICT 2013) (2013)
Acknowledgment
This research was supported by DFG through project OptScore.
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 IFIP International Federation for Information Processing
About this paper
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)