Hyperledger Fabric is an enterprise grade permissioned distributed ledger platform that offers modularity for a broad set of industry use cases. One modular component is a pluggable ordering service that establishes consensus on the order of transactions and batches them into blocks. However, as of the time of this writing, there is no production grade Byzantine Fault-Tolerant (BFT) ordering service for Fabric, with the latest version (v2.1) supporting only Crash Fault-Tolerance (CFT). In our work, we address crucial aspects of BFT integration into Fabric that were left unsolved in all prior works, making them unfit for production use. In this work we describe the design and implementation of a BFT ordering service for Fabric, employing a new BFT consensus library. The new library, based on the BFT-Smart protocol and written in Go, is tailored to the blockchain use-case, yet is general enough to cater to a wide variety of other uses. We evaluate the new BFT ordering service by comparing it with the currently supported Raft-based CFT ordering service in Hyperledger Fabric.
翻译:Hyperledger Fabric 是一个企业级允许的分布式分类账平台,为一系列广泛的行业使用案例提供模块化的模块化。模块化组件是一个插接订单服务,就交易顺序达成共识,并将其分解成块块。然而,截至撰写本文之时,还没有为Fabric提供生产级Byzantine Aut-Tolerant(BFT)订单服务,最新版本(v2.1)只支持Crash Arrass-Coilance(Flax)。在我们的工作中,我们处理BFT整合到Fabric的关键问题,因为以前所有工程都未解决,因此不适合生产。在这项工作中,我们描述了Fabric公司BFT订单服务的设计和实施,使用了一个新的BFT共识图书馆。基于BFT-Smart协议并在Go写成的新图书馆是针对BFF-Smart-Servec的,但一般的图书馆足以满足其他多种用途。我们通过将它与目前支持的以Raft为基础的FT订单服务进行比较来评估新的BFT订单服务。