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

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

Как это будет работать на фабрике / композиторе блокчейн-гиперлейсов с консенсусом?

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

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


person Olga777    schedule 10.04.2018    source источник


Ответы (2)


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

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

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

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

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

person ChrisMcQueen    schedule 11.04.2018
comment
Спасибо! И черновик статьи был бы отличным! Мы проверили ссылку, но это все еще немного запутывает. - person Olga777; 11.04.2018
comment
[email protected] - напишите мне письмо, и я пришлю вам текущую версию По существу; то, что вы предлагаете, возможно и хорошо согласуется с политикой поддержки. Огромное предостережение заключается в том, что я обнаружил, что при развертывании сети необходимо указать сторонников типа транзакции. Они не могут быть динамическими (например, если Анна продаст свои акции Ольге, Петр будет индоссантом) - person ChrisMcQueen; 11.04.2018

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

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

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

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

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

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

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

Утверждение

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

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

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

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

person KKK    schedule 18.04.2018