Сначала отделите включённую группу от отклонённой

Статусы `Backtracked`, `Failed` и `Skipped` находятся в метаданных уже включённой операции. Ошибка при формировании, подписи, отправке или проверке пула может оставить группу вне блока. Тогда из неё нельзя выводить снятие комиссии или расход счётчика: сначала найдите хеш в подтверждённом блоке.

Сохраните хеш группы, блок, `branch`, единственный `source`, подпись и массив `contents` в исходном порядке. Счётчики элементов должны идти без разрывов. Операция `Reveal`, то есть раскрытие публичного ключа, встречается не больше одного раза и стоит первой. Общая проверка транзакции поможет собрать доказательства включения.

Первый элемент со статусом `Failed` меняет результат группы

Как читать статусы элементов включённого пакета
СтатусЧто произошлоЧто осталось в состоянии
`Applied`Элемент исполнился, а весь пакет завершился без последующего сбояЕго прикладной эффект, комиссия и счётчик
`Backtracked`Элемент успел исполниться, но поздний `Failed` отменил его эффектКомиссия и счётчик; прикладное изменение откатилось
`Failed`На этом элементе возникла ошибка примененияОшибка, комиссия и счётчик; прикладного эффекта нет
`Skipped`После `Failed` элемент уже не исполнялсяКомиссия и счётчик обработаны заранее; прикладного эффекта нет
Как читать статусы элементов включённого пакета
Статус
`Applied`
Что произошло
Элемент исполнился, а весь пакет завершился без последующего сбоя
Что осталось в состоянии
Его прикладной эффект, комиссия и счётчик
Статус
`Backtracked`
Что произошло
Элемент успел исполниться, но поздний `Failed` отменил его эффект
Что осталось в состоянии
Комиссия и счётчик; прикладное изменение откатилось
Статус
`Failed`
Что произошло
На этом элементе возникла ошибка применения
Что осталось в состоянии
Ошибка, комиссия и счётчик; прикладного эффекта нет
Статус
`Skipped`
Что произошло
После `Failed` элемент уже не исполнялся
Что осталось в состоянии
Комиссия и счётчик обработаны заранее; прикладного эффекта нет

Представьте три элемента. Первый перевод выполнился, второй контрактный вызов упал, третий не запускался. Метаданные покажут `Backtracked`, `Failed`, `Skipped`. Баланс первого получателя не должен измениться, а третий вызов не оставит событий. Это и есть атомарность прикладной части.

Сначала протокол обрабатывает комиссии и защиту от повтора. В Ushuaia функция `take_fees` проходит весь список, снимает комиссию и увеличивает счётчик каждого элемента. Затем начинается исполнение прикладных действий. Поэтому поздний `Skipped` не означает бесплатный элемент или неиспользованный счётчик.

Сверьте каждый элемент по метаданным

Рабочая сверка перед пересборкой
ПозицияСохранитьКонтрольный вопрос
каждый элемент`kind`, `source`, `fee`, `counter`, `gas_limit`, `storage_limit`Порядок и счётчики идут без разрыва?
метаданные`status`, `errors`, `balance_updates`Где первый `Failed` и какие комиссии списаны?
`Backtracked` до сбояуспешный результат до откатаОжидаемое состояние действительно вернулось?
`Skipped` после сбояисходные параметры и списание комиссииЭлемент точно не исполнялся, но счётчик уже учтён?
аккаунт после блокасвежий сетевой счётчик и балансС какого значения строить новую группу?
Рабочая сверка перед пересборкой
Позиция
каждый элемент
Сохранить
`kind`, `source`, `fee`, `counter`, `gas_limit`, `storage_limit`
Контрольный вопрос
Порядок и счётчики идут без разрыва?
Позиция
метаданные
Сохранить
`status`, `errors`, `balance_updates`
Контрольный вопрос
Где первый `Failed` и какие комиссии списаны?
Позиция
`Backtracked` до сбоя
Сохранить
успешный результат до отката
Контрольный вопрос
Ожидаемое состояние действительно вернулось?
Позиция
`Skipped` после сбоя
Сохранить
исходные параметры и списание комиссии
Контрольный вопрос
Элемент точно не исполнялся, но счётчик уже учтён?
Позиция
аккаунт после блока
Сохранить
свежий сетевой счётчик и баланс
Контрольный вопрос
С какого значения строить новую группу?

Ошибка первого элемента со статусом `Failed` вызвала прикладной откат. Проверьте её трассу, параметры контракта, газ и лимит хранения данных. У поздних `Skipped` нет собственной ошибки: они не запускались. Симуляция новой группы должна выполняться на свежем состоянии, а не на снимке до неудачного блока.

Повторяют действие, но не старый счётчик

Запросите счётчик аккаунта из поля `source` после блока с неудачной группой. Следующая управляющая операция использует значение на единицу больше. Для включённого пакета со счётчиками от `n` до `n+k−1` это обычно `n+k`. Не вычисляйте его по позиции `Failed`: поздние элементы `Skipped` уже прошли этап счётчика.

Пересборка без слепого повтора

  1. 1
    Исправьте первый элемент со статусом `Failed`

    Измените только причину ошибки и пересмотрите зависимые поздние действия. Эффекты элементов со статусом `Backtracked` нужно включить снова, если они всё ещё нужны.

  2. 2
    Возьмите свежие `branch` и счётчик

    Получите голову сети, текущий счётчик и баланс источника. Не копируйте подписанные байты старой группы.

  3. 3
    Симулируйте весь пакет

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

  4. 4
    Подпишите и проверьте результат

    После включения убедитесь, что все элементы получили `Applied`, а ожидаемое состояние и новый счётчик совпали.

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

Успех подтверждают `Applied` у каждого элемента и новое состояние

Хеш группы и включение в блок показывают доставку, а не успех каждого элемента. Проверка завершена, когда все элементы имеют `Applied`, а балансы, события контрактов и новый счётчик совпадают с ожиданиями. Учитывайте результат только после проверки финальности по правилам сети.

Перед новой подписью подтвердите включение старой группы, прочитайте `metadata.operation_result` каждого элемента и запросите свежие `branch`, баланс и счётчик. Симуляция должна использовать текущее состояние контракта, а не снимок до сбоя.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Octez active protocol — Validation and Application Tezos · Проверено 25 августа 2026 г. в 09:22 GMT+5
  2. Octez active protocol RPC schema Tezos · Проверено 25 августа 2026 г. в 09:22 GMT+5
  3. Octez v25.1 Ushuaia apply.ml at commit 04d849eb8c8d Tezos · Проверено 25 августа 2026 г. в 09:22 GMT+5
  4. Octez — Protocol and client versions Tezos · Проверено 25 августа 2026 г. в 09:22 GMT+5
  5. Tezos mainnet head protocol Tezos Foundation · Проверено 25 августа 2026 г. в 09:22 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.