Можно ли отменить перевод биткоинов. Что делать если биткоин транзакция «зависла»


Из-за недавней пики в стоимости биткойна, количество неподтвержденных транзакций взлетело до небес, а Bitcoin-блоки все ближе и ближе к заполнению. Это существенно замедляет процесс обработки транзакций сетью, и для того, чтобы вашу транзакцию обработали быстрее, не забывайте увеличивать комиссию. И хотя это годится для перемещения крупных сумм в BTC, если вам нужно срочно отправить пару Bitcoin-центов, то большая комиссия может существенно ударить по карману. Если же комиссия будет не такой большой, то существует огромная вероятность того, что ваша транзакция будет подтверждаться в плоть до нескольких дней, а это приводит к проблемам определенного характера, особенно если вы хотите купить какие-нибудь товары или услуги, используя BTC. Одним из решений такой проблемы можно считать отмену неподтвержденных транзакций за последние 24 часа. В принципе, сделать это несложно, но для этого потребуется немного времени.


Отмена “застрявших” Bitcoin-транзакций, посланных с вашего локального BTC-кошелька потребует от вас запуска клиента qt wallet, дополненного специальной опцией, которая позволит отменить все транзакции, которые пока еще не попали в блокчейн. Запустите bitcoin-qt.exe (или любой другой запускной файл qt-файл, в зависимости от того, какую ОС вы используете), с параметром –zapwallettxes.

Однако перед запуском не забудьте создать резервную копию вашего файла wallet.dat. На это потребуется какое-то время, так как будет запущен процесс повторного сканирования блокчейна. Так что, приготовьтесь дождаться полного завершения процесса, и не забудьте убрать этот параметр при последующем запуске вашего кошелька, так как он больше не потребуется.

В результате вы сможете инициализировать новую транзакцию с не потраченными монетами, а за счет увеличения комиссии при последующей отправке у вас будет гораздо больше шансов на то, что транзакция получит подтверждение. В целом, вы как бы совершите двойную трату, но при этом вторая транзакция автоматически отменит первую. К тому же у вас нет возможности делать двойные траты, если, конечно, вы не владеете 51% Bitcoin-сети, так что, думаю, это не будет проблемой. Единственное, что вы сможете сделать в данной ситуации, это освободить свои монеты, застрявшие в неподтвержденной транзакции, и использовать их для других целей.

Также учтите, что хотя здесь приведен пример с биткойнами, этот метод также должен сработать и с другими альтернативными криптовалютами, основанными на свежих форках кода Bitcoin-кошелька. Эту задачу можно решить и другими, более сложными методами, на случай, если ваш кошелек не поддерживает опцию zapwallettxes. Например, можно опробовать в действии инструмент на базе Python под названием

Это означает, что заполняется больше блоков. И так как все транзакции не могут быть немедленно включены в блокчейн, возникает неприятность, которая у майнеров называется «мемпулом» (вид «очереди транзакций.»)

Майнеры обычно выбирают те транзакции, комиссионные у которых больше и первыми включают их в блок. Транзакции, у которых более низкие комиссии, «отправляются» на так называемый «рынок комиссионных», и остаются в мемпуле майнеров до тех пор, пока не будет найден новый блок. Если транзакция снова отправлена, ей опять придётся ждать следующего блока.

Это может привести к не самому оптимальному пользовательскому опыту. Транзакции с очень низкими комиссиями могут потребовать часов или даже дней для подтверждения, а в некоторых случаях могут не подтвердиться вообще.

И вот то, что вы можете сделать сегодня, чтобы помешать вашей транзакции застрять.

Перед тем, как её отправить

На протяжении первых лет существования Биткоина, большинство кошельков добавляли фиксированные комиссионные для исходящих транзакций: обычно, 0.1 mBTC. Так как у майнеров было в блоках достаточно места, они без проблем включали эти транзакции в первый же блок, который им удавалось намайнить. (На самом деле, транзакции с ещё более низкими комиссионными или даже вообще без комиссии включались в блоки так же быстро.)

