2016-05-16 38 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