hyperledger caliper是一个用来测试区块链平台性能的框架,测试结果会生成一份报告,方便查看,测试的内容也比较全面。
这个项目更新比较频繁,现在找到的两个月前的教程都和现在的项目很不一样了,所以就重新写一个来记录配置中遇到的一些问题和解决方法。
1. 准备工作
拉取代码
git clone https://github.com/hyperledger/caliper.git
安装需要的包
NodeJS
这里nodeJS要大于8的版本才可以
版本下载地址:https://nodejs.org/dist/v8.10.0/
下载后,解压文件,将nodejs中的bin目录加入PATH中
vim ~/.bashrc
在文件最下方加上
PATH=$PATH:nodejs的路径/bin
保存并退出,然后重新加载一下文件
source ~/.bashrc
完成后,执行node检查,如下所示就是完成了
$ node -v
v8.10.0
$ npm -v
5.6.0
docker
我这里用的是ubuntu的系统,跟着docker的教程安装就可以
官网地址:ubuntu下安装docker
下面是我的搬运
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
完成后检查一下
$ sudo docker run hello-world
运行成功即完成
docker-compose
docker-compose 版本要大于 1.22,不能用apt-get直接下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
node-gyp
使用npm下载即可
npm install node-gyp -g
检查
运行caliper中的脚本检查版本,如下就可以了
$ ./scripts/pre-requisites-check-for-linux.sh
****************node**********************
Node.js is installed, version is v8.10.0
Node.js version is right
***************docker*******************
Docker is installed, the version is 18.09.6
Docker's version is right
***************docker-compose*******************
Docker-compose is installed, the version is 1.24.1
Docker's version is right
2. 构建caliper
在caliper根目录下执行下面的指令,注意不能使用sudo
$ npm install
$ npm run repoclean
最后引导安装
npm run bootstrap
这个安装进度比较慢,如果很长时间运行都没有结束,并且packages目录也一直都没有更新的话,ctrl+c
结束掉,然后到packages下面查看子目录中是否有 node_modules/,如果有,应该就可以了。
$ ls packages/caliper-tests-integration/
如果没有,需要恢复package.json然后再次运行(这个是官网的说法),貌似ctrl+c
结束掉之后,package.json就自动恢复了,所以再次运行npm run bootstrap
就可以。
最后可以运行测试检查一下
npm run test
没有报错就是成功了
3. 安装 caliper cli
进入packages/caliper-tests-integration/ 目录
cd ./packages/caliper-tests-integration
执行
npm run start_verdaccio
这里有一个问题,我在执行完成这个操作后,会出现
[PM2] Spawning PM2 daemon with pm2_home=.pm2
然后就一直都不会有下一步了,等了一夜也没有反应,然后经过多次尝试,只需要把 pm2_home的路径改掉就可以。
vim scripts/start-verdaccio.sh
在文件的最后面,修改为如下的样子
# Start npm server
# PM2_HOME=.pm2 pm2 start verdaccio -- -l 0.0.0.0:4873 -c scripts/config.yaml
pm2 start verdaccio -- -l 0.0.0.0:4873 -c scripts/config.yaml
就可以顺利运行了。
接下来运行
npm run publish_packages
npm run install_cli
运行过程中可能会报一些warning,可以不用理会,出现如下内容就运行成功了
Installed test package caliper-cli from local npm server (attempt 1/5)
运行
$ caliper
出现相关的命令,就安装完成了。
4. 测试fabric
回到 caliper根目录,运行
sudo caliper benchmark run -w ./packages/caliper-samples -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peercouchdb/fabric-ccp-node.yaml
这里会运行一些docker,如果运行成功就会出现下面的报告。
如果失败了就可能手动删除docker。
sudo docker stop $(sudo docker ps -aq)
sudo docker rm $(sudo docker ps -aq)