2016-11-23 2 views

ответ

1

Это лучше использовать событие https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#35-events

Validating пэр и chaincodes может испускать события в сети, которые приложения могут прослушивающие и принять меры по. Существует набор предопределенных событий, а цепочки могут создавать пользовательские события. События потребляются 1 или более адаптерами событий. Адаптеры могут дополнительно передавать события , используя другие транспортные средства, такие как веб-крючки или Kafka.

Приложение может подписаться на поток событий из Fabric и прослушивать сообщения, генерируемые цепочкой.

Пример того, как работать с событиями можно найти здесь: https://github.com/hyperledger/fabric/tree/master/examples/events/block-listener

+1

При вызове прослушивателя блоков, я получаю передать идентификатор chaincode. Что это такое? Имя сетевого кода, используемого при развертывании? Или что-то другое? Можете ли вы привести пример? –

+1

Какую информацию я могу получить от события chaincode? Я новичок в гипергедере и голанге. –

+0

Link @ Start: - https://github.com/hyperledger/fabric/blob/c0ce696/docs/protocol-spec.md#35-events – Abhi

1

Чтобы добавить ответ Сергея, есть 3 типа событий.

  1. BLOCK EVENTs, которые создаются при изменении регистра.
  2. СОБЫТИЯ ИЗМЕНЕНИЙ, которые создаются при возникновении какой-либо ошибки (либо в коде цепи пользователя, либо в системном коде цепи)
  3. CHAINCODE EVENTs, которые являются пользовательскими дескрипторами, которые позволяют коду пользователя создавать события. [Weird вещь, я заметил это, только один CHAINCODE EVENT за Invoke допускается в соответствии с текущим дизайном]

Вы можете иметь прослушиватель события/клиент работает на вашем конце, прослушивает порт КПГР, (вы можете получить порт из файла core.yaml) Или вы можете даже обратиться к примеру, о котором упомянул Сергей.

В вашем случае, я предполагаю, что вы ищете успешную транзакцию. В этом случае вы должны прослушивать события BLOCK и события REJECTION. UUID транзакции, который вы получили при запуске вашего вызова, может использоваться для сканирования событий и запуска действия при его совпадении. Также обратите внимание, что если транзакция приводит к СОБЫТИЮ ИЗМЕНЕНИЯ, тогда у нее не было бы БЛОКОВОГО СОБЫТИЯ. Надеюсь, это поможет.

Смежные вопросы