Pages:
Author

Topic: Как протолкнуть зависшую транзакцию - page 5. (Read 11877 times)

legendary
Activity: 2044
Merit: 1231
Почему-то способ перестал работать. Пересылаю монеты с большей комиссией, но во всех обозревателях блоков только первоначальная транзакция отображается. Что-то господа децентрализованные майнеры подправили в своём ПО.
sr. member
Activity: 481
Merit: 258
Вот, метод, описанный в первом посте, усовершенствован и находит оригинальное применение: Как наказать мошенника, «покупающего» биткоины на Ebay.

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

3. Вы создаете backup-копию биткоин-кошелька wallet.dat.
4. Вы посылаете мошеннику биткоин с нулевой комиссией (transaction free) в будний день.
5. Транзакция с нулевой комиссией зависает в пулах и ждет подтверждения. Это может занять несколько суток.
6. На следующий день мошенник запускает на Paypal диспут «неавторизованная транзакция».
7. Если транзакция все еще не имеет подтверждений, то есть не успела попасть в блокчейн, — прекрасно, вы почти выиграли! И раз Paypal-транзакция неавторизована, то получатель биткоина вашего получать не должен! Делаете следующее:
8. Смотрите в оригинальной транзакции (например на https://blockchain.info/), какие выходы из кошелька были потрачены на выплату мошеннику.
9. Восстанавливаете wallet.dat, сохраненный в backup-копии. В нем, естественно, отсутствует транзакция, которой вы платили мошеннику, а выходы UTXO, которые она использовала, выглядят неистраченными.
10. Используя опцию управления транзакциями, вы тратите те же самые выходы (вообще-то, достаточно любого одного из использованных в транзакции (см. п. 4), но спокойнее будет, если будут все), и создаете транзакцию, в которой вы отправляете тот же биткоин самому себе, либо же на дружественный адрес. Здесь как раз на комиссию скупиться не надо, и надо поставить ее побольше.
11. Майнеры, получив вторую транзакцию с высокой комиссией (соответственно, и с высоким приоритетом), с радостью ее добавят в блокчейн. Таким образом, в блокчейне останется транзакция (см. п. 10), а не подтвержденная транзакция (см. п. 4) будет конфликтной, и никогда в блокчейн не попадет. Мало того, даже если мошенник уже успел потратить полученные деньги, то и его трата также станет конфликтной, и он получит проблемы от своего контрагента. В результате, вы свой биткоин получили обратно, и таким образом «развернули доску» в игре с мошенником.
newbie
Activity: 10
Merit: 0
Не могли бы более подробно "для чайников" расписать как это делается?

Копируешь ярлык, с которого запускаешь кошелёк (Bitcoin Core). Затем изменяешь его - дописываешь -zapwallettxes=1, как показано на картинке:

https://i.imgur.com/Vw9IoMn.jpg

и запускаешь с этого ярлыка кошелёк.

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

В режиме обычной работы запускать кошелёк без параметра -zapwallettxes
Вот ещё есть способ, запуск с ключём

Code:
-zapwallettxes=

Справка: Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске (1 = сохранять метаданные транзакции: например, владельца аккаунта и информацию запроса платежа; 2 = отбросить метаданные)

Сам не пробовал.


Господа, случилось лучшее - прописал, запустил - коины на балансе! Добавил комиссию, отправил, все ушло.

Спасибо всем за участие и помощь! Способ работает.
legendary
Activity: 2044
Merit: 1231
Не могли бы более подробно "для чайников" расписать как это делается?

Копируешь ярлык, с которого запускаешь кошелёк (Bitcoin Core). Затем изменяешь его - дописываешь -zapwallettxes=1, как показано на картинке:



и запускаешь с этого ярлыка кошелёк.

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

В режиме обычной работы запускать кошелёк без параметра -zapwallettxes
newbie
Activity: 10
Merit: 0
Вот ещё есть способ, запуск с ключём

Code:
-zapwallettxes=

Справка: Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске (1 = сохранять метаданные транзакции: например, владельца аккаунта и информацию запроса платежа; 2 = отбросить метаданные)

Сам не пробовал.


Не могли бы более подробно "для чайников" расписать как это делается?
hero member
Activity: 1050
Merit: 508
Вот ещё есть способ, запуск с ключём

Code:
-zapwallettxes=

Справка: Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске (1 = сохранять метаданные транзакции: например, владельца аккаунта и информацию запроса платежа; 2 = отбросить метаданные)

Сам не пробовал.
legendary
Activity: 2044
Merit: 1231
перед транзакцией можно сделать копию этого файла и если транзакция зависнет, то можно просто закрыть кошелёк, восстановить копию, запустить кошелёк и баланс (потраченный в зависшей неподтверждённой транзакции) вернётся на место. И можно будет снова отправить транзакцию с большей комиссией.

Нужно убедиться, что в новой транзакции расходуется тот же выход (или хотя бы один из выходов) что и в первой транзакции. Иначе есть вероятность заплатить дважды, если первая транзакция всё-таки подтвердится.
То есть, необходимо пользоваться управлением входами и запоминать, какие выходы расходует транзакция.

Согласен. Для тех, кто не в теме про траты выходов, скажу. Если переводится весь баланс - можно смело действовать. Повторного платежа не будет.
legendary
Activity: 1200
Merit: 1021
перед транзакцией можно сделать копию этого файла и если транзакция зависнет, то можно просто закрыть кошелёк, восстановить копию, запустить кошелёк и баланс (потраченный в зависшей неподтверждённой транзакции) вернётся на место. И можно будет снова отправить транзакцию с большей комиссией.

Нужно убедиться, что в новой транзакции расходуется тот же выход (или хотя бы один из выходов) что и в первой транзакции. Иначе есть вероятность заплатить дважды, если первая транзакция всё-таки подтвердится.
То есть, необходимо пользоваться управлением входами и запоминать, какие выходы расходует транзакция.
legendary
Activity: 2044
Merit: 1231
Хочу предложить способ проталкивания транзакции, которую не хотят подтверждать майнеры из-за низкой комиссии. Способ проверялся на кошельке Bitcoin Core v. 0.12.1. Способ не подойдёт для лайт-режима, т. к. потребует полного блокчейна на компьютере. Впрочем представленные в Интернете способы тоже требуют полного блокчейна.

Как известно, в текущей версии кошелька нет возможности отправить транзакцию с потраченного входа и в случае зависания приходится танцевать с бубном, как описано, например, здесь: https://habrahabr.ru/post/209778/

Способ, о котором расскажу основан на том, что история транзакций в локальном кошельке хранится собственно (как я понял) в файле кошелька wallet.dat. Поэтому перед транзакцией можно сделать копию этого файла и если транзакция зависнет, то можно просто закрыть кошелёк, восстановить копию, запустить кошелёк и баланс (потраченный в зависшей неподтверждённой транзакции) вернётся на место. И можно будет снова отправить транзакцию с большей комиссией.

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

На всякий случай для тех, кто не знает - файл wallet.dat находится обычно тут: C:\Users\ВашеИмяНаКомпьютере\AppData\Roaming\Bitcoin



Обновление

В новой версии кошелька появилась галочка "Request Replace-By-Fee". Не забывайте ставить её, если хотите подстраховаться. Без этого реквизита майнеры могут не принять повторную трату и таким способом "протолкнуть" транзакцию может не получиться.
Pages:
Jump to: