Node.js Fabric NodeSDK addBlockListener给出错误,如果没有挂起的块,则失败
我正在尝试添加多个块侦听器,我的代码如下:Node.js Fabric NodeSDK addBlockListener给出错误,如果没有挂起的块,则失败,node.js,async-await,hyperledger-fabric,Node.js,Async Await,Hyperledger Fabric,我正在尝试添加多个块侦听器,我的代码如下: for (var i=0; i<channelid.length; i++) { let cid = channelid[i] let nextBlock = 1 configPath = path.resolve(__dirname, `${cid}.nextBlock`) if (fs.existsSync(configPath)) { nextBlock = fs.readFileSync(c
for (var i=0; i<channelid.length; i++) {
let cid = channelid[i]
let nextBlock = 1
configPath = path.resolve(__dirname, `${cid}.nextBlock`)
if (fs.existsSync(configPath)) {
nextBlock = fs.readFileSync(configPath, "utf8")
} else {
fs.writeFileSync(configPath, parseInt(nextBlock, 10))
}
console.log(`Adding listener for channel ${cid}`)
network = await gateway.getNetwork(cid)
listener = await network.addBlockListener(
async (event) => {
await ProcessingMap.set(cid, event.blockData.header.number, event.blockData)
console.log(`[${cid}] Added block ${event.blockData.header.number} to ProcessingMap`)
},
{ startBlock: parseInt(nextBlock, 10) }
)
console.log(`[${cid}]: Listening for block events, nextblock: ${nextBlock}`)
processPendingBlocks(ProcessingMap, cid, configPath)
};
然后此侦听器将无法拾取更多的块事件
如果我配置侦听多个通道,比如说mychannel1
没有挂起的块,但是mychannel2
有挂起的块,那么mychannel1
侦听器将出现上述错误,并且mychannel
中的后续块事件将不会被拾取<代码>mychannel2将不受mychannel1
侦听器故障的影响
Adding listener for channel mychannel
2020-10-19T19:41:34.545Z - error: [EventService]: EventService[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] timed out after:3000
2020-10-19T19:41:34.547Z - error: [EventService]: send[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] - #1 - Starting stream to peer2.org1.xxx.com failed
2020-10-19T19:41:37.552Z - error: [EventService]: EventService[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] timed out after:3000
2020-10-19T19:41:37.552Z - error: [EventService]: send[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] - #1 - Starting stream to peer3.org1.xxx.com failed
2020-10-19T19:41:40.555Z - error: [EventService]: EventService[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] timed out after:3000
2020-10-19T19:41:40.555Z - error: [EventService]: send[peer2.org1.xxx.com,peer3.org1.xxx.com,peer1.org1.xxx.com] - #1 - Starting stream to peer1.org1.xxx.com failed
2020-10-19T19:41:40.555Z - error: [BlockEventSource]: Failed to start event service message=Event service timed out - Unable to start listening, stack=Error: Event service timed out - Unable to start listening
at Timeout.setTimeout [as _onTimeout] (/home/centos/nodejs/node_modules/fabric-common/lib/EventService.js:408:12)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
[mychannel]: Listening for block events, nextblock: 26