С усилением конкуренции за место в блоке, фиксированная комиссия 0.1 mBTC стала недостаточной для того, чтобы транзакция сразу включалась в следующий блок; их опережают транзакции, комиссии у которых являются более высокими. В то время, как сделка с низкой комиссией, скорее всего, подтвердится, это может потребовать немало времени.

Попробуйте увеличить комиссию

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

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

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

Проверьте, поддерживает ли ваш кошелёк динамическое изменение комиссий

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

Некоторые кошельки также дают вам возможность выбрать приоритет комиссии. Снова, более высокие комиссии позволят транзакции подтвердиться быстрее, транзакции с низкими комиссиями потребуют немного больше времени.

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

Рассмотрите переход на другой кошелёк

Когда вы переключаетесь на новый кошелёк, то, конечно, вам нужно перевести средства с вашего старого кошелька на новый кошелёк. Если вы не возражаете против небольшой траты, то можете переслать средства из старого кошелька в новый кошелёк через сеть Биткоина. Они, в конечном счёте, прибудут - даже если комиссия будет низкой.

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

После того, как вы её отправили

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

Выборочная замена комиссионных

Чтобы ваша транзакция совершила прыжок в очереди, проще всего использовать опцию, которая называется «выборочная замена комиссионных», (Opt-In Replace-by-Fee, Opt-In RBF). Она даёт вам возможность повторно послать ту же самую транзакцию, но с более высокими комиссионными.

В большинстве случаев, когда та же самая транзакция пересылается по сети, но с более высокими комиссионными, новая транзакция отвергается сетью. Узлы Биткоина обычно решают, что новая транзакция представляет собой попытку двойной траты, поэтому не принимают и не обрабатывают её. Но когда вы пересылаете транзакцию с использованием опции Opt-In RBF, то по сути говорите сети, что пересылаете ту же самую транзакцию, только с более высокой комиссией. В результате, большинство узлов Биткоина принимают новую транзакцию вместо старой; позволяя новой транзакции перескочить в очереди.

Будет ли ваша новая транзакция включена в один из ближайших блоков, будет зависеть от майнера, который считает следующий блок: не все майнеры поддерживают Opt-In RBF. Однако немало майнеров также поддерживают эту опцию, поэтому так или иначе ваша транзакция будет включена в ближайшие блоки.

Opt-In RBF в настоящий момент поддерживается двумя кошельками: Electrum и GreenAddress . В зависимости от кошелька, вам может быть нужно включить Opt-In RBF в настройках меню перед тем, как вы отправляете (первую) транзакцию.

Дети платят за родителей

Если ваш кошелёк не поддерживает Opt-In RBF, вещи становятся немного более сложными.

Дети платят за родителей (Child Pays for Parent, CPFP), вот что может стать уловкой. Применяя CPFP, майнеры не обязательно принимают те транзакции, у которых самые высокие комиссии, а вместо этого они могут принять набор транзакций, у которых в целом более высокие комиссии.

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

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

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

Как и в случае с Opt-In RBF, не все майнеры на сегодняшний день поддерживают CPFP. Но их достаточно для того, чтобы вы могли быть уверены: ваша транзакция подтвердится в одном из следующих блоков.

Или..

Если не доступна ни опция Opt-In RBF, ни CPFP, вы технически все ещё можете попробовать и передать первоначальную транзакцию с более высокими комиссионными. Это обычно называется как «полная замена комиссии», и некоторые майнеры её принимают. Однако доступные кошельки не имеют такой опции.

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

Так же айнинговый пул ViaBTC начал предлагать «ускоритель транзакций.» Если ваша транзакция, которая застряла, включает в себя комиссионные в размере как минимум 0.1 mBTC на килобайт, вы можете отправить ID этой транзакции на ViaBTC, и пул сделает у неё более высокий приоритет по сравнению с остальными транзакциями. Так как ViaBTC контролирует около семи процентов хэширующей мощности сети Биткоина, есть хорошая вероятность того, что блок с вашей транзакцией будет найден за пару часов. Однако у этой службы есть ограничение: максимум 100 транзакций в час.

