caliper的应用之一最新版本安装和使用

一、Caliper的介绍

Caliper是华为出的一款对区块链进行压力测试的工具,网上的介绍不少,但基本都是老版本的,和新版本的使用有比较大的差别,好多问题的解决方式和方法都有了比较大的变化,另外一些代码和配置文件的改动也非常大。
在网上有人提到了,新版本的Caliper有问题,目前只能测试到TPS在800左右,原因是其代码中的一些事件处理占用了太多的CPU资源(8核16G,当然这个只是猜测,他和开源的开发者进行了联系,现象是这个现象,但是原因并不有谈到)。

二、Caliper的环境要求

说一个基本的环境要求:Linux内核3.1以上,最好是4.0以上。原因是文件系统的问题可能会导致整个系统的不稳定。当然,Fabric也是如此要求。
安装的方法在帮助文件档上有:
https://hyperledger.github.io/caliper/vLatest/getting-started/

需要提前安装的软件环境有:
1、nodjs(8.0或10.0系列),node-gyp
这个在网上一些老版本的的文章里一律要求必须是8.x,但在新的帮助文档里说明可以使用10系列,证明也是如此。node-gyp的安装主要是为了方便的使用自动化的构建工具,同时高版本的npm同时安装了npx,方便使用。
2、python2,cmake,g++,git
3、docker和Docker-compose

三、安装

1、安装NODE
https://nodejs.org/dist
在此网站上查找相应的版本,要求8.X或者10.X的latest版本。
wget https://nodejs.org/dist/latest-v10.x/node-v10.17.0-linux-x64.tar.gz
tar zxvf node-v10.17.0-linux-x64.tar.gz
mv node-v10.17.0-linux-x64 node

设置环境变量:
sudo vim /etc/profile
在最后添加:
export NODE_HOME=/home/fanjinfeng/nodejs/node
export PATH= N O D E H O M E / b i n : NODE_HOME/bin: PATH
source /etc/profile
验证版本:
node -v
v10.17.0
npm -v
6.11.3

2、安装node-gyp

npm install -g node-gyp
出现错误:
npm ERR! Unexpected end of JSON input while parsing near ‘…512-uXQyMf0GrY/RDfekK’
npm ERR! A complete log of this run can be found in:
npm ERR! /home/fanjinfeng/.npm/_logs/2019-12-02T03_41_51_291Z-debug.log

解决方法:
npm cache clean --force
再重新安装,即可。
附加说明:如何修改.npmrc
npm config edit 直接修改
npm config ls -l 查看位置
npm config get cache 获得缓存位置
npm root -g 获得全局位置
其它修改方法:
a.删掉package.lock.json
b.清除cache
npm cache clean --force
c.进入下面这个文件夹清除cache
路径:C:/Users/PC/AppData/Roaming/npm-cache
执行:
npm cache clean --force
d.不要用淘宝镜像
npm set registry https://registry.npmjs.org/
或者使用淘宝镜像cnpm install
npm的默认地址是https://registry.npmjs.org/
可以使用npm config get registry查看npm的仓库地址
可以使用npm config set registry https://registry.npm.taobao.org来改变默认下载地址,达到可以不安装cnpm就能采用淘宝镜像的目的,然后使用上面的get命令查看是否成功

3、安装Docker
sudo yum install -y yum-utils
sudo yum install docker-ce
然后启动:
systemctl start docker
docker version

二进制安装:
$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose- ( u n a m e s ) (uname -s)- (uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

3、安装Caliper

user@ubuntu:~/caliper-benchmarks$ npm init -y
user@ubuntu:~/caliper-benchmarks$ npm install --only=prod @hyperledger/caliper-cli
user@ubuntu:~/caliper-benchmarks$ npx caliper bind --caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
user@ubuntu:~/caliper-benchmarks$ npx caliper benchmark run --caliper-workspace . --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig
networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml

前三步可执行上述命令,最后一步需要配置相关的文件后,再执行与其文件路径名相符合的命令(比如在下面的第五步中,工作路径就重新指定到了fabric_worksapce)
4、从GITHUB上下载caliper-benchmarks
修改相关的文件,参考三中的第四步的相关文件。

5、运行测试
npx caliper benchmark run --caliper-workspace ./fabric_worksapce --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-networkconfig

networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
需要从fabric官网上下载的caliper-bencmarks都放到worksapce下,这里面目前遇到了三个问题:
a、Dockers的运行权限问题

在这里插入图片描述

b、src路径不存在引起的合约部署问题。

在这里插入图片描述
c、超时问题。

在这里插入图片描述

node_modules/fabric-client/config/default.json配置文件中的request_time 运行成功:“request-timeout” :100000, 这个第一项默认是45000
或者重新再来一次,可能就好了。这个和网络环境有关系。
和之前搭建fabric环境遇到的问题一样,BAD_REQUEST 经常是当前要创建的channel 已经存在所以会出现这个错误,
我们可以通过docker rm -f $(docker ps -q -a)

6、细节
a、NPM下载的软件在当前目录下的node_module中,在其中可以对相关的配置文件进行修改。
b、遇到了某个节点无法删除的问题(比如异常退出,手工中断退出等,导致某个节点无法删除)
$systemctl stop docker //停掉docker服务
$rm -rf /var/lib/docker //注意会清掉docker images的镜像
启动docker即可:systemctl start docker
如果此时出现“https+docker…”无法启动的问题,使用下面的问题解决:
a)、cat /etc/group | grep docker
b)、如果没有则创建docker用户组
sudo groupadd docker
c)、应用用户加入docker用户组
sudo usermod -aG docker ${USER}
例如我的用户名为nelson,则输入命令sudo usermod -aG docker nelson

d)、重启docker服务
sudo systemctl restart docker
e)、切换或者退出当前账户再从新登入
如果有超级帐户权限则比较方便了:
sudo su root ,然后执行:
docker rm -f $(docker ps -a -q),
docker rmi -f $(docker images -q)
这样不不用重复的操作上面一系列步骤。
f)删除遇到overlay2错误

grep docker /proc/*/mountinfo|grep 6031651302dba6053c5fde07937f4fd00dfc063577fa343b12c83f1c26b77887 | awk -F ":" '{print $1}' | awk -F "/" '{print $3}'

sudo kill -9 xxx

重复执行容器删除即可。

四、总结

Caliper总体上来说用着还是比较简便,但是说明书确实还需要进一步的细化,一些细节的使用都没有说明,包括配置文件的位置等。可能这些对于经常使用的人来说,不值一提,但对新手来说往往不知所云。

发布了104 篇原创文章 · 获赞 12 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/fpcc/article/details/103420484