Для чего нужен Replace by fee?
Возникает ситуация, когда требуется отменить или заменить транзакцию. Это может быть вызвано тем, что транзакции долгое время не попадают в блок. Все операции, которые после запуска не добавились в блок, считаются неподтверждёнными. Неподтвержденные транзакции чаще всего случаются именно из-за низких комиссий. У таких транзакций всё же есть возможность стать обработанными.
В блокчейнах 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 не могут быть добавлены в блок.