Hyperledger Caliper的CLI安装不成功怎么办

Hyperledger Caliper的CLI安装不成功怎么办

  • 背景
  • 我的操作环境
  • 首先按照官网的操作步骤安装Pre-requisites
    • 安装make,g++编译工具
    • 安装curl
    • 安装node和npm
    • 安装node-gyp
    • 安装Docker
      • _添加软件包_
      • _安装Docker-ce_
      • _查看Docker版本_
      • _启动Docker版本_
      • _建立docker用户组并将当前用户加入docker用户组_
      • _安装Docker-compose_
  • Pre-requisites安装完毕后,开始安装Caliper
    • 下载caliper最新代码
    • 回退到提交CLI前的版本
    • 备份package.json
    • 编译代码
    • 安装一系列缺失的Node包
  • 下面就是见证奇迹的时刻 - 跑样例
  • 一些可能的问题提示

背景

写这篇的时候是2019年7月中旬,原因是几周前准备研究一下Hyperledger Caliper怎么用,然后用来测试一下Hyperledger Fabric - 1.4.1区块链网络的性能。
按照Caliper官方文档的操作步骤,首先遇到了编译问题,然后又遇到了CLI安装不成功的问题,折腾了1-2周,连官方样例都没跑起来。这1-2周一直在github社区上跟踪这些问题,也与contributors邮件交流过很多次,在国外的contributor们都说无法复现问题,但是很多像我这样的刚接触caliper的用户都遇到了同样的问题。
经主要contributor的确认,7月份最新的版本的Caliper必须要用CLI来跑脚本,CLI是最近新提交的功能。也就是说,CLI装不成功,你就用不了Caliper了。(此处心里飘过一些不能播的OS)
由于比较着急使用,加上这段时间对Caliper有了一定的了解,看了一些log和代码,决定试着回退一下CLI提交前的版本,用比较新的旧版本看看能不能跑起来样例。花了2天时间,还真跑成功了。决定在这里记录一下过程,也分享出来,给后面想用caliper的小伙伴填填坑。

我的操作环境

OS - Ubuntu 18.04.2 LTS Bionic in VMware® Workstation 12 Pro - 12.5.7 build-5813279
npm version - 6.4.1.
Node version - 8.16.0.
node-gyp version - 4.0.0
Docker version - 18.09.5, build e8ff056
docker-compose version - 1.24.0, build 0aa5906

首先按照官网的操作步骤安装Pre-requisites

官网文档地址:
https://hyperledger.github.io/caliper/docs/1_Getting_Started.html)
我的操作指令如下(Ubuntu 18.04)

安装make,g++编译工具

$ sudo apt-get install make g++

安装curl

$ apt-get update
$ sudo apt install curl

安装node和npm

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install nodejs

安装node-gyp

$ npm install -g node-gyp

安装Docker

添加软件包

$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository “deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable”

安装Docker-ce

$ sudo apt-get update
$ sudo apt-get install docker-ce

查看Docker版本

$ docker -v

启动Docker版本

$ sudo systemctl enable docker
$ sudo systemctl start docker

建立docker用户组并将当前用户加入docker用户组

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

安装Docker-compose

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

Pre-requisites安装完毕后,开始安装Caliper

下载caliper最新代码

$ git clone https://github.com/hyperledger/caliper

回退到提交CLI前的版本

$ cd caliper
$ git reset --hard 93ef639c11d67c41df77551f20ca8cb2f1a758cf

备份package.json

$ cp package.json package_backup.json

编译代码

$ npm install
$ npm run repoclean
$ npm run bootstrap --force

安装一系列缺失的Node包

$ npm install [email protected] [email protected]
$ npm install nconf-yaml
$ npm install winston-daily-rotate-file
$ npm install node-zookeeper-client
$ npm install compare-versions
$ npm install table
$ npm install mustache
$ npm install fabric-protos
$ sudo npm install -g node-gyp node-pre-gyp
$ npm rebuild

下面就是见证奇迹的时刻 - 跑样例

$ cd caliper/packages/caliper-application/scripts
$ node run-benchmark.js -c …/benchmark/simple/config.yaml -n …/network/fabric-v1.4.1/2org1peergoleveldb/fabric-ccp-go.yaml

Hyperledger Caliper的CLI安装不成功怎么办_第1张图片

一些可能的问题提示

1 你可能会在编译caliper代码的时候,运行到npm run bootstrap卡住,这也是社区很多人遇到的问题,也耗费了我很长时间。有的人用npm run bootstrap --force可以成功,我的经验是如果加了–force也卡了很久,ctrl-c中断操作,删掉当前目录下的package-lock.json,将之前备份的package_backup.json覆盖package.json,然后重新运行npm run bootstrap --force就能成功。这个问题在github的issue列表里,有很多讨论,链接如下供参考。
https://github.com/hyperledger/caliper/issues/478
https://github.com/hyperledger/caliper/issues/445

2 关于CLI安装不成功的问题在github社区里我提交了一个issue,有一些讨论,有可能后续新的版本这个问题会被fix,可以持续关注。地址如下:
https://github.com/hyperledger/caliper/issues/496

3 阅读本文可能需要你已经对hyperledger caliper和hyperledger fabric有一些了解,包括操作方面,完全没有概念的可能需要自己补一些东西。由于自己水平有限,目前只能写成这样了,望海涵。

有任何问题欢迎随时交流指正~

你可能感兴趣的:(区块链)