我使用docker swarm模式设置4个vp节点。 docker服务脚本如下所示:
docker service create --name vp0 --replicas 1 --network over \
--endpoint-mode dnsrr \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock,ro=false \
--env CORE_PEER_ID=vp0 \
--env CORE_PEER_ADDRESSAUTODETECT=true \
--env CORE_LOGGING_LEVEL=debug \
--env CORE_PEER_NETWORKID=dev \
--env CORE_VM_ENDPOINT=unix:///var/run/docker.sock \
--env CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft \
--env CORE_PBFT_GENERAL_N=4 \
--env CORE_PBFT_GENERAL_MODE=batch \
--env CORE_PBFT_GENERAL_TIMEOUT_BROADCAST=20s \
--env CORE_PBFT_GENERAL_TIMEOUT_REQUEST=60s \
--env CORE_PBFT_GENERAL_TIMEOUT_RESENDVIEWCHANGE=120s \
--env CORE_PBFT_GENERAL_TIMEOUT_VIEWCHANGE=60s \
--env CORE_REST_ENABLED=false \
--env CORE_CHAINCODE_STARTUPTIMEOUT=600000 \
--env CORE_CHAINCODE_DEPLOYTIMEOUT=600000 \
ibmblockchain/fabric-peer:x86_64-0.6.1-preview peer node start
启动4项服务(vp0,vp1,vp2,vp3)后,网络似乎正常运行。但是,当我尝试部署链代码示例时,我在10分钟后收到此错误:
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
<强>假设强>
您的启动超时值配置错误,因此Fabric默认为5秒,这对您的部署来说太短了。
<强>推理强>
如果它在几秒钟后(~5?)真的失败了,那么它表明你的CORE_CHAINCODE_STARTUPTIMEOUT=600000
没有被尊重。默认的core.yaml值为300000,仍然超过几秒。
如果ENV和core.yaml都不存在,则fabric将该值默认为5秒。
如果获得REGISTER需要的时间超过5秒 - 那么为什么这个设置没有进入对等进程的底部可能会解决您的问题。
如何确认
确保启用了调试日志记录,并且您应该在对等日志启动时看到could not retrive timeout var...setting to 5secs
。 (拼写错误)
<强>来源
https://github.com/hyperledger/fabric/blob/v0.6/peer/node/start.go#L259
答案 1 :(得分:0)
对于Fabric v1.1,链码超时行的正确格式为:
CORE_CHAINCODE_STARTUPTIMEOUT=240s
s
将值定义为240秒。
在FABCAR应用程序中测试,超时按预期更改为4分钟