Замена и отмена транзакции Ethereum
Возникает ситуация, когда требуется отменить или заменить транзакцию. Это может быть вызвано тем, что транзакции долгое время не попадают в блок. Все операции, которые после запуска не добавились в блок, считаются неподтверждёнными. Неподтвержденные транзакции чаще всего случаются именно из-за низких комиссий. У таких транзакций всё же есть возможность стать обработанными.
В блокчейнах Bitcoin, Ethereum и других существует механизм, который позволяет заменить еще неподтвержденную транзакцию другой транзакцией с большей комиссией (transaction fee). Этот механизм называется Replace by Fee.
Ускорение транзакции за счёт повышения комиссии
Отличие Ethereum от Bitcoin в том, что каждая транзакция имеет порядковый номер (nonce). Поэтому для того, чтобы использовать функцию Replace by fee, у заменяемой и заменяющей транзакции должен быть один номер.
Nonce указывает майнерам и нодам о порядке транзакций и, соответственно, о том, как изменять «состояние аккаунта». Первой примется та транзакция, у которой параметр nonce меньше. Если будет две транзакции с одинаковым nonce, то примется та, у которой комиссия выше.
- Откройте кошелек, который вы использовали для отправки исходной транзакции.
- Заполните поле «Получатель», указав адрес, на который вы хотите выполнить отправку.
- Измените значение поля «Сумма» с 0 на ту сумму ETH, которую вы хотите отправить.
- При отправке стандартной транзакции в ETH вы можете использовать лимит топлива 21000. Если вы отправляете токены, увеличьте лимит примерно до 100000. В противном случае просто оставьте значение по умолчанию.
- Увеличьте значение поля «Цена топлива» на 10 GWEI, по сравнению с вашей предыдущей транзакцией. Если это срочная транзакция, вы можете увеличить его больше. Имейте в виду, что чем выше цена газа, тем выше комиссия за транзакцию (лимит газа * цена газа).
- Убедитесь, что значение поля «Нонс» совпадает со значением в предыдущей транзакции. Если это так, то не меняйте значение в поле. Если вы измените его, то эта транзакция не заменит предыдущую.
- Нажмите кнопку «Отправить транзакцию».
- Появится хеш новой транзакции. Нажмите на ссылку, чтобы просмотреть ее и узнать, получилось ли у вас. Если она не появится сразу, попробуйте обновить страницу через несколько минут.
Отмена транзакции
Для того, чтобы предотвратить «прохождение» предыдущей транзакции, её добычу и включение в блокчейн, требуется создать транзакцию на сумму 0 ETH на ваш собственный адрес.
- Отправляйтесь на Etherscan.io или Ethplorer.io.
- Вставьте хеш вашей транзакции.
• Если статус транзакции — Pending (В ожидании), то вы можете попробовать ее отменить.
• Если транзакция не найдена, нажмите кнопку еще раз, подождав несколько минут между каждым нажатием. Если это не сработает, скорее всего, ваша транзакция не была отправлена.
• Если статус транзакции — Success (Успешно), то вы не сможете ее отменить. - Если отображается статус Pending (В ожидании), войдите в кошелек, который вы использовали для отправки исходной транзакции на MEW.
- Отправьте себе транзакцию с балансом 0 ETH.
- Нажмите кнопку «Отправить транзакцию».
- Появится диалоговое окно. Нажмите кнопку «Да, я уверен», чтобы отправить ее.
- Появится хеш новой транзакции. Нажмите на ссылку, чтобы просмотреть ее и узнать, получилось ли у вас. Если она не появится сразу, попробуйте обновить страницу через несколько минут.
Ускорение транзакции с помощью Child Pays for Parent
В ETH опция Child Pays for Parent невозможна. Желая ускорить транзакцию повышением комиссии, пользователь ETH может только отправить ту же транзакцию с тем же nonce с более высокой ценой за газ. Майнер добавляет в блок только одну транзакцию с лучшей комиссией. Две транзакции с одним и тем же nonce не могут быть добавлены в блок.
How to cancel an Ethereum transaction
![]()
Under most normal circumstances, you cannot cancel or replace a transaction once it’s sent to the blockchain, since the transaction spends probably a limited amount of time in the transaction pool waiting to be mined.
However, during times of high gas prices and high transaction volume on the blockchain, your transaction might be stuck in the queue, pending to be mined into a block — this could take several minutes to days, depending on how congested the blockchain is.
If you submit a transaction with a low gas price, it may be stuck in pending state in the transaction pool.
You can check whether your transaction is in pending state by going the block explorer, pasting the transaction hash in the search bar, and checking the status of it.
A transaction broadcasted onto the Ethereum network can have several statuses including
- Success — the transaction was successfully mined
- Failed — the transaction either reverted or failed as it ran out of gas
- Transaction Not Found — did not find the transaction on the blockchain
- Pending — the transaction is in the transaction pool waiting to be mined
You can try to cancel a stuck or pending Ethereum transaction if the transaction is currently in pending state.
Cancelling an Ethereum transaction with a custom nonce
A nonce is an abbreviation for number only used once, or when applied on the Ethereum blockchain, refers to the total count of confirmed transactions sent from an EOA (externally-owned account).
The nonce is an important piece of element when making transactions as it helps to maintain the sequence of transactions.
It also helps to keep every transaction data in the blockchain unique, since every data on the blockchain is public information, and a malicious actor can conduct a replay transaction with the same transaction data. By including the nonce in the transaction data, it makes the transaction unique, and…
Как отменить или заменить транзакцию, зависшую в сети 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):

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

