Caliper介绍
Caliper是一个区块链性能基准测试框架,允许用户使用预定义的用例测试不同的区块链解决方案,并获得一组性能测试结果。
目前支持的区块链解决方案
- Hyperledger Burrow
- Hyperledger Composer
- Hyperledger Fabric
- Hyperledger Iroha
- Hyperledger Sawtooth
目前支持的绩效指标
- 成功率
- 交易/读取吞吐量
- 交易/读取延迟(最小值、最大值、平均值、百分位数)
- 资源消耗(CPU、内存、网络IO...)
先决条件
确保安装了以下工具
- NodeJS 8.X (>=8.10.0版本,<9.0.0版本)
- node-gyp
- Docker
- Docker-compose
安装过程
1.NodeJS安装
nodejs要求必须是8.X版本,如果高于这个版本,请移除高版本下载8.X版本
版本下载地址:https://nodejs.org/dist/v8.10.0/
安装好之后查看版本
$ node -v
v8.10.0
$ npm -v
5.6.0
2.下载node-gyp
$ sudo npm install -g node-gyp
构建Caliper
Caliper被分为由lerna管理的packages,Lerna是一个用多个包管理JavaScript项目的工具。要构建Caliper,首先需要提取基本的依赖项,然后引导Caliper项目。请注意,如果修改项目代码,则需要rebuild项目
1.下载caliper
git clone https://github.com/hyperledger/caliper.git
2.检查环境
cd caliper/packages/caliper-application/scripts
./pre-requisites-check-for-linux.sh
3.安装基本依赖项
cd caliper
npm install
npm run repoclean
4.引导安装
此步引导安装所有包依赖项并链接任何交叉依赖项,完成需要一段时间,如果被ctrl+c强行中断,请先恢复package.json然后重新npm run bootstrap。另外,请确保安装过程中网络正常不受限制,否则可能会因为某个依赖项下载失败导致整个过程失败。
npm run bootstrap
运行测试
所有预定义基准测试配置都可以在benchmark文件中找到,
要开始第一个基准测试,只需从文件夹中运行packages/caliper-application/scripts:
node run-benchmark.js -c benchmark-config -n blockchain-config
- -c:指定基准的配置文件(必需)。
- -n:指定被测区块链网络的配置文件(必需)。
- 运行基准测试时,会出现“找不到模块”之类的错误。请
npm rebuild
从根文件夹运行。
配置文件
Caliper中有两种配置文件
- benchmark配置文件
- blockchain配置文件
benchmark配置定义基准测试的参数,如工作负载和监视设置,一般命名为config-xxx.yaml,并且位于simple/benchmark目录中;
blockchain配置文件名一般为xxx-yyy.json格式,其中xxx是blockchain类型(例如,fabric、sa wtooth、burrow或iroha),yyy是一些特定的部署信息,就像chaincodes的语言(例如,fabric-go.json用于fabric部署)