2017-06-15 16 views
1

リモートマシンにHyperledgerファブリック(v0.6)ネットワーク設定があります。私は、ブロックのコミットメントについてpbftコンセンサスを有効にしたい。ログで有効になっているpbftコンセンサスが確認でき、ピアはルートノードに接続できます。私はチェーンコードを4つのピアすべてに配備し、1つのトランザクションを呼び出しました。仲間は国家の変化をたくさん伝えていますが、私はずっと後にも仲間にコミットを見ません。続き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

私は、ピアがドッカー公開のIPアドレスを使用してハンドシェイクを実行できないと考えました。 CORE_PEER_ADDRESSAUTODETECTをfalseに設定して自動検出をオフにし、CORE_PEER_ADDRESSをインスタンスのパブリックIPに、CORE_PEER_DISCOVERY_ROOTNODEをピアがそのレジャーを同期させるための検証者のIPアドレスに設定することでピアを発見させます。

関連する問題