A Byzantine Fault-Tolerant Consensus Library for Hyperledger Fabric Artem Barger Yacov Manevich IBM Research, Haifa Lab IBM Research, Haifa Lab Haifa, Israel Haifa, Israel
[email protected] [email protected] Hagar Meir Yoav Tock IBM Research, Haifa Lab IBM Research, Haifa Lab Haifa, Israel Haifa, Israel
[email protected] [email protected] ABSTRACT notion of the “smart contract” as a means for executing sophis- Hyperledger Fabric is an enterprise grade permissioned distributed ticated transactions. These pioneering platforms contain a great ledger platform that offers modularity for a broad set of industry technological potential for transforming the way we do business. use cases. One modular component is a pluggable ordering service However, for enterprise applications they contain two major flaws that establishes consensus on the order of transactions and batches that sparked additional innovation. them into blocks. However, as of the time of this writing, there is no Consensus mechanisms based on Proof of Work suffer from production grade Byzantine Fault-Tolerant (BFT) ordering service low transaction rates, long settlement times, and are widely criti- for Fabric, with the latest version (v2.1) supporting only Crash Fault- cised for their exorbitant power consumption. As a consequence, Tolerance (CFT). In our work, we address crucial aspects of BFT blockchain platforms started using Byzantine Fault Tolerant (BFT) integration into Fabric that were left unsolved in all prior works, consensus mechanisms (e.g. PBFT [21]) as a replacement for PoW making them unfit for production use. (see Tendermint [17]). Large-scale blockchain applications present In this work we describe the design and implementation of a BFT tough requirements in terms of scalability, fairness, and robustness, ordering service for Fabric, employing a new BFT consensus library.