我试图修改Hyperledger fabric v1.0的the Getting Started example。 源代码位于examples / e2e_cli目录中。
原始方案是4个对等方,1个订购服务和1个cli服务。
我想要实现的是1个云端实例(实例A)上的3个对等体,1个订购服务和1个cli服务,以及另一个实例(实例B)上的1个对等服务。
由于区块链是分布式分类帐,我想在多个实例上进行测试。
我做的是......
在实例A上启动3个对等体和1个cli以及1个排序。我注释掉了docker-compose.yaml的peer2部分。
在实例B上启动1个对等体。我复制了docker-compose.yaml的peer2部分并执行了docker-compose -f only-peer2.yaml up
按照说明,"手动执行交易",创建并实例化一个频道,并尝试让同伴加入该频道。
这是我在cli上尝试的代码,让实例B上的对等体加入频道。
实例B上的peer2加入频道:
CORE_PEER_MSPCONFIGPATH=$GOPATH/src/github.com/hyperledger/fabric/peer/crypto/peer/peer2/localMspConfig
CORE_PEER_ADDRESS=<IP address of instance B>:9051
CORE_PEER_LOCALMSPID="Org0MSP"
CORE_PEER_TLS_ROOTCERT_FILE=$GOPATH/src/github.com/hyperledger/fabric/peer/crypto/peer/peer2/localMspConfig/cacerts/peerOrg1.pem
peer channel join -b mychannel.block
我刚刚将 peer2 更改为实例B的IP地址。
但是我遇到了错误,我不能让实例B上的peer2加入该频道。
以下是错误消息。
实例A(CLI):
Error: Error getting endorser client channel: PEER_CONNECTIONERROR - Error trying to connect to local peer: grpc: timed out when dialing
实例B(peer2):
peer2 | 2017/04/01 22:56:32 grpc: Server.Serve failed to complete security handshake from "<IP address of instance A>:1177": EOF
peer2 | 2017/04/01 22:56:34 grpc: Server.Serve failed to complete security handshake from "<IP address of instance A>:1178": read tcp 172.19.0.2:7051->52.183.102.216:1178: read: connection reset by peer
由于我一般都是区块链和Hyperledger的新手,我可能不了解认证机制的基本知识。但我认为拥有2个实例的工作示例是很好的起点。
由于我可以通过原始方案(仅使用1个实例)而没有任何错误,我的服务器设置应该没问题......
请给我提示。
谢谢!