Одобрение Hyperledger Fabri c в смарт-контрактах - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время я работаю над проектами, использующими Fabri c 1.4. Мне удалось получить приличное представление о том, как все работает, но я совершенно не понимаю, как работают умные контракты и политики одобрения вместе.

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

Как, скажем, у меня есть такой сценарий: у меня есть три организации (Org1, Org2, Org3), каждая из которых имеет одноранговый узел. Теперь через клиентское веб-приложение каждый узел помещает данные в блокчейн. Теперь, как мне проверить, правильно ли данные (информация, которую я отправляю в блокчейне), например, имя и идентификатор, проверены другим узлом и только затем добавлены в состояние мира.

Пример : Если peer0 в org1 добавляет данные, имя и идентификатор и идентификатор неверен. Org2 имеет список идентификаторов, и он должен проверить, совпадает ли идентификатор, добавленный org1, и проверить его. Если он проверяется, то все в порядке, и данные могут быть помещены в мировое состояние

Как определить этот тип проверки на уровне состояния транзакции проверки (скорее проверки уровня данных, чем просто проверка подписи)? Это можно сделать в умном контракте Go.

Любая помощь и предложения помогут.

Спасибо

1 Ответ

1 голос
/ 07 апреля 2020

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

Здесь прекрасно объясняется: https://hyperledger-fabric.readthedocs.io/en/release-1.4/txflow.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...