Можно ли определить тип памяти видеокарты Nvidia в Linux?
13 августа, 2021 
Как немного увеличить производительность, отключив таймер HPET?
14 мая, 2022 
Как отменить или заменить отложенную транзакцию Ethereum

Дело в том, что майнеры в первую очередь обрабатывают платежи с высокой комиссией. Если ваша транзакция находится в ожидании из-за низкой комиссии, то вам нужно подождать, пока плата в сети снизится и майнеры обработают вашу транзакцию. Однако этот процесс можно ускорить, заменив транзакцию на другую, с более высокой комиссией. Давайте подробнее рассмотрим, как это делается.
Прежде всего, пользователям следует принять во внимание тот факт, что отменить или заменить совершенную транзакцию невозможно, пока она не находится на рассмотрении. Следует отметить, что подтверждение платежей может занять от нескольких часов до нескольких дней. В некоторых случаях блокировка может быть снята самостоятельно, например: failed of the pending transaction и reduction of gas fees.
Однако такое случается довольно редко. Несмотря на то, что отменить транзакцию Ethereum невозможно, все же существует несколько методов, которые помогают ускорить этот процесс. Все эти методы сводятся к замене одной транзакции на другую с более высокой комиссией. Давайте рассмотрим, как это сделать с помощью MetaMask и Trust Wallet. Ускорить транзакцию можно и с помощью других криптокошельков, но процесс замены транзакций может отличаться.
Как ускорить транзакцию с помощью MetaMask?
Вам необходимо перейти на кошелек MetaMask, с которого не был подтвержден ваш платеж. Если у вас внешний кошелек, то необходимо импортировать адрес, используя seed-фразу или приватный ключ.

Далее необходимо перейти на вкладку «Activity», найти отложенную транзакцию и нажать кнопку «Ускорить».


Если это не сработало, то необходимо перейти на вкладку Advanced, чтобы установить цену на газ вручную. Вы можете просмотреть текущие комиссии и среднее время подтверждения транзакций на Etherscan или EthGasStation.
Как заменить транзакцию с помощью MetaMask?
Перейдите в кошелек MetaMask, с которого была проведена отложенная транзакция. Опять же, если вы используете внешний кошелек, вам необходимо импортировать адрес, используя вашу оригинальную парольную фразу или приватный ключ.

