1. 程式人生 > >我對hyperledger fabric1.1.0的執著(三):執行e2e_cli測試案例以及踩過的坑

我對hyperledger fabric1.1.0的執著(三):執行e2e_cli測試案例以及踩過的坑

1、執行e2e_cli案例:

(1.1)下載平臺特定二進位制檔案,如圖下載對應版本,下載地址為:

https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/

(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

關閉並重啟。

最終如圖,表示啟動成功: