Permissioned blockchain systems promise to provide both decentralized trust and privacy. Hyperledger Fabric is currently one of the most wide-spread permissioned blockchain systems and is heavily promoted both in industry and academia. Due to its optimistic concurrency model, the transaction failure rates in Fabric can become a bottleneck. While there is active research to reduce failures, there is a lack of understanding on their root cause and, consequently, a lack of guidelines on how to configure Fabric optimally for different scenarios. To close this gap, in this paper, we first introduce a formal definition of the different types of transaction failures in Fabric. Then, we develop a comprehensive testbed and benchmarking system, HyperLedgerLab, along with four different chaincodes that represent realistic use cases and a chaincode/workload generator. Using HyperLedgerLab, we conduct exhaustive experiments to analyze the impact of different parameters of Fabric such as block size, endorsement policies, and others, on transaction failures. We further analyze three recently proposed optimizations from the literature, Fabric++, Streamchain and FabricSharp, and evaluate under which conditions they reduce the failure rates. Finally, based on our results, we provide recommendations for Fabric practitioners on how to configure the system and also propose new research directions.
翻译:超利差的Fabric是目前最广泛、最广泛允许的连锁系统之一,在工业和学术界都大力推广。由于Fabric的通货模式乐观,Fabric的交易失败率可能会成为一个瓶颈。虽然有减少失败的积极研究,但对其根本原因缺乏了解,因此,对于如何为不同情况优化配置Fabric系统缺乏指导准则。为了缩小这一差距,我们首先在本文中正式定义了Fabric中不同类型的交易失败。然后,我们开发了一个全面的测试和基准系统,HyperLedgerlab,连同代表现实使用案例的四个不同的链码和一个链码/工作负荷生成器。我们利用超利差拉布,进行详尽的实验,分析Fabric的不同参数,例如块尺寸、背书政策和其他对交易失败的影响。我们进一步分析了最近从文献中提议的三种优化方法,即Fabric+g、Streamc和FabricSharp。然后,我们开发一个全面的测试和基准系统,连同代表现实使用案例的四个不同的链码和链码/工作负荷生成器。我们利用了四套的系统,用它来分析它们如何降低失败率,最后提出我们的系统。我们如何提出新的试验结果。