This repository is based on BlockBench, the first benchmarking framework for permissioned blockchain systems. Different from the original BlockBench, this repository:
- adds benchmarking support for Fabric 2+ (e.g., v2.3.1) and Quorum (e.g., v20.10.0).
- adds system-level benchmarks (in benchmark/systems_benchmarks)
- adds scripts to do profiling (with Linux
perf
) - adds scripts to capture and parse power and energy
Please see Benchmarking.md on how to reproduce the experiments presented in the paper "Characterizing the Performance and Cost of Blockchains on the Cloud and at the Edge".
Please see the README.
Please see the README for Quorum Raft.
Please see the README for Quorum IBFT.
Please see the README for systems benchmarks.
- YCSB (KVStore).
- SmallBank (OLTP).
- DoNothing (consensus layer).
- IOHeavy (data model layer, read/write oriented).
- Analytics (data model layer, analytical query oriented).
- CPUHeavy (execution layer).
- Smart contract sources are in benchmark/contracts directory.
- Instructions and scripts to run benchmarks for Ethereum, Hyperledger , Parity and Quorum are in ethereum, hyperledger , 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
For any issues, please open an issue in Github here.