Для получателя

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

Также есть смысл спросить отправителя средств, в состоянии ли он использовать опцию Opt-In RBF. Если это так, он может заново отправить транзакцию с более высокой комиссией. Конечно, ускоритель транзакций ViaBTC (который упоминался выше) работает и для приходящих транзакций.

Хотите больше новостей?

Всем, кто хоть немного знаком с биткоином известно, что невозможно отменить биткоин-транзакцию. Необратимость транзакций одно из отличительных свойств системы пиринговой наличности, в отличии от централизованных платежных систем, на которых основаны все существующие системы фиатных переводов. Одно время разработчики Bitcoin Core собирались внести изменение в клиент, которое позволило бы редактировать транзакцию еще не принятую в блок с целью изменения комиссии, но такая возможность пока реализована не была. Однако, уже сейчас при определенных условиях и огромном желании отменить транзакцию bitcoin возможно.

Этот материал является описанием проведенного эксперимента, целью которого было проверить, с насколько низкими комиссиями можно успешно отправить монеты BTC с кошелька Bitcoin Core. Эксперимент оказался неудачным и привел к тому, что пять транзакций, отправленных с разнообразными установками кошелька в части комиссий «зависли». Но затем экспериментатору удалось отменить зависшие транзакции с возвратом заблокированных сумм.

Как не следует совершать биткоин-транзакции

Первые 2 транзакции попытались отправить с выставленной минимальной комиссией в 0,00001 BTC и флажком «Попытаться отправить без комиссии, если это возможно».


Обратите внимание, клиент рекомендует выставить 0,00013615 BTC за килобайт. Но для оставшихся трех транзакций, каждая из которых была на ту же сумму 0,01 BTC, рекомендация касательно размера комиссии была проигнорирована, а сам размер комиссии выставлен заведомо меньшим, чем рекомендованный.

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


Дополнительное неудобство состояло в том, что биткоин-адрес, на который были отправлены монеты, в свою очередь, нельзя было использовать для отправки BTC. Попытка сделать перевод сопровождалась сообщением: «Oops! You have unconfirmed deposits pending. You must wait for your deposits to be confirmed before withdrawing».

Если ситуация вам знакома, то паниковать точно не стоит. Для начала, некоторое время можно подождать. Если очередь транзакций рассосется, то возможно, в конце-концов, дойдет до вашего перевода. Если же ожидание излишне затянулось, как в нашем случае на неделю, то можно попробовать заставить кошелек, здесь это делалось на примере Bitcoin Core, «забыть» о размещенных транзакциях. Ведь до тех пор, пока не пришло первое подтверждение, биткоин-транзакция не попала в блок, а значит, знает о ней только ваш клиент.

Как откатить зависшую транзакцию?

  1. Убедитесь, что транзакция зависла. Откройте Block Explorer и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть. Даже в случае, если сайт blockchain.info показывает транзакцию и рисует красную кнопку «Неподтвержденная транзакция », то потеряно еще не все.
  2. В биткоин-кошельке перейдите в отладочную консоль (Помощь - Окно отладки - Консоль) или (Help – Debug window – Console).
  3. Если кошелек зашифрован, то для начала необходимо получить доступ, используя команду walletpassphrase .
  4. Теперь нужно получить приватный ключ от нужного биткоин-адреса: dumpprivkey
    . Вместо
    необходимо подставить адрес, который был использован для отправки средств. В результате получите приватный ключ для указанного адреса кошелька. Его нужно куда-нибудь скопировать, он понадобится. Если транзакция была составная, и биткоины брались с нескольких счетов, то и экспортировать надо приватные ключи для всех этих адресов. Никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету. Также, обратите внимание на то, что на каждую команду в режиме отладки в консоли приходит ответ. Он может быть пустым, но он есть всегда.
  5. Если на других адресах есть биткоины, то приватные ключи этих адресов так же необходимо экспортировать.
  6. После того, как закончили экспорт ключей, закройте клиент и удалите кошелек. Расположение кошелька wallet.dat зависит от конкретного биткоин-клиента и операционной системы. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
  7. Теперь перезапустите клиент. Он заново создаст кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey . Импорт может занять достаточно много времени, но в любом случае дайте ему завершиться, обязательно дождитесь ответа на команду.
  8. В новом кошельке должен появиться счет с его реальным состоянием. Неподтверждённые транзакции «забыты», средства, заблокированные ранее снова доступны для отправки. Теперь можно выслать их заново, но на этот раз не забудьте включить рекомендованную комиссию.


