Консенсус Hyperledger - как это работает?

Вот наш пример использования: Анна хотела бы продать свои акции Питеру, и Ольга должна одобрить это (как владелец компании).

Как бы это работало на блокчейне / композиторе hyperledger с консенсусом?

В частности, что является частью транзакции, что такое предложение (требуется ли физическое одобрение транзакции живым человеком?) И как оно обрабатывается в блокчейне, что происходит в приложении и вне приложения,

Пожалуйста, будьте как можно точнее. Спасибо!

2 ответа

Сначала несколько вещей: Composer использует любой согласованный алгоритм, который должен использовать базовый блокчейн. Так; Hyperledger Fabric на данный момент предлагает SOLO или KAFKA. KAFKA предлагает только отказоустойчивость, а не византийскую отказоустойчивость.

Итак: Политика одобрения существует, и это то, что вы описываете. Это не требует одобрения живого человека, вы можете сделать все программно, это может быть даже устройство IoT. Утверждающий должен смоделировать транзакцию и проверить, согласны ли они с результатами. Ольга является утверждающим в вашем сценарии.

Важно сделать все цепные коды (транзакции в Composer) детерминированными, чтобы их можно было смоделировать таким образом.

Хорошее описание потока транзакций в документах Fabric: http://hyperledger-fabric.readthedocs.io/en/latest/txflow.html

Через месяц я выпускаю статью, в которой есть раздел о сравнительных сравнениях и, в частности, Composer/Fabric. Я могу выслать вам черновик, если вы заинтересованы в дальнейшем.

У вашего вопроса есть два аспекта: один - это аспект одобрения живого человека, а второй - целостность состояния бухгалтерской книги (консенсус).

Я объясню в обратном порядке.

Консенсусная часть

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

Эти транзакции являются не случайными транзакциями, а реализацией Smart Contract, называемой цепным кодом в терминологии Fabric. Всякий раз, когда цепной код развертывается на канале Fabric (частной подсети, связанной с его собственной бухгалтерской книгой), он инициализирует состояние мира, то есть активы по умолчанию и их значения.

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

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

Утверждение часть

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

Из примеров Composer посмотрите на пример CarAuction, и вы поймете, что для каждого перехода состояния вы должны будете регистрироваться, например, участник продавца владеет автомобилем актива, но когда автомобиль продается с аукциона для продажи, он должен быть добавлен в реестр листинга с помощью транзакции. там, где это будет видно всем участникам торгов, это движение состояния автомобильного актива достигается транзакцией AuctionMyCardOrSomething вызывается уполномоченным лицом здесь продавца. Затем, когда Аукционист (другой участник с другой ролью) выполняет другую транзакцию, называемую закрытыми торгами, право собственности на Автомобиль может быть передано участнику, предложившему самую высокую цену, если все условия будут выполнены. Узел, что размещение ставки также является транзакцией.

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

Надеюсь это поможет.

Другие вопросы по тегам