全篇安装主要参照这篇官方文档,但中间有很多坑,需要格外注意。本人系统Deepin15.10
必要组件安装
请参加这位大大的blog,还有这位的,里面有详细记录如何安装相关组件,建议对照官方文档中的查看,因为blog里面的组件不全。并且,自己亲测按照blog中的安装方法无法适应最新版本,因此建议按照官方的来。注意docker-ce的版本要在18.09以后,否则会报错;还有就是一定要取消docker必须使用超级账户的权限,因为后续安装caliper不能用sudo,会报错。详情请参见:
最新docker下载请看 http://www.voidcn.com/article/p-zbjykblf-byx.html 需要注意如果要删除已安装的docker,尤其是版本装错了重装的,请使用
sudo apt-get remove docker-ce
否则会报错,说没有安装docker
安装完后改国内源和权限等后续处理请看 https://blog.youkuaiyun.com/qq_36148847/article/details/79273591
caliper安装
由于最新版caliper的原因,很多2019年以前的教程中caliper的用法已经不适用了,因此还是得按照官方的来。
采用官方文档中 Local NPM install 的安装方法。 有两个坑需要注意
1)
npx caliper bind \
--caliper-bind-sut fabric:1.4.0
这个语句现在已经不能用了,请用下面的语句代替
npx caliper bind \
--caliper-bind-sut fabric --caliper-bind-sdk 1.4.0
2)
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
这个语句现在也执行不了,现在按照
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
来执行了
上面2)中的语句实际就是执行测试的语句了,但是有个前提,必须在caliper官方的workbench目录下,该目录配置有很多测试用的文件
git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
git checkout <your Caliper version>
选择和caliper相同的版本,如本文选择的是caliper v0.2.0,则这里也填 v0.2.0
一定要注意切换版本,否则可能出现测试的标准无法识别的情况。我一开始没有切版本,结果报了一个无法监控cpu的错误(其实我也不知道是不是这个原因导致的,反正切了应该没错吧)
使用caliper
大部分教程讲到测试成功就没有下文了,这里多讲一点关于怎么用的问题。首先,从开始执行的测试中可以看到测试的配置文件主要有两个。网络方面注意是 networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml, 测试配置为benchmarks/scenario/simple/config.yaml
打开测试配置文件 benchmarks/scenario/simple/config.yaml,可以见到如下语句
---
test:
clients:
type: local
number: 1
rounds:
- label: Change car owner.
txNumber:
- 100
rateControl:
- type: fixed-rate
opts:
tps: 50
arguments:
assets: 1000
callback: benchmarks/scenario/fabcar/changeCarOwner.js
- label: Query all cars.
txNumber:
- 100
rateControl:
- type: fixed-rate
opts:
tps: 50
arguments:
assets: 1000
startKey: '1'
endKey: '50'
callback: benchmarks/scenario/fabcar/queryAllCars.js
- label: Query a car.
txNumber:
- 100
rateControl:
- type: fixed-rate
opts