Для клиента, где отсутствует функционал расчета рекомендованного размера комиссии, можно воспользоваться сервисом Blocktrail. Клиентом, который не только не показывает, но и не предоставляет возможность выставить размер комиссии, пользоваться можно на свой страх и риск.

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

Волею судеб довелось мне иметь дело с криптовалютами. Не то что бы плотно работаю с ними, но иногда то отправлю монетки, то получу. Скажем так, понемногу прощупываю новую сферу изнутри.

И вот однажды беда приключилась. Отослал я криптомонетки, а до получателя они не дошли. Собственно, пост о том, как средства возвращались. Ну и размышления и советы по сложившейся ситуации на десерт. Сразу отмечу, что нижесказанное применимо не к какой-то конкретной валюте, а к большинству форков (если не ко всем).

Начну с того, что пост местами пронизан догадками относительно происходящего. Где-то я могу ошибаться. Объективные поправки и дополнения только приветствуются.

Немного о терминологии.

  • Кошельком буду называть файл wallet.dat.
  • Публичный ключ (адрес, на который перечисляются средства, например) временами тоже удобнее назвать кошельком, но, во избежание путаницы, пусть он будет просто номером счета.
  • Комиссия - Transaction Fee. Называть эту штуку комиссией, я считаю, не совсем правильно, но это наиболее привычный и не режущий слух вариант, потому пусть будет комиссией.
  • Размер транзакции - размер блока данных, в котором содержится вся информация о транзакции.
Ко всей этой криптовалютной кухне я изначально подошел как типичный юзер - не особо вникая в систему. Установил, запустил, работает - и ладно. Иногда при попытке послать куда-то средства клиент выдавал сообщение вроде «Размер транзакции слишком велик, нельзя просто взять и послать ее. Но вы можете добавить комиссию в размере N, и тогда все будет хорошо » - я соглашался с добавлением комиссии, и все действительно было хорошо.

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

Делаю очередной перевод на сумму значительно крупнее, чем обычно. Средства со счета уходят, предложения заплатить комиссию не было и… Ничего. До получателя средства не доходят, статус транзакции «0/Не подтверждено». И такую картину я наблюдал больше недели, попутно перегугливая и перечитывая интернеты в поисках информации по решению подобной проблемы. Причем искал и для конкретной криптовалюты, и в целом для всех - проблем куча, решения нет.

А, собственно, что же это за комиссия? Идея в том, что транзакции могут проходить без комиссии, но только в случае соблюдения некоторых условий:

  • Размер транзакции должен быть не больше определенной величины.
  • Переводимая сумма должна быть больше некоего порога.
  • Транзакция должна обладать достаточным приоритетом.
Если первые два пункта более-менее понятны (конкретные величины приводить не стал, полагаю, они могут варьироваться от форка к форку), то в третьем вся загвоздка. Грубо говоря, транзакции при создании попадают в очередь, отсортированные по приоритету. При генерации очередного блока в него включаются транзакции с комиссией (которая идет в награду тому, кто нашел блок), а также транзакции без комиссии с наиболее высоким приоритетом.

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