Перейдите на вкладку «Деятельность» и найдите свою транзакцию в обработке. Нажмите на нее, чтобы проверить информацию и записать значение Nonce.Важно: если у вас несколько ожидающих обработки транзакций, вам нужно будет начать с предыдущей (то есть с транзакции с наименьшим значением Nonce).

Затем перейдите в раздел Настройки и нажмите «Дополнительно.»

В нижней части страницы необходимо включить функцию Customize transaction nonce.

Скопируйте адрес вашего криптокошелька

После этого необходимо отправить 0 ETH на свой криптокошелек, используя nonce отложенной транзакции Ethereum (упомянутой в шаге 2). Для этого необходимо нажать кнопку Подтвердить. Важно: Если цена на газ очень низкая, этот платеж также может быть отложен, поэтому убедитесь, что вы выбрали разумную цену.

Далее необходимо дождаться подтверждения новой транзакции и замены платежа.
Важно: Чтобы подстраховаться, необходимо снова отключить функцию Customize transaction Nonce.
Как отменить транзакцию Ethereum с помощью Trust Wallet?
Чтобы отменить операцию с помощью Trust Wallet, необходимо выполнить следующие шаги:
1. Нажмите на отложенную транзакцию в приложении Trust Wallet и найдите поле Nonce. Запишите число, которое указано в этом поле.

2. Создайте новую транзакцию и введите адрес вашего криптовалютного кошелька в поле «Адрес получателя». Убедитесь, что адрес совпадает с адресом отложенной транзакции. Введите сумму 0 в поле Amount ETH и нажмите кнопку Next.

3. Откройте настройки в правом верхнем углу.

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

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

