我已经克隆了结构示例
存储库并正在运行byfn
脚本来构建第一个网络。我正在使用 node js SDK 进行应用程序开发。我编写了一个链码函数,它进行耗时的计算并将true/false
值返回给中间件。
我peer0
仅从Org1
.
不幸的是,我得到了一个超时,没有来自链码的响应~30seconds
。我得到的错误如下所示:
warn: [Query]: evaluate: Query ID "[object Object]" of peer "peer0.org1.example.com:7051" failed: message=failed to execute transaction 799eb959954a7f2f8f75dee735969a4ba374b4bc98b4bbacd2fc85fc57a860b9: error sending: timeout expired while executing transaction, stack=Error: failed to execute transaction 799eb959954a7f2f8f75dee735969a4ba374b4bc98b4bbacd2fc85fc57a860b9: error sending: timeout expired while executing transaction
at self._endorserClient.processProposal (/home/jacktheripper/fabric-samples/zeroknowledge/snarkjs/node_modules/fabric-client/lib/Peer.js:140:36)
at Object.onReceiveStatus (/home/jacktheripper/fabric-samples/zeroknowledge/snarkjs/node_modules/grpc/src/client_interceptors.js:1207:9)
at InterceptingListener._callNext (/home/jacktheripper/fabric-samples/zeroknowledge/snarkjs/node_modules/grpc/src/client_interceptors.js:568:42)
at InterceptingListener.onReceiveStatus (/home/jacktheripper/fabric-samples/zeroknowledge/snarkjs/node_modules/grpc/src/client_interceptors.js:618:8)
at callback (/home/jacktheripper/fabric-samples/zeroknowledge/snarkjs/node_modules/grpc/src/client_interceptors.js:845:24), status=500, , url=grpcs://localhost:7051, name=peer0.org1.example.com:7051, grpc.max_receive_message_length=-1, grpc.max_send_message_length=-1, grpc.keepalive_time_ms=120000, grpc.http2.min_time_between_pings_ms=12000, grpc.keepalive_timeout_ms=2000000, grpc.http2.max_pings_without_data=5, grpc.keepalive_permit_without_calls=1, name=peer0.org1.example.com:7051, grpc.ssl_target_name_override=peer0.org1.example.com, grpc.default_authority=peer0.org1.example.com, isProposalResponse=true
为了解决这个问题,我认为我必须覆盖结构中的默认超时配置。deafault.json
所以,我对 .I 中的配置文件进行了更改fabric-client node module
。我增加了键中的值,"request-timeout","grpc.keepalive_timeout_ms", "grpc-wait-for-ready-timeout"
但我的应用程序仍然像~30-35 seconds
. 我还更改了文件中的timeout
参数值,connection-org1.yaml
但应用程序仍然同时超时。
如何增加此超时时间以允许在我的链码中进行大量计算?我知道我的链码和结构安装是正确的,因为相同的应用程序和链码在具有更好资源的系统中运行良好(即在更快的计算机中计算需要约 15 秒)