A journey towards the most efficient state database for Hyperledger Fabric
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.
READ FULL TEXT