我對hyperledger fabric1.1.0的執著(三):執行e2e_cli測試案例以及踩過的坑
1、執行e2e_cli案例:
(1.1)下載平臺特定二進位制檔案,如圖下載對應版本,下載地址為:
(1.2)將檔案上傳到/opt/gopath/src/github.com/hyperledger/fabric目錄,並解壓,會得到一個bin和config目錄,最終目錄結構如圖:
(1.3)進入e2e_cli目錄並啟動:
cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
bash network_setup.sh up
--------------------------------------------------------------------------------------------------------------------------------------
啟動過成功可能會遇到各種奇葩又看不懂的錯誤,以下僅記錄個人踩過的坑(英文的錯誤是跑阿里雲伺服器遇到的,中文的錯誤是跑本地筆記本遇到的,作為補充):
2、執行e2e_cli過程中遇到的錯誤:
錯誤一:./scripts/script.sh:Permission denied
卡在以下介面不動,提示./scripts/script.sh:Permission denied
解決:
ctrl+z退出,執行命令:bash network_setup.sh down
然後授權:sudo chmod +x scripts/script.sh
檢視:ll scripts/script.sh ,如下圖:
然後重新啟動:bash network_setup.sh up
錯誤二:generateArtifacts.sh:行58: /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/cryptogen: 沒有那個檔案或目錄。如圖:
原因是cryptogen檔案不在/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/資料夾。
解決:將平臺下載的二進位制檔案上傳至該目錄並解壓,最終目錄如圖:
錯誤三:generateArtifacts.sh:行58: /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/cryptogen: 許可權不夠,如圖:
原因:二進位制檔案許可權不足
解決:給二進位制檔案進行賦權操作
sudo chmod +x /opt/gopath/src/github.com/hyperledger/fabric/release/linux-amd64/bin/cryptogen
sudo chmod +x /opt/gopath/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen
檢視是否授權成功:
ll/opt/gopath/src/github.com/hyperledger/fabric/release/linux-amd64/bin/cryptogen
ll /opt/gopath/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen
重啟。
錯誤四、fatal error: unexpected signal during runtime execution ,如圖:
解決:
修改/etc/resolv.conf檔案:vim /etc/resolv.conf
將第一行options timeout:2 attempts:3 rotate single-request-reopen註釋掉。
然後重啟:
bash network_setup.sh down
bash network_setup.sh up
錯誤五:Error: Error endorsing chaincode: rpc error: code = Unknown desc = error starting container: API error (404): {"message":"network e2ecli_default not found"}
解決方法:
修改/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/base目錄下的peer-base.yaml,將網路名改成如下名稱即可,如圖:
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
關閉並重啟。
最終如圖,表示啟動成功: