The Hyperledger Fabric is well known and the most prominent enterprise-grade permissioned blockchain. The architecture of the Hyperledger Fabric introduces a new architecture paradigm of simulate-order-validate and pluggable architecture, allowing a greater level of customization where one of the critical components is the world state database, which is responsible for capturing the snapshot of the blockchain application state. Hyperledger Fabric manages the state with the key-value database abstraction and peer updates it after transactions have been validated and read from the state during simulation. Therefore, providing good performance during reading and writing impacts the system's overall performance. Currently, Hyperledger Fabric supports two different implementations of the state database. One is LevelDB, the embedded DB based on LSM trees and CouchDB. In this study, we would like to focus on searching and exploring the alternative implementation of a state database and analyze whenever there are better and more scalable options. We evaluated different databases to be plugged into Hyperledger Fabric, such as RocksDB, Boltdb, and BadgerDB. The study describes how to plug new state databases and performance results based on various workloads.
翻译:Hyperledger Fabric是广为人知且最突出的企业级许可区块链。其架构引入了一种“模拟-排序-验证”的新范式及可插拔架构,允许更高程度的定制化,其中关键组件之一是世界状态数据库,负责捕获区块链应用状态的快照。Hyperledger Fabric通过键值数据库抽象管理状态,并在交易验证后由对等节点更新状态,同时在模拟阶段从状态中读取数据。因此,读写性能直接影响系统的整体性能。目前,Hyperledger Fabric支持两种不同的状态数据库实现:基于LSM树的嵌入式数据库LevelDB和CouchDB。在本研究中,我们聚焦于探索并寻找替代的状态数据库实现,分析是否存在更优且更具可扩展性的选项。我们评估了多种可插入Hyperledger Fabric的数据库,包括RocksDB、BoltDB和BadgerDB。本研究描述了如何接入新的状态数据库,并基于不同工作负载提供了性能结果。