2017-06-15 122 views
1

我在远程机器上安装了Hyperledger fabric(v0.6)网络设置。我想让pbft的共识承诺块。我可以看到日志中启用的pbft共识,并且对等端能够连接到根节点。我在所有4个同伴上部署了我的链代码,并在一个对象上调用了一个事务。即使经过很长一段时间,我也没有看到任何同行提交任何提交,尽管同行们的传播状态发生了很大变化。Hyperledger Fabric 0.6 pbft Consensus

以下是根节点我的搬运工,compose.yml文件:

membersrvc: 
    image: hyperledger/fabric-membersrvc 
    restart: unless-stopped 
    ports: 
    - "7054:7054" 
    expose: 
    - "7054" 
    volumes: 
    - /var/run/docker.sock:/var/run/docker.sock 
    environment: 
    - MEMBERSRVC_CA_ACA_ENABLED=true 
    command: membersrvc 

    vp0: 
    image: hyperledger/fabric-peer:latest 
    restart: unless-stopped 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
    environment: 
     - CORE_PEER_ID=vp0 
     - CORE_SECURITY_ENABLED=false 
     - CORE_SECURITY_ENROLLID=test_vp0 
     - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT 
     - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 
     - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 
     - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 
     - CORE_PEER_ADDRESSAUTODETECT=true 
     - CORE_PEER_NETWORKID=dev 
     - CORE_LOGGING_LEVEL=debug #critical, error, warning, notice, info, debug 
     # The following section enables pbft consensus 
     - CORE_PBFT_GENERAL_BATCHSIZE=1 
     - CORE_PBFT_GENERAL_K=2 
     - CORE_PBFT_GENERAL_MODE=classic 
     - CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft # noops, pbft 
     - CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s 
     # - CORE_NOOPS_BLOCK_TIMEOUT=2s 
     # - CORE_NOOPS_BLOCK_WAIT=2s 
    ports: 
     - "7050:7050" 
     - "7051:7051" 
    expose: 
     - "7051" 
     - "7052" 
     - "7053" 
    links: 
     - membersrvc 
    command: sh -c "sleep 20; peer node start" 

这是搬运工,compose.yml文件在每个对等节点:

vp1: 
    image: hyperledger/fabric-peer:latest 
    restart: unless-stopped 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
    environment: 
     - CORE_PEER_DISCOVERY_ROOTNODE=root-node-ip:7051 
     - CORE_PEER_ID=vp1 
     - CORE_SECURITY_ENABLED=false 
     - CORE_SECURITY_ENROLLID=test_vp1 
     - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT 
     - CORE_PEER_PKI_ECA_PADDR=http://root-node-ip:7054 
     - CORE_PEER_PKI_TCA_PADDR=http://root-node-ip:7054 
     - CORE_PEER_PKI_TLSCA_PADDR=http://root-node-ip:7054 
     - CORE_PEER_ADDRESSAUTODETECT=true 
     - CORE_PEER_NETWORKID=dev 
     - CORE_LOGGING_LEVEL=debug #critical, error, warning, notice, info, debug 
     # The following section enables pbft consensus 
     - CORE_PBFT_GENERAL_BATCHSIZE=1 
     - CORE_PBFT_GENERAL_K=2 
     - CORE_PBFT_GENERAL_MODE=classic 
     - CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft # noops, pbft 
     - CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s 
     #- CORE_NOOPS_BLOCK_TIMEOUT=2s 
     #- CORE_NOOPS_BLOCK_WAIT=2s 
    ports: 
     - "7050:7050" 
     - "7051:7051" 
    expose: 
     - "7051" 
     - "7052" 
     - "7053" 
    command: sh -c "sleep 20; peer node start" 

灿任何人请帮助。谢谢。

回答

0

我认为同行无法使用他们的docker发布的IP地址执行握手。我通过将CORE_PEER_ADDRESSAUTODETECT设置为false来关闭自动检测,并通过将CORE_PEER_ADDRESS设置为实例的公共IP,将CORE_PEER_DISCOVERY_ROOTNODE设置为验证程序的IP地址,让对等方与其同步分类帐,从而让对等方发现对方。

相关问题