skip to main content
10.1145/3190508.3190538acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article
Open Access

Hyperledger fabric: a distributed operating system for permissioned blockchains

Published:23 April 2018Publication History

ABSTRACT

Fabric is a modular and extensible open-source system for deploying and operating permissioned blockchains and one of the Hyperledger projects hosted by the Linux Foundation (www.hyperledger.org).

Fabric is the first truly extensible blockchain system for running distributed applications. It supports modular consensus protocols, which allows the system to be tailored to particular use cases and trust models. Fabric is also the first blockchain system that runs distributed applications written in standard, general-purpose programming languages, without systemic dependency on a native cryptocurrency. This stands in sharp contrast to existing block-chain platforms that require "smart-contracts" to be written in domain-specific languages or rely on a cryptocurrency. Fabric realizes the permissioned model using a portable notion of membership, which may be integrated with industry-standard identity management. To support such flexibility, Fabric introduces an entirely novel blockchain design and revamps the way blockchains cope with non-determinism, resource exhaustion, and performance attacks.

This paper describes Fabric, its architecture, the rationale behind various design decisions, its most prominent implementation aspects, as well as its distributed application programming model. We further evaluate Fabric by implementing and benchmarking a Bitcoin-inspired digital currency. We show that Fabric achieves end-to-end throughput of more than 3500 transactions per second in certain popular deployment configurations, with sub-second latency, scaling well to over 100 peers.

