BlockBench is the first benchmarking framework for private blockchain systems. It serves as a fair means of comparison for different platforms and enables deeper understanding of different system design choices.
- YCSB (KVStore).
- SmallBank (OLTP).
- DoNothing (consensus layer).
- IOHeavy (data model layer, read/write oriented).
- Analytics (data model layer, analytical query oriented).
- CPUHeavy (execution layer).
Source file structure
- Smart contract sources are in benchmark/contracts directory.
- Instructions and scripts to run benchmarks for Ethereum, Hyperledger Fabric v0.6, v1.4 and v2.2, Parity and Quorum are in ethereum, hyperledger fabric v0.6 , hyperledger fabric v1.4, hyperledger fabric v2.2, parity , quorum_raft and quorum_vote directories respectively.
- Drivers for benchmark workloads are in src directory.
Note: we patched this library to include the "Expect: " header in POST requests, which considerably improves the speed for processing RPC request at Parity.
The patch file is include in benchmark/parity folder.
To patch: go to top-level directory of restclient-cpp, then:
patch -p4 < $BLOCK_BENCH_HOME/benchmark/parity/patch_restclient
The installation can then proceed as normal.
Go to micro directory and use
npm install to install the dependency libraries
- hyperledger fabric v0.6
- hyperledger fabric v1.4
- hyperledger fabric v2.2
-  A. Dinh, J. Wang, G. Chen, R. Liu, B. C. Ooi, K.-L. Tan: BLOCKBENCH: A Framework for Analysing Private Blockchains. ACM SIGMOD 2017.
-  The Morning Paper Review 2017
-  A. Dinh, R. Liu, M. Zhang, G. Chen, B.C. Ooi, J. Wang: Untangling Blockchain: A Data Processing View of Blockchain Systems. IEEE Transactions on Knowledge and Data Engineering, July 2018.
-  FabricSharp -- an faster Fabric blockchain system.