Поиски решения показали, что это сравнительно частая для криптовалют проблема. К сожалению, все советы сводились к нижеперечисленному и часто не помогали:

  • Подождите сутки-двое, вашу транзакцию включат в очередной блок.
  • Подождите сутки-двое, программе-клиенту надоест ждать, и она сама отменит транзакцию.
  • Загрузите заново всю цепочку блоков.
  • Запустите клиент с каким-нибудь волшебным ключом (-rescan / -reindex / -salvagewallet).
Ждал я больше недели. Ни в какой блок транзакцию не включили. Даже после повторных отправок через sendrawtransaction. Блокчейн говорил, что о той транзакции ничего не знает, и на счету лежат те самые средства, никуда они не ушли. И только клиент стоял на своем: «Я транзакцию отправил, дальше как хочешь. Уже потраченными деньгами распоряжаться не позволю».

Итак, в чем же суть проблемы? Транзакция не попала в блок и уже не попадет. В кошельке хранится информация о том, что транзакция в общем-то была, поэтому средства, которые должны были с ней отправиться, недоступны для использования. Возможно, спустя еще какое-то время транзакция будет отменена, на этот счет у меня несколько предположений:

  • Зависит от валюты, где-то быстро отменяется, где-то нужно ждать долго.
  • Баг конкретного клиента.
  • Информация об отмене неверна.
В любом случае, неделя - это достаточно большой срок. Если за это время не прошло само, то есть основания полагать, что и не пройдет.

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

Решение буду описывать на примере клиента, наиболее распространенного для форков, известного как Satoshi Client. Насколько понимаю, оно применимо и к прочим клиентам, но, возможно, со своими нюансами.

Несмотря на простоту и очевидность решения, к нему мало кто приходит, судя по многостраничным веткам форумов. Средства на счете блокируются кошельком, и все, что требуется, это получить доступ к счету вне текущего кошелька.

Итак, если транзакция зависла и не имеет подтверждений:

  1. Проявите терпение. Не поднимайте сразу панику. Подождите пару дней, вдруг и правда само пройдет.
  2. Убедитесь, что транзакция зависла. Зайдите в Block Explorer (обычно гуглится по запросу «blockchain %названиекриптовалюты%») и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть.
  3. Перейдите в отладочную консоль (Помощь - Окно отладки - Консоль)
  4. Если кошелек зашифрован (он же зашифрован?), то для начала необходимо получить доступ, используя команду walletpassphrase .
  5. Теперь нужно получить приватный ключ от нужного счета. dumpprivkey
    . Вместо
    нужно подставить публичный номер счета, на котором лежат заблокированные средства. В ответ получите приватный ключ данного счета. Его нужно куда-нибудь скопировать, он еще понадобится. Если средства для транзакции брались с нескольких счетов, то и импортировать нужно их все. И да, никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету.
    Обратите также внимание на то, что на каждую команду в отладочной консоли приходит ответ. Он может быть пустым, но он есть всегда. Позже будет понятно, к чему я это.
  6. Закройте клиент и удалите кошелек. Расположение кошелька (wallet.dat) зависит от конкретного клиента и ОС. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
  7. Запустите клиент заново. Создастся новый кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey . Импорт может производиться достаточно долго. Позвольте ему завершиться - дождитесь получения ответа на команду.
  8. В новом кошельке должен появиться счет с реальным его состоянием. Для надежности можно перезапустить клиент с ключом -rescan, но, полагаю, это уже лишнее. Ранее заблокированные средства снова доступны для отправки, шлите их заново, на этот раз не забудьте включить комиссию. (есть важные дополнения по этому пункту в upd3 )
  9. Если на старом кошельке остались прочие используемые и важные счета, можно снова вернуться к нему.
Таким нехитрым образом удалось вернуть криптомонетки. Хотя я уже и начал думать, что они потеряны совсем. В общем, не надейтесь на чудо, перед использованием нового клиента убедитесь, что комиссия всегда включена. Рекомендуемый размер комиссии, думаю, лучше искать на ресурсах, посвященных используемой криптовалюте.

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

