Как уведомить клиента о фиксации блока и / или статусе транзакции, используя события в HLF? - PullRequest
1 голос
/ 30 апреля 2020

Я работаю с клиентом, который должен получать уведомления о состоянии любой данной транзакции блокчейна. С этой целью я учусь использовать события для достижения этой цели. Я пытался ссылаться на официальную документацию о событиях в HLF 1.4 (найдено здесь ), но ссылка на документацию SDK устарела. Я также нашел этот вопрос , но все предоставленные ссылки также не работают.

Затем я наткнулся на реализацию Fabri c Gateway (упоминается здесь ), и Я обнаружил BlockListenerTest , который составляет основу для этого вопроса.


Мой текущий рабочий код выглядит следующим образом:

BlockEventSourceFactory factory = BlockEventSourceFactory.getInstance();
BlockEventSource blockEventSource = factory.newBlockEventSource(channel);
blockEventSource.addBlockListener(blockEvent -> {
    System.out.println("[zzzzz] Block number is " + blockEvent.getBlockNumber());
});
channel.sendTransaction(responses);
blockEventSource.close();

В моем Java коде цепи , Я вызываю stub.setEvent("myEventName", null) для установки событий.

Проблема в том, что я не вижу своих результатов отладки, и я не уверен, что делаю неправильно, поэтому я очень признателен, если кто-нибудь может направить меня к нужным ресурсам, чтобы я мог ссылаться на них, и / или помочь мне каким-то образом заставить вышеуказанный код работать.


(Если есть какая-либо другая информация, которую я должен предоставить, пожалуйста, дайте мне знать через комментарии и Я добавлю их сюда.)

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Я пытался ссылаться на официальную документацию о событиях в HLF 1.4 (найдена здесь), но ссылка на документацию SDK устарела. Я также нашел этот вопрос, но все предоставленные ссылки также не работают.

Я зарегистрировался в fabri c -sdk-node docs . Я обнаружил, что есть три урока о событиях, которые могут помочь вам решить вашу проблему. Это action-commit-events.md , eventcheckpointer.md и Listeningtoevents.md .

  1. Transaction-commit-events содержит специальный раздел с заголовком «Стратегии обработки событий».
  2. Eventcheckpointer.md дает подход к воспроизведению пропущенных событий, отправленных одноранговыми узлами, а также дает обзор пропущенных событий.
  3. Listeningtoevents.md также содержит раздел, в котором говорится о событиях. Он также дает объяснения о трех различных типах событий.

Я надеюсь, что эти три файла могут помочь вам решить вашу проблему и справиться с HLF.

Бонус: Fabri c сообщество удивительно. Обязательно присоединитесь к этому Fabri c -SDK каналу или проверьте другие fabri c каналы чата (см. Раздел чата).

1 голос
/ 04 мая 2020

Чтобы использовать высокоуровневый Gateway SDK, вам нужно начать с создания объекта Gateway, а затем получить сетевой объект от него (используйте в качестве начала пример кода здесь ). Из сетевого объекта вы можете вызывать addBlockListener () , передавая вашу функцию потребителя. Затем, когда вы вызываете submitTransaction для вашего объекта контракта, ваш слушатель должен быть вызван.

С точки зрения тестов, вам, вероятно, лучше посмотреть код сценария теста здесь , здесь и здесь для примеров использования.

...