Как исправить ошибку «Ошибка: успешных событий не получено» при отправке транзакции на фабрике Hyperledger? - PullRequest
0 голосов
/ 12 апреля 2019

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

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

Вызванная функция была '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 Ответ

1 голос
/ 13 апреля 2019

Я заметил несоответствие в выводе 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 -> WARN 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, поэтому я зашел в его bash и запустил date, чтобы увидеть неправильное время сервера (2019-04-12 12:17:55), затем я попытался исправьте время сервера.

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

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

...