1. 程式人生 > >在阿里雲進行Fabric的多機部署需要注意的幾個坑

在阿里雲進行Fabric的多機部署需要注意的幾個坑

深藍大神的《Fabric 1.0的多機部署》等部落格給初學者很多入門的指導。從這篇部落格中可以看到深藍所用的5個節點時同一區域網下的幾個,和利用阿里雲伺服器進行多機部署有幾個地方需要注意。

1. Fabric原始碼的版本不同會導致後面各種報錯(例如orderer無法啟動),直接通過git下載下來的會是最新版本,需要切換到Fabric v1.0.0版本

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

2. 在我們開通阿里雲伺服器後,預設的安全組僅會開放22 和3389埠,分別是linux 和Windows的遠端登入埠,但是在我們的docker-compose-orderer.yaml和docker-compose-peer.yaml配置檔案中看出來是通過7050埠去訪問的,所以我們點選例項安全組,配置開放埠,入方向和出方向均需要新增,配置如下。如果不配置,會報下面的錯誤

grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: Error while dialing dial tcp: i/o timeout"; Reconnecting to {orderer.example.com:7050 <nil>}
Error: Error connecting due to rpc error: code = Unavailable desc = grpc: the connection is unavailable


3. orderer和4個peer的配置檔案,推薦直接下載深藍大神部落格下面的壓縮包,然後改一下里面的ip地址,自己改容易改漏,然後各種報錯。

4. 當orderer和4個peer全部起來後,利用

./scripts/script.sh mychannel

開始建立通道,如果第一次通道沒有建立成功並報錯,第二次重新執行該命令,會有如下報錯

Error: Got unexpected status: BAD_REQUEST

這種報錯就很頭大,完全不知道錯在哪,一般都是channel已經存在,無法重新建立。

可以在cli容器中輸入命令,檢視channel是否已經存在。

peer channel list 

一般這種情況,直接在~go/src/github.com/hyperledger/fabric/examples/e2e_cli目錄下面,刪除容器,重啟各個節點,刪除容器的命令是

docker rm -f $(docker ps -aq)

以上是自己在5個阿里雲伺服器上部署Fabric多節點過程中遇到的幾個問題和解決辦法。