Зависла транзакция Биткоин: что делать? Неподтвержденная транзакция – что делать? Очередь неподтвержденных транзакций в сети биткоин.
Волею судеб довелось мне иметь дело с криптовалютами. Не то что бы плотно работаю с ними, но иногда то отправлю монетки, то получу. Скажем так, понемногу прощупываю новую сферу изнутри.
И вот однажды беда приключилась. Отослал я криптомонетки, а до получателя они не дошли. Собственно, пост о том, как средства возвращались. Ну и размышления и советы по сложившейся ситуации на десерт. Сразу отмечу, что нижесказанное применимо не к какой-то конкретной валюте, а к большинству форков (если не ко всем).
Начну с того, что пост местами пронизан догадками относительно происходящего. Где-то я могу ошибаться. Объективные поправки и дополнения только приветствуются.
Немного о терминологии.
- Кошельком буду называть файл wallet.dat.
- Публичный ключ (адрес, на который перечисляются средства, например) временами тоже удобнее назвать кошельком, но, во избежание путаницы, пусть он будет просто номером счета.
- Комиссия - Transaction Fee. Называть эту штуку комиссией, я считаю, не совсем правильно, но это наиболее привычный и не режущий слух вариант, потому пусть будет комиссией.
- Размер транзакции - размер блока данных, в котором содержится вся информация о транзакции.
Казалось бы, если меня просят дополнительно заплатить, когда это нужно, значит я и буду платить, когда попросят (если комиссия будет устраивать). Это и было главной ошибкой.
Делаю очередной перевод на сумму значительно крупнее, чем обычно. Средства со счета уходят, предложения заплатить комиссию не было и… Ничего. До получателя средства не доходят, статус транзакции «0/Не подтверждено». И такую картину я наблюдал больше недели, попутно перегугливая и перечитывая интернеты в поисках информации по решению подобной проблемы. Причем искал и для конкретной криптовалюты, и в целом для всех - проблем куча, решения нет.
А, собственно, что же это за комиссия? Идея в том, что транзакции могут проходить без комиссии, но только в случае соблюдения некоторых условий:
- Размер транзакции должен быть не больше определенной величины.
- Переводимая сумма должна быть больше некоего порога.
- Транзакция должна обладать достаточным приоритетом.
Сам приоритет прямо зависит от объема переводимых средств и от числа их подтверждений (чем дольше именно эти деньги лежали у вас на счету, тем больше должен быть приоритет, по сути) и обратно зависит от размера транзакции. Таким образом, при неудачном стечении обстоятельств транзакция без комиссии может оказаться в зависшем неподтвержденном состоянии, с которым я и столкнулся.
Поиски решения показали, что это сравнительно частая для криптовалют проблема. К сожалению, все советы сводились к нижеперечисленному и часто не помогали:
- Подождите сутки-двое, вашу транзакцию включат в очередной блок.
- Подождите сутки-двое, программе-клиенту надоест ждать, и она сама отменит транзакцию.
- Загрузите заново всю цепочку блоков.
- Запустите клиент с каким-нибудь волшебным ключом (-rescan / -reindex / -salvagewallet).
Итак, в чем же суть проблемы? Транзакция не попала в блок и уже не попадет. В кошельке хранится информация о том, что транзакция в общем-то была, поэтому средства, которые должны были с ней отправиться, недоступны для использования. Возможно, спустя еще какое-то время транзакция будет отменена, на этот счет у меня несколько предположений:
- Зависит от валюты, где-то быстро отменяется, где-то нужно ждать долго.
- Баг конкретного клиента.
- Информация об отмене неверна.
Как нормальный человек, после того, как все уже сломалось, я наконец-то пошел читать мануалы. Попытка повторить транзакцию с включением в нее комиссии потерпела фиаско. Зато бесконечные прыжки по ссылкам между форумами (в выдаче гугла ничего стоящего не нашлось) довели меня до некоего поста, где и нашлась дельная подсказка. К сожалению, теперь найти этот пост не удается, даже не знаю, что был за форум. Полагаю, некий околобиткойновый.
Решение буду описывать на примере клиента, наиболее распространенного для форков, известного как Satoshi Client. Насколько понимаю, оно применимо и к прочим клиентам, но, возможно, со своими нюансами.
Несмотря на простоту и очевидность решения, к нему мало кто приходит, судя по многостраничным веткам форумов. Средства на счете блокируются кошельком, и все, что требуется, это получить доступ к счету вне текущего кошелька.
Итак, если транзакция зависла и не имеет подтверждений:
- Проявите терпение. Не поднимайте сразу панику. Подождите пару дней, вдруг и правда само пройдет.
- Убедитесь, что транзакция зависла. Зайдите в Block Explorer (обычно гуглится по запросу «blockchain %названиекриптовалюты%») и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть.
- Перейдите в отладочную консоль (Помощь - Окно отладки - Консоль)
- Если кошелек зашифрован (он же зашифрован?), то для начала необходимо получить доступ, используя команду walletpassphrase
- Теперь нужно получить приватный ключ от нужного счета. dumpprivkey
. Вместо нужно подставить публичный номер счета, на котором лежат заблокированные средства. В ответ получите приватный ключ данного счета. Его нужно куда-нибудь скопировать, он еще понадобится. Если средства для транзакции брались с нескольких счетов, то и импортировать нужно их все. И да, никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету.
Обратите также внимание на то, что на каждую команду в отладочной консоли приходит ответ. Он может быть пустым, но он есть всегда. Позже будет понятно, к чему я это. - Закройте клиент и удалите кошелек. Расположение кошелька (wallet.dat) зависит от конкретного клиента и ОС. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
- Запустите клиент заново. Создастся новый кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey
- В новом кошельке должен появиться счет с реальным его состоянием. Для надежности можно перезапустить клиент с ключом -rescan, но, полагаю, это уже лишнее. Ранее заблокированные средства снова доступны для отправки, шлите их заново, на этот раз не забудьте включить комиссию. (есть важные дополнения по этому пункту в upd3 )
- Если на старом кошельке остались прочие используемые и важные счета, можно снова вернуться к нему.
Upd: Необходимость описанной операции зависит от используемого клиента (а так как у многих криптовалют по одному клиенту, то и от используемые валюты). Похоже, в некоторых случаях информация о транзакции записывается не в файл кошелька, а только в локальную цепочку блоков. При таком раскладе может помочь удаление имеющейся цепочки или запуск клиента с ключами.
Upd2: Значительно упростить описанный процесс переноса счетов в новый кошелек может ключ -salwagewallet, уже упомянутый ранее. При запуске клиента с этим ключом создается новый wallet.dat, в который импортируются все счета из старого, а история транзакций к нему берется из цепочки блоков (за описание спасибо ). К сожалению, запуск с данным ключом реализован не во всех клиентах.
Upd3: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:
- Импортировав счет в новый кошелек, переведите все средства с него на другой свой счет, вернитесь к старому кошельку и после этого уже распоряжайтесь возвращенными средствами.
- После совершения транзакции с нового кошелька определите, на какой счет упала сдача, и импортируйте этот счет в старый кошелек.
Часто при переводе биткоинов пользователи сталкиваются с неподтверждением транзакций blockchain, это происходит из-за установки низкой комиссии за перевод или просто загруженностью сети. В первую очередь майнеры обрабатывают транзакции с высокой комиссией.
Иногда подтверждения приходится ждать 2-3 суток. Так что же делать в этой ситуации? Советую воспользоваться ускорителем транзакций bitcoin Transaction Accelerator который пренадлежит большому майнингому пулу. Как правило после ускорения, транзакция подтверждается в течении 20 минут. Так же есть Antpool , который работает аналогично, но для ускорения транзакции сначала придется зарегистрироваться.
Важно: существует ограничение, можно ускорить только 100 транзакций в сутки. Если не получилось, попробуйте позже.
Ускорение блокчейн транзакции:
- Переходим в кошелек blockchain, находим свою транзакцию и нажимаем «Верефицировать на blockchain.info»
- Копируем номер транзакции
- Переходим на сервис ускорения транзакций, вставляем номер транзакции, заполняем капчу и нажимаем на «sabmit». Если ускорение удалось, появится сообщение.
- Ждем 20 минут и радуемся))) Проверено лично!
Еще у Antpool есть telegram бот (@FastTXbot) https://t.me/FastTXbot , нужно добавить бота в свои контакты и написать номер транзакции. Когда транзакция будет подтверждена, бот автоматически уведомит вас об этом. Обычно подтверждение происходит со следующим блоком или через несколько блоков.
Если у вас все получилось и ваша транзакция успешно подтвердилась, прошу отблагодарить комментариями к этой статье или парочкой сатошей на этот адрес 1NXSuj2kQXZ7QMJf5uH5QroertEpZPRbid
Подписывайтесь на наш новостной канал
Сеть биткоина растет, курс растет и все чаще пользователи биткоина сталкиваются с проблемой, когда биткоин транзакция «зависает». Т.е. биткоины вроде как отправлены, но до адресата доходят через несколько дней в лучшем случае. А чаще всего бывает так, что транзакция «погуляет» по сети и вернется на кошелек. Это кстати тоже один из позитивных вариантов развития событий.
Как я уже отметил, рост количества транзакций в сети биткоин привел к тому, что очень много транзакций «висят» неподтвержденными по несколько дней. Причем даже повышенная комиссия не даст гарантий того, что ваша транзакция будет обработана в заявленные несколько часов. Количество неподтвержденных транзакций в сети может достигать до 200 000.
Основными причинами такой ситуации считаются: атака сети биткоин и малая плата за транзакцию и тогда манеры просто не берут ее в обработку.
Перед тем как отправить платеж советую взглянуть на загрузку сети. Это можно сделать и . Там же можно увидеть рекомендуемую цену за один байт.
Но вы ведь не попали бы на эту статью, если бы не задались вопросом, который я сделал заголовком. Итак, что делать если транзакция зависла? Существует специальный сервис для «проталкивания зависших» транзакций .
Для этого нужно получить ХЭШ вашей транзакции (ниже привожу пример того, как это сделать на блокчейне):
Я намеренно не стал переписывать, а скопировал информацию с форума. Там и так описано все в довольно доступной форме. Если у вас появятся вопросы — задавайте их в комментах, будем разбираться.
Так вы уже здесь второй год «стоите»! Да вот жду подтверждения транзакции с биткоинами. Наверное, маленькую комиссию назначил. (Из анекдота, подслушанного в блокчейн)
Проще, быстрее и легче! Такими «лозунгами» я буду руководствоваться, чтобы доходчиво объяснить вам, как долго происходит подтверждение транзакции. Но сначала перечислим те вопросы, на которые мы попытаемся ответить:
Как это работает?
Извините, но буду «грузить» 😉 Без этого понять принцип манипуляций с криптовалютой не получится.
1) Информация об операциях с биткоинами записывается в специальные блоки, которые представляют собой список транзакций. Если сложить блоки в цепочку, то получите историю «хождения» криптовалюты.
2) Блок состоит из заголовка и списка транзакций. Заголовок содержит хеш-коды транзакций, собственный и хэш предыдущего блока. Первой в перечне идет транзакция, в которой указывается вознаграждение (комиссия) за создание нового блока.
3) Чтобы проверить подлинность операций с криптовалютой, транзакции должны быть валидированы в блокчейн. Он представляет собой распределенную БД. Ее части хранятся на множестве компьютеров в сети Bitcoin.
Подтверждения и запись данных об операциях в блоки является сложным процессом и требует наличия мощного оборудования. Вычислительные процессы проходят на стороне пользователя, подключенного к Bitcoin.
Подтверждение транзакции – это ее присоединение к списку транзакций в блоке.
После проведения операции с криптовалютой счета на стороне отправителя и получателя обновляются не сразу. В традиционных пользовательских приложениях для подтверждения транзакции должно быть найдено шесть блоков, которые доказывают ее валидность.
При этом пользователь, проводящий операцию, может уменьшить число проверок. Это следует делать, если оперируете небольшой суммой биткоинов. Что упрощает и ускоряет процесс подтверждения транзакции.
Если верификации перевода криптоденег не произошло, то система возвращает средства обратно на кошелек отправителя.
Как долго ждать?
У меня в среднем уходит от 20 минут до часа.
Время ожидания зависит от нескольких составляющих:
1) Загруженность «криптосети» — за последние два года количество операций с биткоинами выросло более чем в 8 раз. Это видно на графике ниже.
Он показывает рост количества триллионов хешей, выполняемых в секунду в сети Bitcoin.
Также в сетке бывают всплески, когда среднее количество транзакций в блоках возрастает, и сам размер блоков увеличивается до критической величины. Так было в прошлом году.
Подобная ситуация также возникает при накоплении огромного количества неподтвержденных транзакций.
2) Маленькая комиссия – в «криптосети» первыми проходят валидацию транзакции с большим размером вознаграждения майнерам. В некоторых случаях, если сильно экономить, процедура подтверждения может занять несколько дней.
3) Скачки курса криптовалюты – тоже повышают время верификации.
Вот видео, в котором рассказывается о подобном случае на blockchain.
Как узнать сколько подтверждений прошло?
Советую ищущим «незнамо что» по своим (и не только) операциям с биткоинами заходить на blockchain.info . Здесь можно найти любую информацию по блокам, транзакциям. А также «промониторить» общую ситуацию на рынке.
Чтобы узнать, сколько подтверждений прошло по определенной транзакции, зайдите на указанную выше площадку и введите в поисковую строку известный хеш. После этого отобразится информация о блоке.
Внизу страницы находится список транзакций, проведенных с ним. Нажмите на нужную и получите искомое значение.
Как увеличить скорость?
Методы сокращения времени транзакции:
- Повышение комиссии для майнеров – специалисты советуют «не жадничать» и отдавать за подтверждение от 0,0002 ВТС и более.
- Объем переводимых средств – чем больше криптовалюты переводите, тем статус операции выше в «криптосети».
- Использование специализированных площадок наподобие coinbase.com – на таких сервисах покупатели и продавцы сохраняют свои ключи. Благодаря этому подтверждение происходит в рамках этой платформы, а не в общей сети.
- Использование биткоин-кошельков с функцией создания мультиподписи – на подобных сервисах для подтверждения операции с криптовалютой от пользователя потребуется лишь указать закрытый ключ. Второй «подписью» выступает ключ сервиса. Таким образом не тратятся средства и время на подтверждение транзакции.
Вот такой получился обзор для начинающих, делающих первые шаги в «сторону» криптовалюты. Надеюсь, мой материал поможет сделать вам эти шаги более уверенно!