Upd2: Значительно упростить описанный процесс переноса счетов в новый кошелек может ключ -salwagewallet, уже упомянутый ранее. При запуске клиента с этим ключом создается новый wallet.dat, в который импортируются все счета из старого, а история транзакций к нему берется из цепочки блоков (за описание спасибо ). К сожалению, запуск с данным ключом реализован не во всех клиентах.

Upd3: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:

  • Импортировав счет в новый кошелек, переведите все средства с него на другой свой счет, вернитесь к старому кошельку и после этого уже распоряжайтесь возвращенными средствами.
  • После совершения транзакции с нового кошелька определите, на какой счет упала сдача, и импортируйте этот счет в старый кошелек.

Метки: Добавить метки

Многие наверняка уже столкнулись с проблемой зависших битков (при отправке и получении).
В большинстве случаев, виною этому спам сети и выставление малой платы майнерам (далее комиссия).
Перед отправкой битков, я бы посоветовал вам смотреть на состояние сети и выставлять комиссию, которую рекомендуют данные сервисы:
https://btc.com/stats/unconfirmed-tx
https://bitaps.com/ru/

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

Берем свой th(id) транзакции:
Пример:

И вбиваем id cюда:


Примечание!

При загруженности сети биткоин, не всегда получается с первого раза с помощью этого сервиса вбить успешно.

Вы можете получить, такое сообщение:

Submissions are beyond limit. Please try later.

Нажмите, чтобы раскрыть...

Вам нужно вбивать до тех пор, пока не получите статус: Успешно.

После этого, ваша транзу подхватят и вовлекут в блок для обработки.

Что делать, если ваша биткоин транзакция не подтверждается ("зависла")?

Сначала можно просто подождать. Если прошло уже несколько часов (или даже суток) и ждать надоело, то есть несколько вариантов:

1)сделать даблспенд. Особенности: может сделать только отправитель.

2)использовать CPFP. Особенности: может сделать получатель и обычно отправитель.

3)использовать replace-by-fee. Особенности: может только отправитель и если заранее позаботился; не все кошельки могут.

4)использовать "ускоритель" от viabtc. Особенности: может получатель и отправитель, но сервис часто перегружен и есть ограничения на транзакцию.

Как сделать даблспенд (двойную трату)?

Действуем по следующему алгоритму (алгоритм описан для кошелька Bitcoin Core; для других кошельков действия аналогичны, но команды будут другими):

SpoilerTarget">Спойлер: алгоритм

0) Убеждаемся, что она ждёт подтверждения. Для этого копируем id вашей транзакции, вставляем в строку поиска сервиса blockchain.info (а также bitaps.com, blocktrail.com/BTC или аналогичного). Далее ищем глазами строку "неподтвержденная транзакция" ("unconfirmed transaction"). Нашли? Значит, транзакция ждет подтверждения.
Примечание. На "Приблизительное время подтверждения" ("Estimated Confirmation Time") на странице с вашей транзакцией blockchain.info не смотрим -- там неизвестно что.

1) Теперь закрываем кошелек и запускаем его из командной строки с параметром -zapwallettxes и ждем пока он откроется. Когда кошелек запустится, все неподтвержденные транзакции из него исчезнут (но они ещё есть в сети!). Для bitcoin core 0.14 потребуется перед запуском ещё переименовать или перенести файл mempool.dat (мемпул в этой версии сохраняется в файл и старая транзакция остается там).
Примечание. Почему не с параметром -salvagewallet? -zapwallettxes не затронет имена ваших ключей, а -salvagewallet удалит их. Кроме того, bitcoin core иногда падает при запуске с -salvagewallet и тогда ваш wallet.dat будет поврежден. Правда, рядом с ним заранее будет создана копия.

