2017-06-15 123 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地址,讓對等方與其同步分類帳,從而讓對等方發現對方。

相關問題