Caliper測試網路效能報錯problem reading the PEM file :: Error: ENOENT: no such file xxx /keystore/key.pem‘

2020-09-28 13:00:51

執行以下命令時報錯

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

首先是提示拉取映象失敗:Get https://registry-1.docker.io/v2/hyperledger/fabric-ca/manifests/1.4.1: net/http: TLS handshake timeout

然後報錯如下:problem reading the PEM file :: Error: ENOENT: no such file or directory, open '/home/yujialing/go/src/github.com/hyperledger/caliper-benchmarks/networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/key.pem’

在這裡插入圖片描述

1.首先解決拉取docker映象失敗的問題

將docker映象換成國內源

vim /etc/docker/daemon.json
{
"registry-mirrors":["https://registry.docker-cn.com"]
}

重新啟動docker

systemctl restart docker

檢視docker資訊

docker info

再次執行以下命令,拉取docker映象的問題解決了,但證書問題仍未解決

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

在這裡插入圖片描述
去到config_solo目錄去檢視

cd networks/fabric/config_solo/crypto-config/peerOrganizations/org1.example.com/users

資料夾為空
在這裡插入圖片描述

docker映象拉取失敗問題解決,但是證書找不到問題還沒解決,原因是缺少了Fabric1.4.1的二進位制指令碼檔案。

2.解決找不到證書的問題

可以到此處0積分下載

另外搭建了Hyperledger Fabric的同學也可以去fabric/script目錄下用bootstrap.sh下載
下載Fabric1.4.1的二進位制指令碼檔案

cd /home/yujialing/go/src/github.com/hyperledger/fabric/scripts

開啟bootstrap.sh,編輯版本引數,分別改為1.4.1、1.4.1、0.4.15
在這裡插入圖片描述
儲存後退出。注意,之前搭建Hyperledger Fabric的時候,當前目錄下可能有fabric-sample這個資料夾,如果以後還要用到就將其備份起來,以後不用的同學將其刪除也可以

執行以下命令下載fabric-sample、二進位制指令碼檔案和docker映象

./bootstrap.sh

在這裡插入圖片描述
下載完成後會在當前資料夾下生成fabic-sample檔案,裡面有一個bin資料夾用於放置二進位制指令碼檔案,複製到caliper-benchmarks/networks/fabric/config_solo下

cp -r fabric-samples/bin /home/yujialing/go/src/github.com/hyperledger/caliper-benchmarks/networks/fabric/config_solo/bin

到config目錄下

cd /home/yujialing/go/src/github.com/hyperledger/caliper-benchmarks/networks/fabric/config_solo/bin

進入bin目錄檢視二進位制指令碼檔案是否已經複製過來,下圖顯示已經成功複製過來

返回上一級

cd ..

目前有4個檔案,執行generate.sh

./generate.sh

成功生成了證書金鑰資料夾、通道交易和創世區塊
接下來回到caliper-benchmarks目錄,再次執行測試效能測試指令,證書問題解決了,但還存在一個新的問題

cd ../../..
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

在這裡插入圖片描述
正在解決中,請持續關注。

歡迎小夥伴的討論,若有問題請在評論區評論,謝謝你。