2) Теперь можно создавать новую транзакцию, не забыв поставить адекватную комиссию. Но! Поскольку ваша старая транзакция ещё осталась в сети, она может когда-нибудь неожиданно подтвердиться. Если вас это не устраивает, то у новой транзакции хотя бы один из входов должен будет совпадать с одним из входов старой. Для этого смотрим на странице вашей транзакции на сайте blocktrail.com/BTC или аналоге графу "inputs", запонинаем точный размер входа в битках. После этого при создании транзакции в кошельке нажимаем на кнопку "inputs...", находим в списке такое же точно число в битках и выбираем его (если их несколько, то выбирайте с тем же адресом получения и временем). После этого выбираем ещё какие-нибудь входы, чтобы общая сумма была больше суммы транзакции с будущей комиссией; лучше выбирать с запасом. Далее заполняем все поля как обычно, (не забываем про комиссию!) и отправляем.


Как использовать CPFP? Как быть, если я не отправитель, а получатель транзакции?

Такой способ есть и он подходит для получателей; для отправителя он также подойдёт , если у вашей транзакции была "сдача" (обычно она есть). Этот способ немного дороже и сколько пулов его поддерживают - неизвестно (по состоянию на начало 2017 года как минимум два пула его поддерживают). Можно попробовать задействовать механизм CPFP (child pays for parent). Для этого вы должны потратить один из выходов проблемной транзакции с комиссией, которой хватит на обе транзакции сразу - новую и старую. То есть просто создаёте транзакцию с одним входом (это должен быть один из выходов проблемной, например - сдача) и пересылаете биткоины себе же. Комиссию ставите такую, чтобы её хватило на обе сразу: для этого суммируете их размеры, умножаете на число из пункта "Как выбрать адекватную комиссию?", делите на размер новой в килобайтах и вписываете в графу "custom transaction fee" при отправке транзакции. Подробнее для кошелька Bitcoin Core под спойлером:

SpoilerTarget">Спойлер

Пусть для примера вы получатель и должны получить 0.08500148 btc. Для того, чтобы воспользоваться CPFP, в Bitcoin Core нажимаем "Настройки" -> "Параметры" -> "Бумажник" ("Settings" -> "Options" -> "Wallet"); ставим галочки у "включить управление входами" ("Enable coin control features") и "тратить неподтвержденную сдачу" ("Spend unconfirmed change"), если они не стоят (потом можно будет их убрать); теперь закрываем окно настроек и нажимаем "Отправить" ("Send"), там нажимаем кнопку "Входы..." ("Inputs...") и ставим галочку у суммы 0.08500148; потом "Ок", получателем ставите свой адрес; количество ставите 0.08500148 и галочку "вычесть комиссию из суммы" ("subtract fee from amount"); комиссию ставите "выборочно" ("custom"), "за килобайт" ("per kilobyte") и пишете с рассчетом на 2 транзакции по формуле ((размер старой транзакции)/(размер новой транзакции) + 1)*(адекватная комиссия за килобайт и лучше побольше). Отправляете.

Всё. Теперь ждёте. Те пулы, которые "понимают" эту схему, с радостью возьмут обе транзакции сразу. Возможно, это будет не быстро, если таких пулов мало.


Как отменить транзакцию? Может ли транзакция отмениться сама?


Если транзакция подтвердилась (включена в блок), отмениться или быть отменена она не может. Чтобы отменить неподтвержденную транзакцию, необходимо создать конкурирующую с ней транзакцию и добиться её включения в блок - смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?". В любом случае, гарантии успеха тут нет.

Сама неподтвержденная транзакция отмениться не может - может лишь поменяться отображение в вашем кошельке. Далее смотрите ответ на вопрос "Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?".

Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?

Нет! Ваша старая транзакция ещё есть в сети и может неожиданно подтврдиться. Чтобы этого избежать, смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?" (под спойлером). Если вы вообще передумали делать тот перевод, то можно будет сделать перевод себе самому.

Как обезопаситься от зависания транзакций?

1. Выставлять адекватную комиссию.

2. Включить в кошельке механизм replace-by-fee и помечать все транзакции как replaceable, если ваш кошелёк его поддерживает (вроде бы electrum поддерживает). Это позволит при возникновении проблемы легко повысить комиссию.

________________________________________________________

Материалы, которые использовались для написания руководства: