Зависшая транзакция ускоряется отправкой новой с тем же номером и повышенной комиссией — сеть примет ту, что предлагает больше, а прежняя исчезнет из очереди, и работает это только до попадания в блок. Важное ограничение протокола: повышение должно составлять не менее десяти процентов от исходной ставки, иначе узлы отклонят замену как недостаточную.

Замена транзакции — отправка новой операции с тем же порядковым номером отправителя и более высокой комиссией; сеть исполняет только одну из них, а вторая отбрасывается как устаревшая.

Почему транзакция зависает

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

Вторая причина встречается реже. Операция с меньшим номером застряла, и все последующие ждут её, даже если у них комиссия высокая.

Схема из четырёх шагов: от поиска номера операции до замены транзакции
Схема из четырёх шагов: от поиска номера операции до замены транзакции

Два способа решения

Способ Когда применять
Ускорение Операция нужна: та же транзакция с большей комиссией
Отмена Операция не нужна: пустой перевод самому себе с тем же номером
Ожидание Срочности нет: при спаде нагрузки транзакция пройдёт сама
Сброс очереди Застряла ранняя операция: ускорять нужно именно её

Порядок ускорения

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

Подтвердите отправку. В течение минуты статус прежней операции сменится на замещённый.

Если кнопки ускорения нет

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

Где чаще всего ошибаются

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

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

Отмена вместо ускорения

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

Сколько добавлять к комиссии

Минимум в десять процентов — требование протокола, а не рекомендация по скорости, и если нагрузка выросла вдвое с момента отправки, такое повышение ничего не изменит и операция продолжит ждать.

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

Очередь по номерам

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

Ускорение взаимодействия с контрактом

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

Комиссия при этом всё равно списывается. Для операций с протоколами чаще разумнее отменить зависшую транзакцию и сформировать новую через интерфейс с актуальными параметрами.

Как не попадать в эту ситуацию

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

Смежные темы разобраны у нас. Вот основные. Общий раздел — транзакции и сети. Шире — статьи про криптокошельки. Ошибку счётчика разбирает материал как исправить ошибку счётчика транзакций, а оценку нагрузки — статья как оценить нагрузку сети по историческим данным.

Вопросы и ответы

Можно ли ускорить транзакцию бесплатно?

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

Что будет, если ускорить дважды?

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

Пропадёт ли транзакция, если её не ускорять?

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

Вердикт

Ускорение — это замена операции с тем же номером, а не новая отправка: перепутав их, вы заплатите дважды, а повышайте комиссию минимум на десять процентов, иначе сеть отклонит замену. Если застряла ранняя транзакция, разбирайтесь с ней, а не с последней. И помните, что бесплатной отмены не существует — замещающая операция стоит полной комиссии.

Комиссии проверяйте напрямую. Монитор комиссий Ethereum на Etherscan и блокчейн-обозреватель для проверки статуса операции показывают актуальные ставки и состояние вашей транзакции.

Екатерина Лебедева, автор Cryptium. Разбор транзакций, сетей и комиссий. Больше материалов — в Telegram-канале t.me/cryptiumru.