Bitcoin Forum
May 13, 2024, 09:04:36 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [CPFP] Подтверждение застрявшей транзакции  (Read 100 times)
twiki (OP)
Member
**
Offline Offline

Activity: 191
Merit: 55


View Profile
October 30, 2020, 05:19:23 PM
Last edit: February 25, 2021, 11:41:40 PM by twiki
Merited by Symmetrick (4)
 #1

Так как мемпул последние несколько дней наполняется в прогрессии, и изо всех сил люди пытаются подтвердить свои транзакции после оплаты комиссии, которая на данный момент довольно низкая (для текущего статуса мемпула), то mocacinno ann решил создать гайд по этой проблеме.

Подтверждение "Застрявшей" транзакций с помощью CPFP и Electrum

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

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

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

Пример
Неизрасходованный выход AAA со значением 1 BTC, адрес средств 1MyWalletAddress, который вы используете в качестве ввода для нового адреса финансирования транзакции 1ReceiverAddress с неизрасходованным выводом BBB (значение 0,5 BTC) и меняете адрес 1ChangeAddress с неизрасходованным выходом CCC (значение 0,499999 ). Комиссия за эту транзакцию составляет 1 - (0,5 + 0,499999) => 0,000001 (100 сатов). Эта транзакция застряла в мемпуле на долгие годы, если мы что-то не сделаем ...

И так как у получателя есть доступ к адресу, который был профинансирован этой зависшей транзакцией а у вас есть досту к адресу 1ChangeAddress, который финансируется неизрасходованным выходным ССС, то выходит что получатель имеет адрес 1ReceiverAddress, финансируемый неизрасходованным значением BBB.

Либо вы создаете новую транзакцию, используя неизрасходованный выходной CCC в качестве входа, либо получатель создает новую транзакцию, используя неизрасходованный выходной BBB в качестве входа. Комиссия, которую вы должны заплатить за эту новую транзакцию, составляет: (оптимальную комиссия за первую транзакцию) + (оптимальную комиссия за вторую транзакцию) - (комиссию, уже оплаченную за первую транзакцию => 100 сат) + (формальную дополнительную плату, так как вы не хотите, чтобы обе транзакции застряли в случае внезапного притока транзакций в мемпуле).

Для новичков может быть полезно использовать такие инструменты, как https://coinb.in/#fees. совместно с blockchair.com, чтобы получить полные данные о размерах транзакций (важен размер транзакции, а не ее стоимость, вполне возможно перевести $1000 000 и заплатить комиссию меньше, чем за перевод 50 долларов). Все зависит от количества неизрасходованных выходов, используемых в виде количества созданных новых неизрасходованных выходов и типа кошелька.

Немного справочной информации:

  • CPFP - НЕ единственный инструмент, когда вы сталкиваетесь с зависшими транзакциями. В идеале вы должны были включить опцию RBF, чтобы вы могли просто увеличить комиссию ... Или вы могли бы заплатить viabtc или использовать бесплатный ускоритель.
  • Electrum позволяет использовать многие популярные аппаратные кошельки без ущерба для вашего xprv. Он также позволяет восстанавливать кошельки многих популярных провайдеров и, наконец, что не менее важно: он позволяет легко импортировать несколько закрытых ключей. С помощью Electrum можно решить множество ситуаций, даже если первоначальная проблема не была создана "используя Electrum". Electrum работает на linux, windows, mac и android.

Создание CPFP (простая версия):
Щелкните правой кнопкой мыши на застрявшую транзакцию и посмотрите, есть ли меню: child pays for parent, вы увидите следующий интерфейс:




Что мы узнаем из этого интерфейса?
  • Сумма размеров застрявшей tx + cpfp tx составляет 417 байт
  • Так как тестовая сеть требует только 1 сат/байт, графический интерфейс предлагает оплату в размере 417 сат
  • Так как за застрявшая tx уже была оплачена в размере 226 сат, + общая плата за стартовую + повторная 643 сат

