Материал проверен 7 ноября 2026?
БК

ГЛАВНАЯ / ИНСТРУКЦИИ / PROCESSED, CONFIRMED И FINALIZED В SOLANA: КАК ЧИТАТЬ СТАТУС ТРАНЗАКЦИИ

Processed, confirmed и finalized в Solana: как читать статус транзакции

Processed, confirmed и finalized описывают уровень принятия блока кластером, а не три разных ответа на вопрос об успешности инструкции. Ответ getSignatureStatuses нужно читать как минимум по confirmationStatus и err: обработанная транзакция может завершиться ошибкой, а ранний processed-статус ещё может исчезнуть при откате ветки.

Три уровня

Commitment показывает зрелость блокового состояния

Processed – узел уже обработал блок, это наиболее свежий взгляд на сеть, но такой блок может быть откатан. Confirmed означает, что блок получил голоса более двух третей активного стейка. Finalized – наиболее сильный уровень финальности, признаваемый кластером. Это последовательные уровни, а не оценка качества RPC-ответа.

Нужная граница зависит от действия приложения. Для обновления интерфейса может хватить свежего processed-статуса; необратимая выдача товара или расчёт может требовать более сильного подтверждения. Не подменяйте политику приложения произвольным количеством секунд: ориентируйтесь на фактически возвращённый уровень и требования процесса.

  • требуемая гарантия определена до запроса
  • processed не принят за финальность
  • confirmed и finalized различены
Статус и результат

Commitment не заменяет проверку поля err

getSignatureStatuses возвращает slot, confirmationStatus и err для найденной подписи. Уровень confirmationStatus отвечает, насколько продвинулось подтверждение блока; err показывает, завершилась ли сама транзакция ошибкой. Для бизнес-логики требуйте одновременно достаточный уровень commitment и err равный null.

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

  • confirmationStatus прочитан
  • err проверен отдельно
  • успешный ответ отправки не принят за обработку
Пустой результат

Null означает отсутствие записи в зоне поиска конкретного RPC

Метод getSignatureStatuses без searchTransactionHistory использует недавний status cache. Подпись, которая вышла за его границы, может вернуть null, даже если транзакция когда-то обрабатывалась. Попросите endpoint искать историю, если такая опция доступна, и при необходимости сравните результат с другим архивным источником и ожидаемым состоянием аккаунтов.

Разные узлы могут иметь разные возможности хранения и разную свежесть. Поэтому фиксируйте endpoint, параметры commitment, searchTransactionHistory и время запроса. Не переводите null автоматически в «не исполнено» и не создавайте повторный платёж, пока не исключён исходный.

  • область недавнего status cache учтена
  • история включена при необходимости
  • null не трактуется как доказательство отсутствия
Политика приложения

Свяжите уровень подтверждения с последствиями действия

Определите, что именно вы считаете завершением: показ операции в интерфейсе, учёт депозита, отпуск заказа или окончательное отражение в отчётности. Назначьте требуемый commitment, проверку err и источник данных. Для событийных подписок после разрыва соединения сверяйте историю через HTTP RPC: уведомление не является долговременным журналом.

Если состояние аккаунта читается с другим commitment, оно может временно расходиться с уровнем статуса транзакции. Используйте согласованные параметры, сохраняйте signature и slot, а важное событие связывайте с фактическим изменением ожидаемого баланса или состояния программы.

FAQ

Частые вопросы

Processed означает, что платёж окончателен?

Нет. Processed может быть откатан при смене ветки.

Confirmed и finalized – одно и то же?

Нет. Confirmed получил голоса более двух третей активного стейка; finalized – сильнейший уровень commitment.

Статус confirmed гарантирует успешную инструкцию?

Нет. Отдельно проверьте err.

Что значит null в getSignatureStatuses?

Подпись не найдена в области поиска; без searchTransactionHistory обычно проверяется недавний кэш.

Когда можно считать действие завершённым?

Когда выбранный приложением уровень commitment достигнут, err равен null и выполнены дополнительные проверки состояния.

Итоговая проверка

Чек-лист: processed, confirmed и finalized в solana: как читать статус транзакции

  • необходимый уровень commitment задан заранее;
  • confirmationStatus читается отдельно от текста интерфейса;
  • err проверен и равен null для успешного действия;
  • processed не принят за финальность;
  • при null учтены кэш, история и ограничения endpoint;
  • после разрыва подписки состояние сверено через HTTP;
  • уровень подтверждения соответствует последствиям операции.

Материал подготовлен редакцией сайта и проверен 7 ноября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.