Сайт о телевидении

Сайт о телевидении

» » Сколько неподтвержденных транзакций. Неподтвержденная транзакция blockchain: что делать. Почему не подтверждается транзакция

Сколько неподтвержденных транзакций. Неподтвержденная транзакция blockchain: что делать. Почему не подтверждается транзакция

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

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

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

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

    • Кошельком буду называть файл 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: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:

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

    Постоянно увеличивается, а это значит, что блоки, в которых они хранятся, заполняются быстрее. Ведь размер блока остается прежним – 1 мегабайт. Из-за этого возникает распространенная проблема – задержка транзакции в результате того, что она не подтверждена (необходимо хотя бы 2 подтверждения).

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

    Что значит неподтвержденная транзакция биткоин?

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

    Вы всегда можете узнать статус вашего перевода, просто введя в поле поиска сайта blockchain.info свой TXID (id вашей транзакции). Там отображается количество подтверждений и путь самой транзакции. Цифра 2 около и синий статус «кнопки» c надписью Confirmations в Blockchain означает, что транзакция прошла. А если она не была подтверждена, тогда вы увидите характерную надпись Unconfirmed Transaction на красном фоне.

    При условии выставления адекватной комиссии подтверждение занимает до 30 минут, в противном случае, можно ожидать 72 часа и даже больше.

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

    Почему не подтверждается транзакция?

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

    Важно помнить, что размер комиссии не зависит от суммы транзакции. То есть, транзакция на 100 биткоинов может оказаться дешевле, чем на 0,01 BTC. Все зависит от ее размера в байтах. В свою очередь размер зависит от количества связанных транзакций. Например, если вы получили по 1 биткоину от Димы, Саши, Кати, а потом отправляете эти 3 биткоина Вахтангу, то в этой транзакции будет участвовать 4 адреса (включая ваш). А это дополнительные 600 байтов или около того.

    Но если копнуть глубже, то окажется, что длительное время подтверждения транзакции – это следствие маленького размера блока Bitcoin. Сеть в условиях постоянного роста количества участников и переводов не способна их быстро обрабатывать на данном этапе.

    Можно даже провести приблизительный расчет. Размер 1 блока составляет 1 мегабайт, на скрине выше обычная транзакция «занимает» 370 байт. На генерацию 1 блока уходит порядка 10 минут. Это значит, что за 10 минут может быть подтверждено порядка 2600 транзакций. Но ведь их на самом деле значительно больше.

    На все том же сайте blockchain.info можно посмотреть размер mempool (мемпул – очередь) сети. Это объем всех транзакций, который ждут подтверждения.

    Суммарно они занимают свыше 100 мегабайт. Это означает, что менее 1% транзакций будет подтверждено в течение 10 минут. В общей сложности на их обработку уйдет 10х100=1000 минут или почти 17 часов. И это при условии, что в сети BTC внезапно перестанут проводиться любые новые транзакции.

    Глобальное решение этой ситуации – это увеличение размера блока. Именно для этого и был проведен . Он предусматривает оптимизацию использования памяти для хранения данных о транзакциях, и должен подготовить сеть к дальнейшим модификациям (увеличение блока) через софтфорк. Segwit2x, который предусматривал хардфорк (жесткое разделение блокчейн) и увеличение размера блока до 2 мегабайт, был отменен.

    Что будет с деньгами?

    Одно можно сказать точно – ваши деньги никуда от вас не пропадут. Тут есть два сценария:

    • Ждать, пока ваша транзакция таки получит необходимых 2 подтверждения;
    • Принимать какие-то меры, чтобы ее протолкнуть.

    Первый вариант не требует от вас никаких действий. Вы знаете, что проверка транзакции доступна на blockchain.info и некоторых других сервисах, и можете время от времени посматривать на ее статус, вводя в поиск идентификатор. Однако время ожидания может затянуться на дни, а в крайних случаях – недели.

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

    Сколько ждать подтверждения транзакции биткоин

    На некоторых сервисах указывается как долго ожидать подтверждения. Но эти цифры редко-когда имеют что-то общее с реальностью. Вы можете самостоятельно рассчитать время подтверждения транзакции. Для этого вам необходимо обратить внимание на строку Fee per byte.

    Метод с двойной тратой зависит от выбранного вами кошелька. Обычно применяется пользователями Bitcoin-Core или Bitcoin Knots. Для реализации этого метода, необходимо закрыть Bitcoin Core, запустить заново в CMD (командная строка) c помощью команды –zapwalletettxes, предварительно убрав с каталога кошелька файл mempool.dat.

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

    CPFP

    CPFP – это сокращение от child pays for parent. Этот метод рассчитан на ситуации, когда отправитель создал новую транзакцию с битками, которые «условно» получил с другой транзакции, которая еще не была подтверждена. В таком случае, для проведения операции необходимо оплатить комиссию еще за ту самую неподтвержденную транзакцию.

    Чтобы это сделать, нужно перейти в раздел Wallet (Settings -> Options -> Wallet), пометить поля Spend unconfirmed change и Enable coin features.

    После этого нажимаем отправить и снова работаем с разделом Inputs. В качестве получателя указываете себя (свой ), вводите сумму, которую вам ранее отправили и отмечаете галочку subtract fee amount. Ниже устанавливаете размер комиссии через Сustom, а не через Recommended.

    Гораздо проще справится с зависшей неподтвержденной транзакцией можно в кошельке Electrum. Там есть функция повторного отправления с увеличенной комиссией – replace-by-fee. Правда, она сработает только в том случае, если при первичном отправлении была отмечена галочка Replaceable.

    Ускорители и “проталкиватели”

    Ускорением транзакций также занимаются майнинговые пулы – ViaBTC , AntPool . Чтобы ускорить транзакцию через ViaBTC, достаточно перейти в раздел Tools на сайте пула и выбрать Transaction Accelerator. Для ускорения просто укажите ID транзакции и разгадайте каптчу. Эффективность этого метода спорная.
    В сети также есть много сайтов-агрегаторов пулов ViaBTC и AntPool. Пример – perenosi.com . А в Telegram создан бот по ускорению - @FastTXbot . Бот агрегирует проталкивание через AntPool автоматически.

    Еще больше способов ускорения вы можете найти в нашей статье:

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

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

    Если вы получили 10 биткоинов через 10 транзакций по 1 биткоину, то перевод этих 10 биткоинов по своему объему в байтах будет намного больше, чем перевод 100 биткоинов, которые вы получили с 1 адреса. Это и есть пример «Пути» отправляемых биткоинов. Аналогично и при отправлении – чем больше адресов, тем больше комиссия. Если вам нужно отправить BTC нескольким получателям, тогда объединяйте транзакции в одну и «разветвляйте» ее через Input.

    Ключевое значение – это размер комиссии на 1 байт. Перед тем как отправлять битки, посмотрите показатели мемпула и проверьте среднее значение комиссий в сети. Посмотреть показатели комиссий можно на BitcoinFees.

    Если мемпул пуст, тогда даже перевод с небольшой «пеней» пройдет – здесь работает простой закон спроса и предложения. Майнеры обрабатывают транзакции, так как лучшие предложения поступают редко. Идеальное время проведения – это когда Китай и Азия спят. То есть в европейской первой и второй временной зоне в этот период вечер (6-10 часов).

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

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

    Итак, резюме:

    1. Неподтвержденная транзакция – это транзакция, которая после отправки по какой-то причине не была добавлена в блок.
    2. Чтобы ускорить транзакцию, можно использовать метод двойной траты (Double Spend), CPFP, Replace-by-fee либо специальные ускорители.
    3. Чтобы обезопаситься от зависаний, нужно выставлять правильную комиссию и учитывать время проведения транзакции.

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

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

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

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

    • Кошельком буду называть файл 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, в который импортируются все счета из старого, а история транзакций к нему берется из цепочки блоков (за описание спасибо grich). К сожалению, запуск с данным ключом реализован не во всех клиентах.

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

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

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

    С каждым годом, если не месяцем, количество транзакций в сети Биткоина растёт. Это ведёт к переполнению блоков. А поскольку немедленно включить все транзакции в блокчейн невозможно, из не вошедших в блок транзакций у майнеров формируется «пул памяти» (mempool) - своего рода «очередь из транзакций».

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

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

    Что же можно сделать, чтобы транзакция не зависла?

    При отправке транзакции

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

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

    Попробовать повысить комиссию

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

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

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

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

    Использовать динамические комиссии

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

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

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

    Не бойтесь менять кошельки

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

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

    После отправления транзакции

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

    Функция Opt-In Replace-by-fee

    Самый простой способ заставить вашу транзакцию перепрыгнуть очередь – использование опции под названием Opt-InReplace-by-Fee (Opt-InRBF). С её помощью можно повторно отправить ту же самую транзакцию, но с более высокой комиссией.

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

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

    Включится ли ваша транзакция именно в следующий блок, зависит от того, какой майнер добудет новый блок: не все майнеры используют Opt-InRBF. Так или иначе, данную опцию поддерживает достаточное количество майнеров, чтобы ваша транзакция была включена в следующие несколько блоков.

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

    Child Pays for Parent (ребенок платит за родителя)

    Если ваш кошелёк не поддерживает Opt-InRBF, всё немного усложняется.

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

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

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

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

    Также как в случае с Opt-InRBF, не все майнеры сейчас поддерживают CPFP. Однако их достаточно для того, чтобы ваша транзакция подтвердилась в ближайших блоках.

    Другие варианты

    Если отсутствует возможность применить Opt-InRBF или CPFP, технически можно попробовать отправить оригинальную транзакцию с более высокой комиссией. Обычно это называют «full replace-by-fee», и некоторые майнеры такую возможность допускают. Хотя публичные кошельки пока эту опцию не поддерживают.

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

    Со стороны получателя

    Конечно, зависшая транзакция представляет проблему и в том случае, если вы её получатель.

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

    Единственный дополнительный вариант – спросить отправителя, использовал ли он Opt-InRBF. В таком случае он сможет повторно отправить транзакцию с более высокой комиссией.

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

    Как я уже отметил, рост количества транзакций в сети биткоин привел к тому, что очень много транзакций «висят» неподтвержденными по несколько дней. Причем даже повышенная комиссия не даст гарантий того, что ваша транзакция будет обработана в заявленные несколько часов. Количество неподтвержденных транзакций в сети может достигать до 200 000.

    Основными причинами такой ситуации считаются: атака сети биткоин и малая плата за транзакцию и тогда манеры просто не берут ее в обработку.

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

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

    Для этого нужно получить ХЭШ вашей транзакции (ниже привожу пример того, как это сделать на блокчейне):

    Я намеренно не стал переписывать, а скопировал информацию с форума. Там и так описано все в довольно доступной форме. Если у вас появятся вопросы — задавайте их в комментах, будем разбираться.