几分钟后无法在 Hyperledger Composer-rest-server 上获取数据,超时
cannot take data on Hyperledger Composer-rest-server after a few minutes, timeout
我已经从 Azure Ubuntu 服务器创建了一个 Hyperledger Composer-rest-server。我尝试将其与亚马逊服务器连接,我已成功连接它们。唯一的问题是我无法从亚马逊端安装 composer-rest-server,也无法从亚马逊端安装名片。所以我从 azure 端打开了 composer-rest-server。但是过了一会儿,服务器将不再提供数据。它将给出看起来像
的错误超时
Generated schemas for all types in business network definition
Adding schemas for all types to Loopback ...
Added schemas for all types to Loopback
Web server listening at: http://localhost:3000
Browse your REST API at http://localhost:3000/explorer
Unhandled error for request GET /api/queries/selectCommodities: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/ptech_root/.nvm/versions/node/v8.14.0/lib/node_modules/composer-rest-server/node_modules/fabric-client/lib/Peer.js:94:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
Unhandled error for request GET /api/queries/selectCommodities: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/ptech_root/.nvm/versions/node/v8.14.0/lib/node_modules/composer-rest-server/node_modules/fabric-client/lib/Peer.js:94:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
在我重启composer-rest-server 之后它又会恢复正常。但这是随机发生的,并且每 5 分钟发生一次。这是什么原因?我该怎么办?我真的是 Hyperledger 的新手,感谢您的帮助。
"grpc" Fabric 使用的底层协议之一发生了一些变化,这可能会导致超时问题。
您可以通过修改用于启动 REST 服务器的卡的 connection.json 来更改 Composer REST 服务器连接到对等点的默认 grpc 选项。
为 connection.json 中的每个对等添加以下设置:
"grpcOptions": {
"grpc.keepalive_time_ms": 120000,
"grpc.http2.min_time_between_pings_ms": 120000,
"grpc.keepalive_timeout_ms": 20000,
"grpc.http2.max_pings_without_data": 0,
"grpc.keepalive_permit_without_calls": 1
}
最重要的是 "grpc.http2.max_pings_without_data": 0
,因此您可以先尝试一下。
我已经从 Azure Ubuntu 服务器创建了一个 Hyperledger Composer-rest-server。我尝试将其与亚马逊服务器连接,我已成功连接它们。唯一的问题是我无法从亚马逊端安装 composer-rest-server,也无法从亚马逊端安装名片。所以我从 azure 端打开了 composer-rest-server。但是过了一会儿,服务器将不再提供数据。它将给出看起来像
的错误超时Generated schemas for all types in business network definition
Adding schemas for all types to Loopback ...
Added schemas for all types to Loopback
Web server listening at: http://localhost:3000
Browse your REST API at http://localhost:3000/explorer
Unhandled error for request GET /api/queries/selectCommodities: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/ptech_root/.nvm/versions/node/v8.14.0/lib/node_modules/composer-rest-server/node_modules/fabric-client/lib/Peer.js:94:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
Unhandled error for request GET /api/queries/selectCommodities: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/ptech_root/.nvm/versions/node/v8.14.0/lib/node_modules/composer-rest-server/node_modules/fabric-client/lib/Peer.js:94:20)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
在我重启composer-rest-server 之后它又会恢复正常。但这是随机发生的,并且每 5 分钟发生一次。这是什么原因?我该怎么办?我真的是 Hyperledger 的新手,感谢您的帮助。
"grpc" Fabric 使用的底层协议之一发生了一些变化,这可能会导致超时问题。
您可以通过修改用于启动 REST 服务器的卡的 connection.json 来更改 Composer REST 服务器连接到对等点的默认 grpc 选项。
为 connection.json 中的每个对等添加以下设置:
"grpcOptions": {
"grpc.keepalive_time_ms": 120000,
"grpc.http2.min_time_between_pings_ms": 120000,
"grpc.keepalive_timeout_ms": 20000,
"grpc.http2.max_pings_without_data": 0,
"grpc.keepalive_permit_without_calls": 1
}
最重要的是 "grpc.http2.max_pings_without_data": 0
,因此您可以先尝试一下。