【发布时间】:2019-04-12 12:19:55
【问题描述】:
我在https://developer.ibm.com/tutorials/ibm-blockchain-platform-vscode-smart-contract/ 学习教程,当我通过 IBM 区块链平台 VS 代码扩展提交交易时,我收到错误:
“提交交易时出错:未收到成功事件”。
调用的函数是“实例化”,如下所示:
public async instantiate(ctx: Context): Promise<any> {
const greeting = { text: 'Instantiate was called!' };
await ctx.stub.putState('GREETING', Buffer.from(JSON.stringify(greeting)));
}
即使抛出错误,运行它也会成功写入账本。之后我能够查询分类帐并看到正确的值“{ text: 'Instantiate was called!' }" 被返回。
这是我为instantiate 运行单元测试时的错误跟踪。希望对您有所帮助:
Error: No successful events received
at AllForTxStrategy.checkCompletion (node_modules/fabric-network/lib/impl/event/allfortxstrategy.js:34:12)
at AllForTxStrategy.errorReceived (node_modules/fabric-network/lib/impl/event/abstracteventstrategy.js:67:8)
at TransactionEventHandler._onError (node_modules/fabric-network/lib/impl/event/transactioneventhandler.js:126:17)
at EventRegistration.eventHub.registerTxEvent [as _onErrorFn] (node_modules/fabric-network/lib/impl/event/transactioneventhandler.js:90:20)
at EventRegistration.onError (node_modules/fabric-network/node_modules/fabric-client/lib/ChannelEventHub.js:1709:9)
at ChannelEventHub._closeAllCallbacks (node_modules/fabric-network/node_modules/fabric-client/lib/ChannelEventHub.js:867:15)
at ChannelEventHub._disconnect (node_modules/fabric-network/node_modules/fabric-client/lib/ChannelEventHub.js:625:8)
at ClientDuplexStream._stream.on (node_modules/fabric-network/node_modules/fabric-client/lib/ChannelEventHub.js:539:11)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at ClientDuplexStream.Readable.push (_stream_readable.js:219:10)
at Object.onReceiveMessage (node_modules/fabric-network/node_modules/grpc/src/client_interceptors.js:1292:19)
at InterceptingListener.recvMessageWithContext (node_modules/fabric-network/node_modules/grpc/src/client_interceptors.js:607:19)
at /Users/chana/projects/ibm-bp/node_modules/fabric-network/node_modules/grpc/src/client_interceptors.js:706:14
【问题讨论】:
-
所以看起来链码已实例化并运行了实例化事务。如果您尝试使用 VSCode 调用其他事务,您会遇到同样的问题吗? (您甚至可以再次调用实例化事务。它只是一个可以反复运行的普通事务,并且不仅在您实例化合约时可以调用)
-
是的。当我为实例化函数重新尝试提交事务时,也会出现同样的问题。其他非常基本的功能也存在同样的问题。为
instantiate选择“评估交易”不会引发错误。虽然这意味着它不会写入分类帐。
标签: hyperledger-fabric ibm-blockchain ibp-vscode-extension