我在远程计算机上安装了Hyperledger fabric (v0.6)网络。我想为块的承诺启用pbft共识。我可以在日志中看到启用的pbft共识,并且对等节点能够连接到根节点。我在所有4个对等体上部署了我的链代码,并在其中一个上调用了一个事务。即使在很长一段时间之后,我也没有在任何对等点中看到任何提交,尽管对等点的传播状态发生了很大变化。
下面是我在根节点上的docker-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"这是每个对等节点上的docker-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"有谁能帮帮忙。谢谢。
发布于 2017-07-17 03:46:59
我认为对等点无法使用其docker发布的ip地址执行握手。我通过将CORE_PEER_ADDRESSAUTODETECT设置为false来关闭自动检测,并通过将CORE_PEER_ADDRESS设置为实例的公共ip并将CORE_PEER_DISCOVERY_ROOTNODE设置为验证器的ip地址(对等体将与之同步其账本)来让对等体发现彼此。
https://stackoverflow.com/questions/44577740
复制相似问题