Если представлен следующий экран, просто нажмите «sign», возможно придёться ввести свой пароль или использовать аппаратный кошелек для подписи.



Если представлен следующий экран, нажмите "broadcast"



Создание CPFP для новичков
Жесткая версия, где вы действительно узнаете, что делаете, и получите полный контроль. Это запущенный клиент Electrum в тестовой сети, но все должно работать так же в основной сети!



Мы "случайно" создаем tx с платой в 1 сат/байт. Для тестовой сети этого на самом деле достаточно, но мы собираемся сделать вид, что мы находимся в основной сети, и наш сат/байт за tx застрянет на несколько дней / недель.



если мы копируем идентификатор tx и ищем его в проводнике, таком как blockstream, blockchair или blockchain, то мы будем видеть следующее.



  • Статус не подтверждён, это большая проблема
  • ETA - один блок, так как мы находимся в тестовой сети, вы, вероятно, увидите гораздо большее число, иначе вы бы не читали это пошаговое руководство.
  • Вы видите плату в размере 1 сат/байт
  • Вы видите, что мы выбрали RBF, если вы видите то же самое для ВАШЕЙ транзакции, то есть более простой способ решить вашу проблему. Просто увеличьте комиссию с помощью графического интерфейса Electrum.

Мы видим наши неизрасходованные выходы в Electrum



Перейдите на вкладку «coins», и вы увидите список неизрасходованных выходов, финансирующих ваши адреса:



Вы видите неизрасходованные выходные данные, финансирующие наш адрес mjUxPsHYbn9rrs9c8bqNr4WFKCoeWCatmw, Это то, что нам нужно! Вы можете убедиться в этом, посмотрев на той же вкладке «coins» в столбwt «point». Это должен быть tx id нашей застрявшей транзакции! Этот гайд mocacinno написал с точки зрения отправителя, ОДНАКО, он работает точно так же, для - получателей. Как только вы обнаружите, что неизрасходованные выходные данные финансируют адрес изменения, созданный застрявшей транзакцией, выполните следующие действия:





Нажмите "preferences"



Дальше на вкладку "transactions"



  • Используйте замену оплаты => проверьте, не хотите ли вы создать еще один CPFP
  • Проверьте расширенный предварительный просмотр
  • Остальное - личные настройки, вы можете делать с ними все, что хотите, после прочтения это информации

Перейдите на вкладку «Adress» (которую вам, возможно, придется активировать, нажав «просмотр» => «показать адреса» и выбирете неиспользуемый адрес (или уже использованный).



Скопируйте



Щелкните вкладку отправки, вставьте ее, щелкните "max"



Так как вы включили «расширенный просмотр» в настройках, вы попадете на эту страницу:



Как видите, вы можете вручную установить комиссию для вашего CPFP tx ... Помните, вам нужна комиссия для покрытия комиссии за застрявшую транзакцию и вашей транзакции cpfp. Как правило, вы должны как минимум удвоить текущую комиссию, если только застрявшая транзакция не огромна (в этом случае удвоение не поможет) .


Нажмите на "sign"



Введите свой пароль (или подпишите с помощью аппаратного кошелька)



Нажмите "broadcast"



Это вид обозревателя блоков адреса, который мы используем для получения изменений CPFP:



На этом создание CPFP завершено, теперь давайте посмотрите на узел, что мы на самом деле сделали ... Этот шаг не может быть выполнен вами, и это не то, что необходимо для создания CPFP. Это просто способ показать, что на самом деле произошло:



Это вид мемпула нашей CPFP tx: вы видите оплату? Она намного выше, чем оплата 1 сат/байт, которую мы использовали для нашей зависшей транзакции. На самом деле это означает, что майнер не может требовать комиссию за CPFP tx, не включая застрявшую транзакцию, CPFP tx зависит от зависшей транзакции. Как только майнер добывает блок, содержащий CPFP tx, он также должен включить застрявшую tx, решая вашу проблему
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!