2016-05-16 31 views
3

我正在嘗試創建一個Hyperledger驗證對等集羣,每個集羣都運行在不同的主機上,但似乎沒有正常運行。多主機驗證對等集羣設置

開始根節點和3個等節點後,這是在輸出根節點上運行peer network listvp0

{"peers":[{"ID":{"name":"vp1"},"address":"172.17.0.2:30303","type":1},{"ID":{"name":"vp2"},"address":"172.17.0.2:30303","type":1},{"ID":{"name":"vp3"},"address":"172.17.0.2:30303","type":1}]} 

這是從同一個命令上的對等體之一,vp3輸出:

{"peers":[{"ID":{"name":"vp0"},"address":"172.17.0.2:30303","type":1},{"ID":{"name":"vp3"},"address":"172.17.0.2:30303","type":1}]} 

所有對等體只列出他們自己和根目錄vp0列表中。

這是從根節點輸出的日誌,vp0https://gist.github.com/mikezaccardo/f139eaf8004540cdfd24da5a892716cc

這是從對等節點中的一個輸出的日誌,vp3https://gist.github.com/mikezaccardo/7379584ca4f67bce553c288541e3c58e

這是我運行來創建命令根節點:

nohup sudo docker run --name=$HYPERLEDGER_PEER_ID \ 
      --restart=unless-stopped \ 
      -i \ 
      -p 5000:5000 \ 
      -p 30303:30303 \ 
      -p 30304:30304 \ 
      -p 31315:31315 \ 
      -e CORE_VM_ENDPOINT=http://172.17.0.1:4243 \ 
      -e CORE_PEER_ID=$HYPERLEDGER_PEER_ID \ 
      -e CORE_PEER_ADDRESSAUTODETECT=true \ 
      -e CORE_PEER_NETWORKID=dev \ 
      -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft \ 
      -e CORE_PBFT_GENERAL_MODE=classic \ 
      -e CORE_PBFT_GENERAL_N=$HYPERLEDGER_CLUSTER_SIZE \ 
      -e CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s \ 
      joequant/hyperledger /bin/bash -c "rm config.yaml; cp /usr/share/go-1.6/src/github.com/hyperledger/fabric/consensus/obcpbft/config.yaml .; peer node start" > $HYPERLEDGER_PEER_ID.log 2>&1& 

這是我運行來創建每個其它對等節點的命令:

nohup sudo docker run --name=$HYPERLEDGER_PEER_ID \ 
      --restart=unless-stopped \ 
      -i \ 
      -p 30303:30303 \ 
      -p 30304:30304 \ 
      -p 31315:31315 \ 
      -e CORE_VM_ENDPOINT=http://172.17.0.1:4243 \ 
      -e CORE_PEER_ID=$HYPERLEDGER_PEER_ID \ 
      -e CORE_PEER_DISCOVERY_ROOTNODE=$HYPERLEDGER_ROOT_NODE_ADDRESS:30303 \ 
      -e CORE_PEER_ADDRESSAUTODETECT=true \ 
      -e CORE_PEER_NETWORKID=dev \ 
      -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft \ 
      -e CORE_PBFT_GENERAL_MODE=classic \ 
      -e CORE_PBFT_GENERAL_N=$HYPERLEDGER_CLUSTER_SIZE \ 
      -e CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s \ 
      joequant/hyperledger /bin/bash -c "rm config.yaml; cp /usr/share/go-1.6/src/github.com/hyperledger/fabric/consensus/obcpbft/config.yaml .; peer node start" > $HYPERLEDGER_PEER_ID.log 2>&1& 

HYPERLEDGER_PEER_IDvp0根節點和vp1vp2,...爲對等節點,HYPERLEDGER_ROOT_NODE_ADDRESS是根節點的公共IP地址,並且HYPERLEDGER_CLUSTER_SIZE是4.

這是泊塢圖像我正在使用:github.com/joequant/hyperledger

我的命令有什麼明顯的錯誤嗎?實際公共IP地址是否應該顯示出來,而不僅僅是172.17.0.2?我的日誌是否有用/是否需要其他信息?

任何幫助或見解將不勝感激,謝謝!

回答

2

我已經設法得到一個noops羣集工作,其中所有節點相互發現並且chaincodes成功部署。

我,因爲我的文章上面做了一些修正:

我現在用mikezaccardo/hyperledger-peer形象,yeasy/hyperledger-peer叉,而不是joequant/hyperledger

我改變:

-e CORE_PEER_ADDRESSAUTODETECT=true \ 

到:

-e CORE_PEER_ADDRESS=$HOST_ADDRESS:30303 \ 
-e CORE_PEER_ADDRESSAUTODETECT=false \ 

使每方將通告其公網IP,而不是私人的。

我正確標記我的形象,官方基本圖像:

sudo docker tag mikezaccardo/hyperledger:latest hyperledger/fabric-baseimage:latest 

最後,對於背景下,這是所有與我的Apache布魯克林的藍圖,其部署了Hyperledger面料集羣的發展。該存儲庫包含本文中提及的所有代碼和答案,可在此處找到:https://github.com/cloudsoft/brooklyn-hyperledger

+0

感謝您編寫您的答案。我會立即嘗試! – Dolanor