Как исправить ошибку "Ошибка: успешных событий не получено" при отправке транзакции на фабрике Hyperledger?

Я следовал руководству по адресу https://developer.ibm.com/tutorials/ibm-blockchain-platform-vscode-smart-contract/ и когда я отправляю транзакцию через расширение кода VS на платформе блокчейна IBM, я получаю сообщение об ошибке:

Msgstr "Ошибка отправки транзакции: успешные события не получены".

Вызванная функция была 'instantiate', как показано ниже:

    public async instantiate(ctx: Context): Promise<any> {
        const greeting = { text: 'Instantiate was called!' };
        await ctx.stub.putState('GREETING', Buffer.from(JSON.stringify(greeting)));
    }

Выполнение этого приведет к успешной записи в книгу, даже если была выдана ошибка. После этого я смог запросить книгу и увидел правильное значение "{текст:" Был вызван экземпляр! " }"был возвращен.

Вот трассировка ошибок при запуске модульного теста для 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

1 ответ

Я заметил несоответствие в local fabric Вывод в VS Code после того, как я представил транзакцию:

[13.04.2009 21:41:22] [INFO] fabricvscodelocalfabric_peer0.org1.example.com|2019-04-12 12:17:55.210 UTC [common.deliver] deliveryBlocks -> ПРЕДУПРЕЖДЕНИЕ 05a Отклонение доставки для 172.19.0,1:34608 из-за ошибки проверки конверта: метка времени конверта 2019-04-13 11:41:22,439 +0000 UTC более 15 мсек от текущего времени сервера 2019-04-12 12:17:55.210409997 +0000 UTC м =+169,648611001

Это выглядело как какое-то расхождение во времени на peer0 поэтому я вошел в его баш и побежал date чтобы увидеть неправильное время сервера (2019-04-12 12:17:55), то я попытался исправить время сервера.

После этого я перепробовал Submit Transaction и это работало, не бросая ошибку!

Я попытался повторить исходную проблему снова, разорвав ткань и перезапустив ее, но транзакция отправки, похоже, теперь работает, как и ожидалось.

Другие вопросы по тегам