1

我正在关注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
4

1 回答 1

3

local fabric提交交易后,我注意到 VS Code 中的输出存在差异:

[4/13/2019 9:41:22 PM] [INFO] fabricvscodelocalfabric_peer0.org1.example.com|2019-04-12 12:17:55.210 UTC [common.deliver] DeliverBlocks -> WARN 05a 拒绝交付 172.19。 0.1:34608 由于信封验证错误:信封时间戳 2019-04-13 11:41:22.439 +0000 UTC 与当前服务器时间 2019-04-12 12:17:55.210409997 +0000 UTC m=+169.648611001 相差超过 15m0s

这看起来像是某种时间差异,peer0所以我进入它的 bash 并跑去date查看不正确的服务器时间(2019-04-12 12:17:55),然后我开始尝试更正服务器时间。

在此之后,我重新尝试Submit Transaction并且它没有抛出错误!

我试图通过拆除结构然后重新启动来再次复制原始问题,但提交事务现在似乎按预期工作。

于 2019-04-13T12:54:53.243 回答