Hyperledger Fabric 链代码实例化 returns 超时已过期

Hyperledger Fabric chaincode instantiation returns timeout expired

几个月来我一直在研究 Fabric,我一直在尝试 运行 一个有点复杂的虚拟机,链代码中的以太坊虚拟机。它是用 JavaScript 编写的,所以我使用的是 nodeJS 链代码版本。 我将 VM 和我的链代码打包在一个目录中,我将其安装并实例化到对等节点上。安装完成并退出,没有错误,但是挂起几分钟后的实例化 return 给我一个错误:

Error: Error endorsing chaincode: rpc error: code = Unknown desc = timeout expired while starting chaincode mychaincode:1.0(networkid:dev,peerid:peer0.org1.example.com,tx:.... 

它应该 运行 至少几分钟,因为添加的包是 ~15MB,根据示例 nodejs 链码 运行s 至少一分钟。

示例 nodejs 链代码 (chaincode_example02) 运行 在教程中的 BYFN 网络和我已经启动的基本网络上都完美无缺。我的环境是根据 fabric-samples 存储库 (v1.1.0) 中的文档 (v1.1.0) 设置的。即使我只使用 require 方法将一个包添加到示例链代码,它也会挂起,而不是 return 错误。

我一直在寻找可以设置链代码实例化超时值的标志或配置,但没有成功。我在哪里可以增加超时值? 我应该提供哪个日志才能进一步搜索解决方案?

提前致谢, 巴林特

您可以修改 chaincode.startuptimeout 配置,方法是将 CORE_CHAINCODE_STARTUPTIMEOUT 环境变量添加到 base/peer-base.yaml docker 组合文件中,指定默认值以外的内容。