我正在启动一个网络,该网络将有3个对等方和一个订购者。我有4个不同的虚拟机,每个节点一个。
我按照Hyperledger Fabric的入门手册进行操作。我执行所有步骤没有任何问题。但是,在执行以下命令InvalidateRect((HWND)winId(), NULL, TRUE);
之后,我开始得到一些错误。在我看来,上一个命令生成得很好,因为我得到以下日志:
peer channel join -b channeldemo.block
然后,在那之后,我在对等体中获得以下日志:
2017-06-27 08:26:23.247 UTC [channelCmd] executeJoin -> INFO 00a Peer joined the channel!
2017-06-27 08:26:23.247 UTC [main] main -> INFO 00b Exiting.....
但是,如果我在本地主机中启动网络,则不会收到任何错误日志。在一个Peer加入频道后,我收到以下消息(来自对等方和订货人的消息):
peer0.proveedor.com | 2017-06-27 08:26:29.241 UTC [deliveryClient] StartDeliverForChannel -> DEBU 2d8 This peer will pass blocks from orderer service to other peers for channel canaltraza
peer0.proveedor.com | 2017-06-27 08:26:32.242 UTC [ConnProducer] NewConnection -> ERRO 2d9 Failed connecting to orderer0.tec.com:7050 , error: context deadline exceeded
peer0.proveedor.com | 2017-06-27 08:26:32.242 UTC [deliveryClient] connect -> ERRO 2da Failed obtaining connection: Could not connect to any of the endpoints: [orderer0.tec.com:7050]
答案 0 :(得分:2)
错误是对等方的内部错误。对等方无法连接到订货人。这是因为您创建的Docker容器的默认配置。
创建docker容器时,可以定义其网络。默认情况下,您创建的容器位于桥接网络内。此网络将容器与其他主机中的其他容器隔离开来。
我将此配置更改为Host,但我没有收到错误。它很顺利。
network: byfn
network_mode: host
添加到每个容器- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
我应该阅读有关docker网络的更多信息,因为还有其他可能性,例如overlay。我认为这会更好。另外,我认为使用docker-machien是一个好主意,但我还没有这样做。有关于它的更多信息here。