Как исправить ошибку "Ошибка: успешных событий не получено" при отправке транзакции на фабрике 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
и это работало, не бросая ошибку!
Я попытался повторить исходную проблему снова, разорвав ткань и перезапустив ее, но транзакция отправки, похоже, теперь работает, как и ожидалось.