Hyperledger Fabric——Caliper:運行環境的搭建

Hyperledger Fabric——Caliper:運行環境的搭建

Caliper是針對Hyperledger Fabric的性能測試工具,安裝運行過程坑很多,在這裏提供完整的安裝過程,包括一些報錯的解決方案,在這裏也提供一些前輩的參考,本文會對前輩們的方法介紹目前出現的一些坑的一些說明以及解決的提供。

參考:很詳細的過程:https://blog.csdn.net/cao0507/article/details/83002800;問題記錄:https://blog.csdn.net/raogeeg/article/details/82752613。

安裝需要的基礎環境:

  • NodeJS 8.X;
  • node-gyp;
  • Docker;
  • Docker-compose
  • make,g++(一般都有,我就不用再裝這個)

1、安裝node.js

首先說一下node.js的安裝就是一個獨立的安裝過程而已,方法有很多種,你完全可以不用看我的,自己搜安裝nodejs方法一大堆,只要最後你能通過命令行:

node -v

查看到自己的node.js版本那就行了,因爲我之前就裝了,所以提供一種簡單的安裝方法:

sudo apt-get install nodejs

不過注意這裏用到的環境是要8.X也就是8到9之間的版本,你可以到官網去下載固定版本然後安裝就行了,可以用到以下操作:

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

至於curl你沒有要去安裝,這個不用多說了吧。

2、安裝node-gyp

sudo npm install -g node-gyp

3、安裝docker

安裝一下包來使得apt可以通過https使用存儲庫

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方的GPG密鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

設置stable存儲庫:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再更新一下apt包索引:

sudo apt-get update

安裝最新版的Docker CE:

sudo apt-get install -y docker-ce

sudo apt-get install docker-ce

最後就是測試安裝是不是成功:

docker --version

如果有版本和build成功,就是安裝完成了。同時因爲下載fabric鏡像會比較慢,可以使用阿里的鏡像,到/etc/docker目錄下,創建daemon.json文件,輸入下面內容,

{
 "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}

然後保存退出,執行:

sudo systemctl daemon-reload
sudo systemctl restart docker

查看docker服務能否啓動:

systemctl status docker

如果沒有,啓動docker服務:

sudo service docker start或者sudo systemctl start docker

4、安裝docker-compose

安裝docker-compose的方式最簡單就是通過pip指令進行安裝:

首先安裝pip:

sudo apt-get install python-pip

然後安裝docker-compose:

pip install docker-compose

檢查是否安裝成功:

sudo docker-compose --version

如果build是unknown,則可以用下面的操作來解決:

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

就可以了。

正式安裝caliper和運行:

1、clone caliper:

這裏直接使用caliper的最新版本會經常出錯,所以提供給大家一個比較穩定的舊版本:

https://github.com/cao0507/Hyperledger-caliper

使用指令:

git clone https://github.com/cao0507/Hyperledger-caliper

進入Hyperledger-caliper文件夾,進行安裝:

npm install

2、安裝fabric SDKs:

在Hyperledger-caliper文件夾中安裝SDKs,使用一下指令:

npm install [email protected] [email protected]

這裏使用的版本是1.1.0適配caliper,一般注意要使用這個版本。

3、跑測試網絡:

node benchmark/simple/main.js

這是直接使用測試網絡去跑這個測試工具。到這裏就完成了,但是很多問題就是在這一步出現,例如:

  • ERROR: Couldn’t connect to Docker daemon at http+docker://localhost - is it running?

這個可以使用一下方法來解決,就是重新開一下docker:

1、如果還沒有 docker group 就添加一個
sudo groupadd docker
2、將用戶加入該 group 內。然後退出並重新登錄就生效啦。
sudo gpasswd -a ${USER} docker
3、重啓 docker 服務
sudo service docker restart
4、切換當前會話到新 group 或者重啓 X 會話
newgrp - docker
注意:最後一步是必須的,否則因爲 groups 命令獲取到的是緩存的組信息,剛添加的組信息未能生效,所以 docker images 執行時同樣有錯。`

  • not ok 2 Failed to join peers, TypeError: Cannot read property ‘getConnectivityState’ of undefined at EventHub._checkConnection:
使用grpc version 1.10.1 代替之前的1.13.1版本
npm install [email protected]
  • not ok 1 Failed to create channels Error: create status is BAD_REQUEST at channel.organizations.reduce.then.then.then
和之前搭建fabric環境遇到的問題一樣,BAD_REQUEST 經常是當前要創建的channel 已經存在所以會出現這個錯誤,
我們可以通過docker rm -f $(docker ps -q -a)
移除之前的容器,但是如果不是channnel 已存在的問題 ,暫時就不知道怎麼解決了
  • [Peer.js]: sendProposal - timed out after:120000

這個問題算是比較坑的了,在網上找了很久,看到github 有一個一樣的問題
https://github.com/hyperledger/caliper/issues/137
有一條評論提到,因爲機器性能問題,開啓的peer 較多,兩分鐘不足以在本機上實例化chaincode 但是照着上面的方式修改了
文件:github.com/hyperledger/caliper/src/fabric/e2eUtils.js#211中的request_time 時間
運行後還是沒有解決這個問題,經過一天時間,巧合看到一篇文章提到修改文件:github.com/hyperledger/caliper/node_modules/fabric-client/config/default.json
配置文件中的request_time 運行成功
  • 大部分的問題是因爲版本存在不匹配:

    查看 npm 包版本信息及 docker 鏡像信息,需確認無誤。因爲 caliper 在創建 fabric 網絡時默認是使用的 fabric v1.1.0 版本,docker 下載的 peer、Orderer、ca 鏡像也是 x86_64-v1.1.0 版本,所以 fabric SDKs 的 版本必須一致。

發佈了12 篇原創文章 · 獲贊 9 · 訪問量 2720
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章