Hyperledger caliper 测试fabric一次记录

安装过程参考官网官网
官网的文档当中内容是非常多的,而且是英文的,所以最开始我看的时候不知道该关注哪些内容,在看了很多内容之后,大致知道需要关注哪些部分。
Hyperledger caliper 测试fabric一次记录_第1张图片Hyperledger caliper 测试fabric一次记录_第2张图片
首先在Overview部分,Installing and Running Caliper 是安装教程,差不多是博客下面的内容,Benchmark Configuration,Workload Configuration对应两个配置文件,这两部分对配置文件中的参数解释得比较详细。
Connector Configuration部分关注Fabric,这部分对应连接fabric网络的配置文件。
所以在整个过程中主要关注这三类配置文件。

1.Benchmark Configuration
Benchmark Configuration是基准测试配置文件,对应benchmarks文件子路径链码文件夹中的config.yaml文件,
2.Workload Configuration
Workload Configuration配置文件其实是config.yaml 中调用的文件,就是调用链码中的函数,和config.yaml在同一路径下。
3. Connector Configuration配置文件是配置区块链网络部分的,在networks/fabric下对应版本的路径中,一般是fabric-go.yaml

一 环境准备

node-gyp, python2, make, g++ and git (for fetching and compiling some packages during install)
Node.js v8.X LTS or v10.X LTS (for running Caliper)
Docker and Docker Compose (only needed when running local examples, or using Caliper through its Docker image)
如果搭建过fabric网络,git、docker、docker-compose应该是已经安装过了

  1. nodejs安装:

使用二进制文件安装:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
安装之后使用 nodejs -v 和 npm -v 分别验证是否正确安装
ps:我在安装的时候先是下载安装包,然后解压安装,结果失败了,后来用二进制文件安装,结果发现nodejs可以用,但是npm没法用,然后把nodejs卸载(完全卸载,包括之前通过安装文件安装的),重新使用二进制文件安装,这一次就正常了。

  1. 全局安装node-gyp :

sudo npm install -g node-gyp

二、caliper cli

git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
##版本要匹配,0.4.2对应fabric2.x,0.3.2对应fabric1.4 (我是用的0.3.2版本)
git checkout v0.3.2

三、使用npm安装caliper

在caliper-benchmarks目录下:
npm init -y
npm install --only=prod @hyperledger/[email protected] (现在官网的教程上可能还是0.3.0,但实际上版本是0.3.2)
npx caliper bind --caliper-bind-sut fabric:1.4.0

四、Fabric二进制文件

在开始拉取下来的caliper-benchmarks中是没有fabric的二进制脚本文件的,如果之前部署过fabric,而且版本对应的话,可以直接拿过来用。 如果用raft模式,就放在config_raft文件夹中,如果用solo模式,就放在config_solo文件夹中。这两个文件夹中都有generate.sh脚本,直接执行就可以产生证书,密钥文件了。
Hyperledger caliper 测试fabric一次记录_第3张图片
如果之前没有部署过fabric,可以到fabric的官网 release 中找到对应的版本,直接下载二进制文件。
在这里插入图片描述
五、测试
以上步骤完成之后,就可以进行测试了:

caliper launch master \
    --caliper-workspace ~/caliper-benchmarks \
    --caliper-benchconfig benchmarks/scenario/simple/config.yaml \
    --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml

更正:‘caliper launch master’ 前面少了个 ‘npx’

npx caliper launch master \
    --caliper-workspace ~/caliper-benchmarks \
    --caliper-benchconfig benchmarks/scenario/simple/config.yaml \
    --caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml

在命令中也能看到指定的配置文件。
PS:在现在的文件结果中,caliper-networkconfig 部分的路径稍有变化——networks/fabric/v1/v1.4.1/2org1peergoleveldb/fabric-go.yaml

另外说一下我自己遇到个一个疑惑,在这个测试命令的执行过程中,config.yaml制定了测试的参数,fabric-go.yaml中是fabric网络连接,但是在网络连接的内容中只看到了start中有启动容器的命令,没有看到链码安装和实例化的部分。
在这里插入图片描述
我仔细把执行过程理了一遍,然后又看了官网的说明,其实链码的安装时实例化是在fabric-go.yaml的channel-chaincode部分定义的:
Hyperledger caliper 测试fabric一次记录_第4张图片
这部分的参数定义了哪些节点是背书节点,哪些节点需要安装链码,这部分的参数的详细解释可以在官网手册 Connector Configuration-Fabric部分看到:
Hyperledger caliper 测试fabric一次记录_第5张图片
理解这些参数之后,再测试的时候就会更明白怎么去设定自己的测试了。

你可能感兴趣的:(区块链,工具配置,fabric,docker,区块链)