Эфир уже POS. Текст необходимо модернизировать.
Какие майнеры на эфире?
Ты из тайги что-ли только что вышел.
Экскурс по работе биржи Binance
Всем привет! На меня подписалось пол сотни человек, проявив интерес к торговле криптовалютами, это здорово! Для вас пишу пост продолжение по работе биржи.
Сразу скажу, что я работаю в торговом терминале, (поэтому по работе сайта могу что-то упустить, если что поправьте). В терминале гораздо больше возможностей, более удобная и быстрая торговля, но в настройке он довольно сложен. Вряд ли по терминалу сделаю пост, уж слишком профильно, но где поискать могу сказать.
На бинанс нам предлагают два основных вида торговли это спотовая торговля и деривативы.
Спотовая торговля.
При спотовой торговле мы можем покупать любую валюту по интересующей нас цене и ждать её роста, что бы продать по более выгодной цене. Далее повторять эту процедуру на этой же или любой другой валюте. Т.е. продать то, чего у нас нет мы не можем, получается отсутствует шорт, (кроме маржинальной)
Спотовая торговля делится на
1. Конвертацию – просто перевод из одной валюты в другую по рыночному курсу на данный момент (так называемый маркет ордер), без графиков стаканов и лишних кнопок. Может подойти тем, кто просто хочет купить здесь и сейчас и держать в надежде на рост.
2. Классическая – как пишет бинанс – простой и удобный интерфейс для начинающих, принцип торговли не меняется. Меняется интерфейс, выставление ордеров (покупка и продажа) внизу, размер окон нельзя изменить, чуть меньше инструментов на экране.
3. Продвинутая – принцип торговли тот же, что и в классической, другой интерфейс. Между этими двумя видами выбирайте сами, кому что удобнее. Но если вы заинтересуетесь торговлей фьючерсами, там только «продвинутый» интерфейс, так что рекомендую изучать сразу его.
4. Маржинальная – отдельный подтип торговли с другим принципом. Здесь мы можем воспользоваться заёмными средствами с кредитным плечом х3 при кросс (при кросс марже мы рискуем всеми деньгами на балансе) и х10 при изолированной (при изо марже мы рискуем средствами которые участвуют в сделке). Так же при этом виде торговли можно шортить, (продавать то, чего у нас нет, за счёт заёмных средств)
5. P2P – рассказывал в прошлом посте, интересна нам только при выводе или вводе денег на биржу.
Что такое кредитное плечо, лонг и шорт.
Лонг – покупка в надежде на рост.
Шорт – продажа (того чего у нас нет) в надежде на падение и выкуп обратно по более низкой цене, что бы оставить разницу между продажей и последующей покупкой себе.
Плечо – представим, что у нас на балансе 1000 USDT (=1000$) при кросс марже мы можем взять заёмных средств еще 2000 USDT (1000 умножаем на 3), получается теперь мы торгуем на 3000. Если мы купили, и цена выросла на 10% то мы возвращаем заёмные средства, а разницу оставляем себе (вычитаем комиссию за сделку и процент по займу, но они не значительные) 10% от 3000 = 300 – мы, имея 1000 на балансе при ходе цены в 10% заработали 300, хотя без плеча могли только 100.
Обратный эффект мы получим если цена упадёт на 10%, мы потеряем 300, но нам надо вернуть 2000, получается у нас останется только 700. Если цена упадёт на 34% мы потеряем все наши деньги.
В связи с этим, торговля с плечом является очень опасной деятельностью, если мы возьмём кредитное плечо х100 (доступно на фьючерсах), то достаточно 1% роста что бы удвоить наши деньги при лонге или 1% падения, что бы потерять всё. Соответственно при шорте – 1% падения для удвоения, 1% роста для потери всего.
Деривативы так же делятся на несколько типов, но я пользуюсь только одним видом (про остальные не расскажу, что бы не дезинформировать, может в посте кто дополнит) и вам в остальные лезть тоже не советую, может, кроме Баттла, но там всё просто, сделай определённую ставку, угадай куда пойдёт цена биткоина и заработай – лудомания чистой воды, на любителя.
Фьючерсы – это не сами монеты btc, eth и т.д. это бессрочный (на бинанс) контракт с обещанием его выкупа, когда мы захотим, (если цена пойдёт в нашу сторону). Либо биржа принудительно заставит нас выкупить эти контракты, (чем больше плечо, тем быстрее это может произойти) если цена пойдёт не в нашу сторону, с ликвидацией всего фьючерсного счёта или позиции, (изо и кросс, смотрите выше). Соответственно при покупке контактов в лонг мы можем бесконечно их держать при росте цены. При продаже в шорт – бесконечно держать при падении цены.
Так же у фьючерсов и самой монеты может отличаться цена, но в 95% совсем не значительно. И у фьючерсов, как правило, гораздо больший объём торгов.
В остальном они торгуются абсолютно так же как и монеты на простом спотовом рынке, за исключением возможности выбора плеча от 1 до 125.
Для торговли фьючерсами надо включить эту возможность в аккаунте, там попросят ответить на несколько вопросов о том, что такое фьючи. Рекомендую действительно разобраться и попробовать самому на них ответить, но можете натыкать любые ответы, бинанс потом предложит правильные.
С типами торговли слегка разобрались, едем дальше.
Интерфейс я буду показывать на примере «продвинутой» торговли, она пригодится на фьючерсах.
Что бы не захламлять картинку отмечу на ней жёлтые цифры и ниже дам их описание. Важности в порядковом номере нет, ставил от балды.

1. Здесь переключаемся на фьючерсную торговлю, что бы вернуться назад на спот нажимаем на квадратик левее.
2. В этом поле отображается график курса валюты. В нём же применяются индикаторы, смотрится история торгов за прошлое время, можно использовать линейку, рисовать наклонные и т.д.
3. Выбор временного промежутка (таймфрейм), которому будут соответствовать столбики в торговом поле, можно выбрать от 1 минуты до 1 месяца.
4. Столбики – это бары, зелёный обозначает рост цены в определённый промежуток времени (таймфрейм), красный – падение. Есть тело бара (то что залито цветом) – обозначает по какой цене начался и закончился таймфрейм, хвосты снизу и сверху обозначают общий ход цены за тот же таймфрейм.
5. Здесь мы можем увидеть открытые ордера – наши заявки на покупку или продажу по определенной цене, которые ещё не сработали, историю срабатывания ордеров, историю проведённых сделок, открытые на данный момент маржинальные позиции.
6. Отображение цены на данный момент времени.
7. Биржевой стакан – отображает все открытые ордера на покупку и продажу по определённой цене. Красные – сколько суммарно и по какой цене другие игроки готовы продать. Зелёные, соответственно купить.
На нём остановимся поподробнее.
Стакан, на самом деле, один из самых полезных для новичка (и скальпера) индикаторов хода цены.

