- Как отменить незавершенную транзакцию Ethereum
- Что такое ожидающая транзакция?
- Что такое Nonce?
- Последовательность действий
- Добавить комментарий Отменить ответ
- Как отменить или заменить транзакцию, зависшую в сети Ethereum
- Что такое Nonce?
- Как отменить зависшую транзакцию в Ethereum
- Видео-версия
- Как отменить транзакцию в Ethereum
Как отменить незавершенную транзакцию Ethereum
В последние время многие пользователи сталкиваются с тем, что время проведения транзакции Ethereum уж слишком затянулось. Окей, мы готовы ждать 40 минут, или пару часов. Но иногда ожидание затягивается на дни. А в это время кошелек нельзя использовать для следующей отправки средств. Токены на него только зачисляются.
Что такое ожидающая транзакция?
Формулировка «транзакция ожидает завершения» означает, что она не была записана в блокчейн. Чтобы ваша транзакция была зарегистрирована, вы должны заплатить майнерам (компьютерам в сети, поддерживающим блокчейн) комиссию за обслуживание или транзакцию, называемую gas.
Но тут есть нюанс — майнеры работают ради прибыли; они добавят только те транзакции, которые сделают их богаче, а значит, транзакции с высокими затратами на gas.
Чтобы оперативно мониторить ваши транзакции, можно воспользоваться сервисом Etherscan. Это хорошая платформа для мониторинга транзакций по любому адресу. Она сообщает вам, была ли транзакция записана и когда она была записана или еще не завершена.
Тут нужно понимать, что первые две транзакции с отметкой pending — это те, которые ожидают обработки.
Что такое Nonce?
Это число используется только один раз. Чтобы предотвратить двойные траты — тратить одни и те же деньги дважды — адреса Ethereum используют одноразовый номер. Каждый адрес присваивает номер каждой своей транзакции. Это число начинается с нуля для первой транзакции по этому адресу и увеличивается на единицу с каждой последующей транзакцией. Это означает, что никакие две транзакции не могут иметь одинаковый одноразовый номер. Каждое число используется на этом адресе только один раз — nonce.
Предвижу резонный вопрос – причем тут ожидающая транзакция к одноразовому номеру?
Если вы не хотите отменять транзакцию, вы можете создать новую, которой присвоите тот же одноразовый номер, что и зависшей транзакции. Главная задача – установить соответствующую сумму вознаграждения в gas. Майнеры выберут для обработки платную транзакцию. Изменения запишутся в блокчейн, и бесплатная транзакция станет недействительной.
Платно, но быстро.
Если же вы не готовы переплачивать, то остается только отменить транзакцию.
Последовательность действий
Вам понадобится кошелек Ethereum с расширенными параметрами отправки. Coinomi и Trust Wallet на Android имеют эту функцию. Мы будем использовать Trust Wallet.
Зайдите на Etherscan и введите свой адрес в поле поиска. Вы увидите список всех ваших транзакций.
Выберите хэш последней успешной транзакции и запишите его одноразовый номер.
Вам нужно будет найти подходящий размер комиссии, однако, чаще всего ваш кошелек сделает это за вас. Ethgasstation также может предоставить вам подходящий размер комиссии. Ethgasstation показывает подходящую плату за газ в зависимости от скорости транзакции.
Откройте свой кошелек, выберите Ethereum и выберите отправить.
Если вы намереваетесь отменить транзакцию, введите свой адрес и введите ноль в качестве суммы отправки.
Но если вы намерены разрешить отложенную транзакцию, введите исходный адрес и сумму, отправленную в ожидающей транзакции.
Выберите «Дополнительно» и введите одноразовый номер последней подтвержденной транзакции, увеличенный на единицу, в поле одноразового номера.
Значок настроек, когда он выбран, позволяет перейти к расширенным параметрам транзакции в Trust Wallet. Добавьте единицу в одноразовый номер последней подтвержденной транзакции и введите его в поле одноразового номера.
Сохраните и отправьте транзакцию.
Ваша транзакция будет отображаться как подтвержденная в кратчайшие сроки, а ожидающая транзакция будет отклонена.
Чтобы этого больше никогда не повторилось, всегда выбирайте подходящую плату в gas для своих транзакций. Обычно ваш кошелек дает вам подходящий размер комиссии, но, если вы все еще Eth-gas-station придет вам на помощь. EtherScan также поможет вам отслеживать статус вашей транзакции.
Вы не поверите, но на момент написания этой статьи у меня в кошельке была незавершенная биткоин-транзакция, и, если я таким способом ускорю ее, я напишу об этом. Спасибо за чтение, аплодисменты приветствуются) Если остались вопросы или комментарии, пишите, будут рада помочь.
Добавить комментарий Отменить ответ
Атакован Ethereum Classic, опустошен кошелек Electrum и облагаемые налогом микрозадачи
Источник
Как отменить или заменить транзакцию, зависшую в сети Ethereum
Иногда, после отправки транзакции в сети Ethereum, значительно увеличивается ее загруженность (возрастает количество необработанных операций), что приводит к увеличению стоимости газа, необходимого для ее быстрого включения в блок. Неотправленные транзакции получают статус Pending и могут находится в этом состоянии очень долго, даже недели.
Если пользователь пытается сделать еще одну транзакцию с этого адреса, даже с большей комиссией, она все равно не отправляется, а просто становится в очередь за зависшей.
Безусловно, это вряд ли может удовлетворить, как говорит классик, «Не только лишь всех».
Чтобы выйти из этого положения, можно создать новую транзакцию с тем же nonce и отправить ее в сеть с приемлемой комиссией. Благодаря этому многократно увеличивается вероятность включения в блокчейн именно этой транзакции (с большим fee).
Что такое Nonce?
Nonce — это один из параметров транзакции, соответствующий их общему количеству для этого адреса Ethereum на момент отправки. Фактически это ее порядковый номер. Поэтому первой можно отменить транзакцию с наименьшим номером.
Когда транзакция с высокой комиссией будет обработана майнерами и включена в блокчейн, неудачная, зависшая транзакция с таким же nonce получит статус Dropped и не будет обрабатываться. Комиссия за ее отправку также не будет взиматься.
Рассмотрим подробнее, как происходит этот процесс на примере кошелька MEW.
Прежде всего, нужно зайти на обозреватель сети, например, etherscan, где нужно ввести в строку поиска адрес, с которого отправлялась транзакция.
Затем нужно перейти по ссылке хеша транзакции, которая зависла (находится в статусе Pending):
В открывшемся окне можно изучить детали неудачной транзакции, в том числе предположительное время, необходимое для ее обработки (оно не всегда соответствует действительности):
При нажатии на кнопку в виде часов можно изучить рекомендованную величину газа, которая гарантирует быструю обработку транзакции:
Для замены подвисшей транзакции нужно узнать значение ее nonce, которое можно увидеть, раскрыв окно дополнительной информации о транзакции путем нажатия на интерактивную надпись Click to see More:
В строке Nonce находится информация о значении nonce для текущей транзакции, его нужно запомнить (в данном случае это 71):
Теперь в кошельке Ethereum, например в MEW нужно создать транзакцию с таким же nonce. Для отмены создается транзакция с нулевым значением в строке Value. Для повторной отправки нужной суммы (замены зависшей транзакции) можно создать новую транзакцию с тем же Nonce, но большей комиссией. Нужно понимать, что до ее обработки существует вероятность включения в блокчейн майнерами исходной, зависшей транзакции.
После отправки в сеть транзакции с дублирующим значением Nonse, зависшая операция с таким же Нанс будет отменена.
Для работы с активами в сети Ethereum и дргуих блокчейнах с хешированием на Ethash удобно использовать кошелек MyEtherWallet. Максимальный уровень безопасности обеспечивается при использовании MEW в холодном режиме.
Далее приводятся пояснительные скриншоты по работе с MEW при замене зависшей транзакции.
Создание транзакции с одинаковым nonce на кошельке MEW, подключенном в сеть:
После этого производится перенос файла json на защищенный (оффлайн) компьютер, где указывается адрес получателя, сумма перевода, подписывается транзакция и сохраняется ее подписанный файл:
Затем в онлайн кошельке открывается подписанный файл signedTransactionObject*.json и транзакция отправляется в сеть:
При недостаточном объеме средств, оставшемся на балансе кошелька отправителя, транзакция создана не будет, появится сообщение об ошибке Error: Returned error: insufficient funds for gas * price + value:
При отправке правильно подписанной транзакции, а также наличии достаточных для оплаты комиссии сети средств, нужно дождаться включения майнерами информации о transaction в блок:
При достаточном газе транзакция попадает в статус выполненных за несколько десятков секунд
Зависшая в сети транзакция с тем же nonce получает статус отброшенной и замененной (Dropped & Replaced):
Впоследствии она даже не будет отображаться в обозревателе блоков.
Описанный алгоритм отмены/замены транзакций можно выполнять только для зависших операций. Если транзакция уже включена в блокчейн, то с ней ничего сделать невозможно.
Источник
Как отменить зависшую транзакцию в Ethereum
В этом материале мы приводим пошаговую инструкцию, как отменить зависшую транзакцию в Ethereum при помощи кошелька MyEtherWallet . Для проверки статуса транзакции мы используем блокчейн-эксплорер Etherscan.io .
Видео-версия
Мы подготовили видео-инструкцию для тех, кому удобнее смотреть.
Как отменить транзакцию в Ethereum
1. Проверяем транзакцию на сайте блокчейн-эксплорера. В графе «Status» написано «Pending». Это означает, что транзакция зависла. Для отмены транзакции нам понадобится число Nonce. Для того, чтобы его посмотреть, нажмите на «Click to see More» внизу окна.
2. В графе «Nonce» написано число 0. Запоминаем его, оно нам понадобится в дальнейшем.
3. Переходим в раздел с информацией о средней цене за газ на сайте блокчейн-эксплорера. Мы видим, что на момент написания материала минимальная комиссия за транзакцию составляет 42 Gwei. При такой комиссии транзакция займет около 16-ти минут.
4. Переходим в кошелек MEW. В разделе «Отправить» в левой части экрана нажимаем на «Отправить оффлайн». Это необходимо, потому что при оффлайн отправке мы можем вручную задать число Nonce.
5. В кошельке на странице «Отправить оффлайн» создаем новую транзакцию:
- В строке «Сумма» указываем 0.
- В строке «Получатель» указываем свойадрес кошелька.
- В строке «Nonce-число» указываем число Nonce с зависшей транзакции — в данном примере, 0.
- В строке «Цена газа» указываем число, равное или большее, чем минимальная комиссия на сайте блокчейн-эксплорера в данный момент времени. В этом примере указываем 42 Gwei.
6. После того, как мы заполнили все строки, нажимаем на кнопку «Сгенерировать транзакцию».
7. Кошелек сгенерирует код транзакции. Нажимаем на кнопку «Копировать и продолжить».
8. Листаем страницу кошелька MEW вниз. В столбце «Инструменты» нажимаем на «Помощник для оффлайн транзакций».
9. Нажимаем на строку «3. Подписанная транзакция».
10. Вставляем в строку «3. Подписанная транзакция» код нашей транзакции и нажимаем «Продолжить».
11. В строке «4. Детали Транзакции» нажимаем «Отправить».
12. В строке «5. Статус Транзакции» нажимаем на код под надписью «Хеш транзакции»
13. Вы автоматически попадете на страницу транзакции на сайте блокчейн-эксплорера. Когда транзакция пройдет, вы увидите в строке «Status» зеленую надпись «Success». Это означает, что ваша транзакция успешно прошла. Нажмите на «Click to see More», чтобы проверить число Nonce.
14. В строке «Nonce» должно быть такое же число, как и на зависшей транзакции. В данном примере это число — 0.
15. Переходим на вкладку с первой транзакцией и обновляем страницу. В строке «Status» теперь находится желтая надпись «Dropped & Replaced». Это означает, что вы успешно отменили старую зависшую транзакцию и заменили ее новой.
Источник