Консенсус в Fabric включает в себя несколько частей:
- Вызов функций кода цепи и получение достаточного количества подтверждений (обычно подписей) для соответствия политике подтверждения путем вызова кода цепи и получения ответов от правильного числа участников
- Отправка транзакций в узлы (ы) службы заказа, которые достигают консенсуса по порядку транзакций, а затем упаковывает их в блоки
- Узлы (ы) заказа отправляют транзакции равноправным узлам, которые затем проверяют правильностьтранзакции и изменения состояния фиксации для действительных транзакций
Пиры проверяют транзакции, проверяя, чтобы каждая транзакция соответствовала политике одобрения для вызванного цепного кода, а затем проверяют набор чтения каждоготранзакция, чтобы убедиться, что версия каждого ключа, который был прочитан в коде цепи, не изменилась.Если оно изменилось, транзакция помечается как недействительная, и ее набор для записи (изменения состояния) не обрабатывается.Транзакция все еще остается в блоке, но блок аннотируется метаданными, указывающими статус каждой транзакции в блоке.Логика проверки и принятия является детерминированной.
Вы должны прочитать Поток транзакций и Семантика набора операций чтения-записи в документации для подробностей нижнего уровня.