launchAndWaitForRegister启动链码时失败超时

时间:2016-12-07 07:09:26

标签: hyperledger hyperledger-fabric

我使用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分钟后收到此错误:

enter image description here

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 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分钟

相关问题