BLOCKBENCH: A Framework for Analyzing Private Blockchains. Blockbench contains workloads for measuring the data processing performance, and workloads for understanding the performance of different layers of Blockchain systems.
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmark change fileSystemPath to absolute path in /tmp/hyperledger/production Jul 3, 2018
src start ethereum takes number of miner threads as parameter Nov 2, 2018
.gitignore some fix work Dec 22, 2017
LICENSE add LICENSE Apr 1, 2017 some fix work Dec 22, 2017


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.

BlockBench comes with both macro benchmark workloads for evaluating the overall performance and micro benchmark workloads for evaluating performance of individual layers.



  • 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


C++ libraries

  • restclient-cpp

    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.

  • libcurl

Node.js libraries

Go to micro directory and use npm install to install the dependency libraries