如何在2个实例上拆分hyperledger fabcic对等体?

时间:2017-04-01 23:48:29

标签: hyperledger hyperledger-fabric

我试图修改Hyperledger fabric v1.0的the Getting Started example。 源代码位于examples / e2e_cli目录中。

原始方案是4个对等方,1个订购服务和1个cli服务。

我想要实现的是1个云端实例(实例A)上的3个对等体,1个订购服务和1个cli服务,以及另一个实例(实例B)上的1个对等服务。

由于区块链是分布式分类帐,我想在多个实例上进行测试。

我做的是......

  1. 在实例A上启动3个对等体和1个cli以及1个排序。我注释掉了docker-compose.yaml的peer2部分。

  2. 在实例B上启动1个对等体。我复制了docker-compose.yaml的peer2部分并执行了docker-compose -f only-peer2.yaml up

  3. 按照说明,"手动执行交易",创建并实例化一个频道,并尝试让同伴加入该频道。

  4. 这是我在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个实例)而没有任何错误,我的服务器设置应该没问题......

    请给我提示。

    谢谢!

1 个答案:

答案 0 :(得分:1)

这个问题有点陈旧,因为它指的是1.0.0-alpha版本的入门示例。但是,确实有用于在多个主机上设置网络的资源。

This one利用Ansible,OpenStack和Kubernetes,正在合并为Hyperledger Cello。 This one会将节点部署到预先配置的VM。可能还有其他例子。