Hyperledger Fabric 例子e2e 部署 啓動失敗 幾個小問題

環境是Centos7

1、Hyperledger Fabric搭建環境的時候,如果用的阿里雲服務器,要特別注意一下

     配置文件裏面記得添加 - GODEBUG=netdns=go

 

最近在Fabric技術入門學習,根據教程一步步來,部署e2e的時候,總是部署失敗。

報錯的內容爲:orderer client failed to connect to orderer .example.com: 7050 連接失敗,orderer .example.com : no such host

如下所示:

查了很久,發現很多人都碰到此問題,但是都沒有貼出來解決方案。

通過docker ps -a 命令去看是因爲Orderer啓動失敗。根據網上有人提供的解決方案 重啓docker容器,他們解決成功了,我這還是一樣的問題。

最後終於有人提到,說是跟阿里雲ECS服務器有關,因爲我也是部署在阿里雲ECS上的。

解決方案一:

解決方案請看:https://yq.aliyun.com/articles/238940 

根據文件內容 然後修改了/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/docker-compose-cli.yaml 文件
添加了 - GODEBUG=netdns=go 一句話在docker-compose-cli.yml裏面。

 

光加這個一個文件還不夠,還有另外兩個文件裏面也都需要加上這句話。這個目錄下的

/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/base

在環境變量裏添加GODEBUG=netdns=go以強制使用pure Go resolver。

例如:

 

這下 orderer啓動失敗這個問題才解決完成。

 

解決方案二:

找到以下文件,然後把第一行註釋掉

cat /etc/resolv.conf

2、雖然這個問題解決了,但是又出現了另外一個問題,真是一環套一環。

 

 

INFO 004 got staus:&{SERVICE_UNAVAILABLE} 

ERROR:can't read the block:&{SERVICE_UNAVAILABLE} 

這個問題還是因爲鏡像版本和Fabric版本對不上。刪掉鏡像重新下載對應的版本。

如果按照網上的文章來的話,大部分是1.0的版本,那鏡像最好也選擇同一個版本,保持一致

3、Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"}

答:e2e_cli目錄是固定的,啓動後會創建一個docker network以此爲名字,這裏是e2e_cli。如果修改該目錄,要修改/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/base目錄下的peer-base.yaml
將網絡名改成如下名稱即可
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default

4、code = Unknown desc = could not find chaincode with name 'mycc'

答:chaincode(智能合約)實例化失敗,可能是上一次鏡像版本、容器存在緩存引起的。

 我把所有的鏡像刪除、緩存清空,測試例子也重新下載了一遍,鏡像版本和項目版本一致,重新來過就沒有問題了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章