Caliper is framework for blockchain performance benchmark[2]. Using Caliper, we can get test results for different blockchain solutions with different custom use cases.
The supported blockchain solutions by Caliper are
- Hyperledger Besu,
- Ethereum
- Hyperledger Fabric
- FISCO BCOS
Performance metrics that can be acheived are:
- Transaction throughput i.e. number of transaction per certain duration of time.
- Transaction latency in terms of Minimum, MAx, Avg or percentile.
- Resource Usage like Memory, network IO and CPU.
Architecture[1]:
Caliper works with SUT(Specifict System Under Test) to generate output while continously monitoring the reponses and eventually generating the report based on those responses. Different kinds of input are required by Caliper irrepestive of used SUT. They are:
- Bechmark Configuration File: Direction for how benchmark should be executed, how many rounds, what rate of Txs for submission etc.
- Network Configuration File: Topology of SUT(nodes locations, clients in the network , smart contract?)
- Workload Modules: Node.js modules; Main brain of the benchmark
- Benchmark Artifacts: Additional artifacts
Caliper Processe:
- Manager Process: Initializing SUT and coordinating run of the benchmark.
- Worker Process: Actual workload generation.
Installing Caliper: Steps for installing and Running Caliper,
- Use NPM or DockerHub to access Caliper CLI
- https://www.npmjs.com/package/@hyperledger/caliper-cli
- https://hub.docker.com/r/hyperledger/caliper
- Execute bind command using CLI to get specified version of SDK packages fo the platform selected.
- Then, benchmark can be started using CLI or Docker Container
Caliper CLI:
$ npm i @hyperledger/caliper-cli
$ npx caliper --version
Reference:
[1]“Architecture,” Hyperledger Caliper. https://hyperledger.github.io/caliper/v0.4.2/architecture/ (accessed Apr. 22, 2022).
[2]“Getting Started,” Hyperledger Caliper. https://hyperledger.github.io/caliper/v0.4.2/getting-started/ (accessed Apr. 22, 2022).