Hyperledger Fabric - Отправка уведомлений из цепочки кодов - PullRequest
0 голосов
/ 04 октября 2018

Мне интересно, как можно отправлять уведомления из цепного кода фабричной сети.

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

Чтобы достичь этого, я подумал о двух разных способах:

  1. HTTP-запрос - Можно ли выполнить http-запрос непосредственно из цепного кода?Если да, возможно ли отправить запрос http в конечную точку устаревшей системы для уведомления о транзакции?
  2. Событие - Я понял, что существует возможность создавать события в коде цепи,Можно ли прослушивать эти события без использования Fabric SDK (я не могу интегрировать SDK в устаревшую систему)?

Что вы думаете об этих двух подходах?У вас есть предложения?

1 Ответ

0 голосов
/ 06 октября 2018

HTTP-запрос

Да, это возможно, но определенно не рекомендуется.Цепной код используется для одобрения предложений по транзакции, но одобрение одним партнером предложения по транзакции не обязательно означает, что сама транзакция будет зафиксирована.Отправка запроса от выполнения цепного кода была бы преждевременной.Вы можете узнать больше о потоке транзакций здесь и здесь

Кроме того, цепной код не обязательно (и не должен) выполняться только на одном узле.Если у вас есть запрос, отправляемый из цепного кода, и у вас есть 10 пиров, выполняющих цепной код, у вас будет 10 запросов в вашу унаследованную систему.

Событие

Вы можете установить пользовательские события в коде цепочки, но они вам не понадобятся, так как каждый SDK поддерживает уведомление о совершении транзакции.Хотя я понимаю, что нецелесообразно встраивать sdk в устаревшую службу, sdk, скорее всего, является лучшим местом для прослушивания событий.

Служба событий равноправного канала

Начиная с версии 1.3, равноправный узел будет иметь определенную службу событий канала .Я не буду вдаваться в подробности, поскольку я еще не использовал его, и я предполагаю, что если ваша унаследованная система не может интегрировать SDK, она, скорее всего, не будет поддерживать вызовы grpc для однорангового сервиса.

Решение

Вероятно, вам понадобится объединить решения HTTP Request и Event.У отдельной службы используйте sdk для отправки предложений по транзакциям и прослушивания уведомлений о подтверждении транзакций.После совершения транзакции используйте эту службу, чтобы отправить запрос на конечную точку вашей прежней системы.

...