Принцип работы, как я объяснял супруге: представьте, что у нас есть 2 армии юнитов, наступающих друг на друга в бою, красные и зелёные.
Они идут рядами друг за другом (смотрим картинку выше, на ней я изменил масштаб цены для простоты).
Зелёные выставили 34 бойца по цене 46100, 30 бойцов по 46000 и т.д. Что бы красным опустить цену им надо убить (продать) 34 бойца по цене 46100, потом 30 по 46000 и т.д.
Что бы зелёным поднять цену им осталось убить (выкупить) 1.7 бойца по цене 46200, тогда зеленые займут эту линию и превратят в свою оборону (поддержку), выставив ещё бойцов.
В любой момент времени, игроки могут докинуть в любой ряд новых бойцов (добавить лимитные ордера).
Но у красных выше стоит более сильная армия на линии 46500 – 118 бойцов (выше ещё 174), и зелёным с одного захода вряд ли удастся их всех убить, значит цена дойдёт до туда, будет убита какая-то часть бойцов и цена откатится вниз (или зависнет под ней), для сбора подкрепления. Сопротивление не пройдено.
Бывает ещё, что одна армия выставляет оочень много бойцов где-то повыше или ниже и другая видя это ссытся и убирает своих, и побеждает не борьба а блеф.
Таким образом, когда цена утыкается в большую армию поддержки или сопротивления мы можем попробовать прогнозировать цену. Если армия не побеждена от неё скорее всего будет отскок, если армия побеждена, то цена пойдёт дальше, чем большая армия была побеждена, тем сильнее, как правило, цена пойдёт дальше.
8. Здесь выбираем пару, на которой можно торговать, там можно фильтровать по цене, объёму, проценту роста или падения.
9. Выбираем тип ордера. Лимит – мы сами выставляем цену покупки или продажи, и когда график дойдёт до этой цены, мы автоматически произведём сделку, даже если спим в этот момент. Маркет – мы покупаем или продаём немедленно по цене на данный момент.
10. Обычный – простая спотовая торговля без плеча. Занять – открыть маржинальную позицию. Погасить – закрыть её.
11. Количество монет и цена по которой мы готовы открыть лимитный ордер. Либо просто количество при маркет ордере.
12. Лента сделок показывает, в какое время по какой цене и сколько было продано и куплено. Тоже достаточно полезно, если все начали продавать большие объемы, значит покупать прямо сейчас не стоит и наоборот.
13. Руководство. Там обычно бывает полезный ролик по принципам работы, так же оттуда можно уйти в faq, который на бинансе достаточно подробный и читабельный.
14. 13 ещё раз, лень уже переделывать) TradingView рабочая область графика с большим количеством инструментов индикаторов и осцилляторов, но это уже совсем другая история.
В общем, краткий экскурс вроде как окончен, спасибо если дочитали. Задавайте вопросы.
Так же, если решите попробовать свои силы при регистрации можете ввести рандомные цифры 67153827, можете не вводить я не настаиваю, прямые ссылки на пикабу запрещены.
Главное помните — торговля с плечом очень опасна потерей всех денег. На спотовой торговле потерять все свои деньги, практически, невозможно.
Предлагайте о чём ещё написать, если интересно, а то мне понравилось=) Могу попробовать про интрадей или скальпинг, но там только своими словами я не обойдусь уже)