Даже я изначально был озадачен этим, и для лучшего понимания пришлось перечитать документацию.
Как мы знаем, регистр Hyperledger Fabric состоит из двух частей: 1. Состояние мира и 2. Журнал транзакций. Таким образом, происходит следующее: после того, как заказчик отправляет блок, содержащий заказанные транзакции, с политиками и верификациями транзакций, он принимается одноранговым узлом, который, в свою очередь, передает этот блок всем другим узлам в канале.
Как только одноранговый узел получает блок, он проходит через все транзакции в блоке и проверяет транзакцию, т. Е. Проверку политик и проверку работоспособности данных транзакции по данным о состоянии мира. Если в какой-либо учетной записи обнаружена дефектная транзакция (проверка политик / данных), одноранговый узел помечает транзакцию как недействительную и не фиксирует транзакцию в состоянии мира. Напротив, если транзакция действительна, одноранговый узел будет выполнять действия (Добавить / Обновить / Удалить) для состояния мира на основе набора транзакций для чтения / записи.
Как только все транзакции будут обработаны, блок будет добавлен в журнал транзакций (он же Block Chain). Это означает, что блок в цепочке блоков будет содержать как действительные, так и недействительные транзакции, а транзакции будут иметь маркировку, указывающую, является ли она действительной или недействительной. Одноранговый узел может перестроить мировое состояние, просмотрев журнал транзакций - в этом сценарии будут рассматриваться только допустимые транзакции для перестройки мирового состояния.
Есть также другой ответ на аналогичную строку - https://stackoverflow.com/a/50622463/2040522