References

  1. Apache CouchDB. http://couchdb.apache.org.Google ScholarGoogle Scholar
  2. Apache Kafka. http://kafka.apache.org.Google ScholarGoogle Scholar
  3. Bitcoin. http://bitcoin.org.Google ScholarGoogle Scholar
  4. Chain. http://chain.com.Google ScholarGoogle Scholar
  5. Ethereum. http://ethereum.org.Google ScholarGoogle Scholar
  6. gRPC. http://grpc.io.Google ScholarGoogle Scholar
  7. Hyperledger. http://www.hyperledger.org.Google ScholarGoogle Scholar
  8. Hyperledger Fabric. http://github.com/hyperledger/fabric.Google ScholarGoogle Scholar
  9. Hyperledger Sawtooth. http://sawtooth.hyperledger.org.Google ScholarGoogle Scholar
  10. LevelDB in Go. https://github.com/syndtr/goleveldb/.Google ScholarGoogle Scholar
  11. The Linux Foundation. http://www.linuxfoundation.org.Google ScholarGoogle Scholar
  12. MultiChain. http://www.multichain.com/.Google ScholarGoogle Scholar
  13. Quorum. http://www.jpmorgan.com/global/Quorum.Google ScholarGoogle Scholar
  14. Tendermint. http://tendermint.com.Google ScholarGoogle Scholar
  15. IBM announces major blockchain solution to speed global payments. https://www-03.ibm.com/press/us/en/pressrelease/53290.wss, 2017.Google ScholarGoogle Scholar
  16. R. Aitken. IBM & Walmart launching blockchain food safety alliance in China with Fortune 500's JD.com. https://www.forbes.com/sites/tomgroenfeldt/2017/03/05/ibm-and-maersk-apply-blockchain-to-container-shipping/, 2017.Google ScholarGoogle Scholar
  17. P.-L. Aublin, R. Guerraoui, N. Knežević, V. Quéma, and M. Vukolić. The next 700 BFT protocols. ACM Trans. Comput. Syst., 32(4):12:1--12:45, Jan. 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E. Ben-Sasson, A. Chiesa, C. Garman, M. Green, I. Miers, E. Tromer, and M. Virza. Zerocash: Decentralized anonymous payments from bitcoin. In IEEE Symposium on Security & Privacy, pages 459--474, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. N. Bessani, J. Sousa, and E. A. P. Alchieri. State machine replication for the masses with BFT-SMART. In International Conference on Dependable Systems and Networks (DSN), pages 355--362, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. G. Bracha and S. Toueg. Asynchronous consensus and broadcast protocols. J. ACM, 32(4):824--840, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. N. Budhiraja, K. Marzullo, F. B. Schneider, and S. Toueg. The primary-backup approach. In S. Mullender, editor, Distributed Systems (2nd Ed.), pages 199--216. ACM Press/Addison-Wesley, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. C. Cachin, R. Guerraoui, and L. E. T. Rodrigues. Introduction to Reliable and Secure Distributed Programming (2. ed.). Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. Cachin, S. Schubert, and M. Vukolić. Non-determinism in byzantine fault-tolerant replication. In 20th International Conference on Principles of Distributed Systems (OPODIS), 2016.Google ScholarGoogle Scholar
  24. C. Cachin and M. Vukolić. Blockchain consensus protocols in the wild. In A. W. Richa, editor, 31st Intl. Symposium on Distributed Computing (DISC 2017), pages 1:1--1:16, 2017.Google ScholarGoogle Scholar
  25. J. Camenisch and E. V. Herreweghen. Design and implementation of the idemix anonymous credential system. In ACM Conference on Computer and Communications Security (CCS), pages 21--30, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Castro and B. Liskov. Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst., 20(4):398--461, Nov. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. Charron-Bost, F. Pedone, and A. Schiper, editors. Replication: Theory and Practice, volume 5959 of Lecture Notes in Computer Science. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. K. Croman, C. Decker, I. Eyal, A. E. Gencer, A. Juels, A. Kosba, A. Miller, P. Saxena, E. Shi, E. G. Sirer, et al. On scaling decentralized blockchains. In International Conference on Financial Cryptography and Data Security (FC), pages 106--125. Springer, 2016.Google ScholarGoogle ScholarCross RefCross Ref
  29. A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. Epidemic algorithms for replicated database maintenance. In ACM Symposium on Principles of Distributed Computing (PODC), pages 1--12. ACM, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. T. A. Dinh, R. Liu, M. Zhang, G. Chen, B. C. Ooi, and J. Wang. Untangling block-chain: A data processing view of blockchain systems. e-print, arXiv:1708.05665 {cs.DB}, 2017.Google ScholarGoogle Scholar
  31. Fujitsu Limited. Fujitsu cloud service adopted by Japanese Bankers Association for blockchain-based financial service testbed. http://www.fujitsu.com/global/about/resources/news/press-releases/2017/0914-01.html, 2017.Google ScholarGoogle Scholar
  32. R. Garcia, R. Rodrigues, and N. M. Preguiça. Efficient middleware for Byzantine fault tolerant database replication. In European Conference on Computer Systems (EuroSys), pages 107--122, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. T. Groenfeldt. IBM and Maersk apply blockchain to container shipping. https://www.forbes.com/sites/tomgroenfeldt/2017/03/05/ibm-and-maersk-apply-blockchain-to-container-shipping/, 2018.Google ScholarGoogle Scholar
  34. R. Guerraoui, R. R. Levy, B. Pochon, and V. Quéma. Throughput optimal total order broadcast for cluster environments. ACM Trans. Comput. Syst., 28(2):5:1--5:32, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. P. Morgan. Quorum whitepaper. https://github.com/jpmorganchase/quorum-docs, 2016.Google ScholarGoogle Scholar
  36. F. P. Junqueira, B. C. Reed, and M. Serafini. Zab: High-performance broadcast for primary-backup systems. In International Conference on Dependable Systems & Networks (DSN), pages 245--256, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. Kapritsos, Y. Wang, V. Quéma, A. Clement, L. Alvisi, and M. Dahlin. All about Eve: Execute-verify replication for multi-core servers. In Symposium on Operating Systems Design and Implementation (OSDI), pages 237--250, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. R. Karp, C. Schindelhauer, S. Shenker, and B. Vocking. Randomized rumor spreading. In Symposium on Foundations of Computer Science (FOCS), pages 565--574. IEEE, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. B. Kemme. One-copy-serializability. In Encyclopedia of Database Systems, pages 1947--1948. Springer, 2009.Google ScholarGoogle Scholar
  40. B. Kemme and G. Alonso. A new approach to developing and implementing eager database replication protocols. ACM Transactions on Database Systems, 25(3):333--379, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. B. Kemme, R. Jiménez-Peris, and M. Patiño-Martínez. Database Replication. Synthesis Lectures on Data Management. Morgan & Claypool Publishers, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. A. E. Kosba, A. Miller, E. Shi, Z. Wen, and C. Papamanthou. Hawk: The blockchain model of cryptography and privacy-preserving smart contracts. In 37th IEEE Symposium on Security & Privacy, 2016.Google ScholarGoogle ScholarCross RefCross Ref
  43. S. Liu, P. Viotti, C. Cachin, V. Quéma, and M. Vukolić. XFT: practical fault tolerance beyond crashes. In Symposium on Operating Systems Design and Implementation (OSDI), pages 485--500, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. S. Nakamoto. Bitcoin: A peer-to-peer electronic cash system. http://www.bitcoin.org/bitcoin.pdf, 2009.Google ScholarGoogle Scholar
  45. D. Ongaro and J. Ousterhout. In search of an understandable consensus algorithm. In USENIX Annual Technical Conference (ATC), pages 305--320, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. F. Pedone and A. Schiper. Handling message semantics with Generic Broadcast protocols. Distributed Computing, 15(2):97--107, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. B. Peterson. IBM told investors that it has over 400 blockchain clients - including Walmart, Visa, and Nestle. Business Insider UK, http://uk.businessinsider.com/ibm-blockchain-enterprise-customers-walmart-visa-nestl-2018-3/, 2018.Google ScholarGoogle Scholar
  48. F. B. Schneider. Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Comput. Surv., 22(4):299--319, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. J. Sengupta, R. Komarraju, and K. Bear. Bridging the divide: How CLS and IBM moved to blockchain. IBM Institute for Business Value, https://www-935.ibm.com/services/us/gbs/thoughtleadership/bridgingdivide/, 2017.Google ScholarGoogle Scholar
  50. S. Settty, S. Basu, L. Zhou, M. L. Roberts, and R. Venkatesan. Enabling secure and resource-efficient blockchain networks with VOLT. Technical Report MSR-TR-2017-38, Microsoft Research, 2017.Google ScholarGoogle Scholar
  51. M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. Conflict-free replicated data types. In Proceedings of the 13th international conference on Stabilization, safety, and security of distributed systems, SSS'11, pages 386--400, Berlin, Heidelberg, 2011. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. A. Singh, T. Das, P. Maniatis, P. Druschel, and T. Roscoe. BFT protocols under fire. In Symposium on Networked Systems Design & Implementation (NSDI), pages 189--204, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. J. Sousa, A. Bessani, and M. Vukolić. A Byzantine fault-tolerant ordering service for the Hyperledger Fabric blockchain platform. In International Conference on Dependable Systems and Networks (DSN), 2018.Google ScholarGoogle ScholarCross RefCross Ref
  54. A. S. Tanenbaum. Distributed operating systems anno 1992. what have we learned so far? Distributed Systems Engineering, 1(1):3--10, 1993.Google ScholarGoogle ScholarCross RefCross Ref
  55. B. Vandiver, H. Balakrishnan, B. Liskov, and S. Madden. Tolerating Byzantine faults in transaction processing systems using commit barrier scheduling. In ACM Symposium on Operating Systems Principles (SOSP), pages 59--72, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. M. Venkataraman, M. Vridhachalam, A. Rosen, and B. Arthur. Adopting blockchain for enterprise asset management (EAM). IBM developerWorks, https://www.ibm.com/developerworks/cloud/library/cl-adopting-blockchain-for-enterprise-asset-management-eam/index.html, 2017.Google ScholarGoogle Scholar
  57. M. Vukolić. The quest for scalable blockchain fabric: Proof-of-work vs. BFT replication. In International Workshop on Open Problems in Network Security (iNetSec), pages 112--125, 2015.Google ScholarGoogle Scholar
  58. G. Wood. Ethereum: A secure decentralised generalised transaction ledger. Byzantium Version, https://ethereum.github.io/yellowpaper/paper.pdf.Google ScholarGoogle Scholar
  59. J. Yin, J. Martin, A. Venkataramani, L. Alvisi, and M. Dahlin. Separating agreement from execution for Byzantine fault tolerant services. In ACM Symposium on Operating Systems Principles (SOSP), pages 253--267, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. Hyperledger fabric: a distributed operating system for permissioned blockchains

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        EuroSys '18: Proceedings of the Thirteenth EuroSys Conference
        April 2018
        631 pages
        ISBN:9781450355841
        DOI:10.1145/3190508

        Copyright © 2018 Owner/Author

        Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 April 2018

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        EuroSys '18 Paper Acceptance Rate43of262submissions,16%Overall Acceptance Rate241of1,308submissions,18%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader