Что произойдет с блокировкой, если несколько транзакций изменяют один и тот же актив в одном и том же блоке в Hyperledger Fabric? - PullRequest
0 голосов
/ 02 декабря 2018

Я немного сбит с толку, чтобы понять следующий вариант использования:

Предположим, у нас есть более одной транзакции в одном блоке, которые меняют состояние одного и того же актива, тогда что произойдет в согласованном цикле Hyperledger Fabric?

  • Блок будет отклонен
  • Первая транзакция в блоке будет успешной, но остальные не удастся

Пожалуйста, помогите мне понять этот уголслучай.

1 Ответ

0 голосов
/ 02 декабря 2018

Консенсус в Fabric включает в себя несколько частей:

  1. Вызов функций кода цепи и получение достаточного количества подтверждений (обычно подписей) для соответствия политике подтверждения путем вызова кода цепи и получения ответов от правильного числа участников
  2. Отправка транзакций в узлы (ы) службы заказа, которые достигают консенсуса по порядку транзакций, а затем упаковывает их в блоки
  3. Узлы (ы) заказа отправляют транзакции равноправным узлам, которые затем проверяют правильностьтранзакции и изменения состояния фиксации для действительных транзакций

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

Вы должны прочитать Поток транзакций и Семантика набора операций чтения-записи в документации для подробностей нижнего уровня.

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