Как урезать Bitcoin Core кошелек?
Недавно в комментариях к статье Bitcoin долгая синхронизация кошелька у меня спросили как быть, если жесткий диск маленького размера и весь блокчейн биткоина, а он уже больше 110Гб, не помещается?
Тут я вспомнил, что недавно вышла новая версия Bitcoin Core 0.14.0, которая содержит ряд улучшений.
В Bitcoin Core 0.14.0
Улучшена производительность IBD
Одним из главных нововведений релиза стало улучшение производительности начальной загрузки блоков (IBD). Узел, запущенный в первый раз, теперь может проверять все блоки гораздо быстрее. Подобное нововведение было необходимо из-за постоянно возрастающего размера блокчейна. Теперь пользователи могут не хранить весь блокчейн, который сейчас имеет размер более 110 Гб – достаточно иметь его урезанную версию с минимальным размером в 550 Мб.
В предыдущих версиях была предусмотрена обрезка блокчейна до 2 Гб и хранением блоков примерно за две недели. Теперь даже полные узлы могут только обрабатывать блоки, но не хранить их, записывая изменение балансов адресов в таблицу UTXO (неистраченных выходов). Несмотря на некоторые уступки в плане безопасности, такой механизм значительно ускоряет работу кошелька и снижает требования к аппаратным ресурсам.
Ускоренная проверка новых блоков
Это нововведение особенно порадует майнеров. Для многоядерных процессов был обновлен кэш подписей – тест, проведенный на системе с 16 ядрами показал 40% увеличение скорости обработки нового блока. Внедрение функции BIP152 Compact Blocks позволит передавать некоторые блоки еще до того, как они были полностью подтверждены, позволяя этим блокам быстрее чем раньше распространяться по сети peer-to-peer (P2P).
Код для обмена данными в сети P2P также был реорганизован, чтобы позволить нескольким действиям выполняться одновременно, а также увеличить пропускную способность, устраняя потенциальные задержки в обработке новых блоков. Помимо этого, неподтверждённые транзакции в памяти узла (mempool) теперь могут быть сохранены и восстановлены с диска при перезапуске Bitcoin Core.
Обновленный расчет комиссий
Кошелек Bitcoin Core теперь позволяет пользователям при желании отправлять транзакции при помощи функции replace-by-fee (RBF). Это значит, что пользователь может увеличить комиссию за транзакцию даже после того, как была отправлена в сеть более ранняя версия транзакции. Данная функция не включена по умолчанию. Разработчики надеются, что это нововведение побудит майнеров к более быстрой обработке новых версий транзакций.
Помимо перечисленных основных изменений, существуют также и другие нововведения — возможность включения и выключения сетевой активности, новый эффективный метод импорта множественных ключей или адресов watch only, а также новые предупреждения и сообщения, информирующие пользователей о правильном использовании продукта.
Разработчики Bitcoin Core позаботились о людях, которых хотят использовать оригинальный кошелек для биткоинов, однако при этом не имеют большого быстрого диска.
Уменьшаем необходимое место на диске для клиента Bitcoin
Для того чтобы использовать усеченный блокчейн нужно использовать опцию -prune=600
Указывать опцию пруне необходимо при старте bitcoin-qt.exe, для этого можно создать ярлык для запуска кошелька и в строке Объект в свойствах ярлыка дописать опцию.
Выглядеть это будет примерно так
C:\Data\bitcoin-0.14.0\bin\bitcoin-qt.exe -datadir=store -prune=600 |
В данном случае я использую две опции при запуске Bitcoin wallet:
-datadir=store эта опция говорит кошельку, что блокчейн и wallet.dat находится в подкаталоге store каталога программы, вы можете не указывать эту опцию, и каталог с базой данных транзакций и файлом кошелька будет размещаться по-умолчанию в C:\Users\[имя вашего пользователя в Windows]\AppData\Roaming\Bitcoin
-prune=600 — Уменьшить размер хранилища за счёт обрезания (удаления) старых блоков. Будет разрешён вызов RPC метода pruneblockchain для удаления определённых блоков и разрешено автоматическое обрезание старых блоков, если указан целевой размер в Мб. Этот режим несовместим с -txindex и -rescan. Внимание: переключение этой опции обратно потребует полной загрузки цепи блоков. (по умолчанию: 0 = отключить обрезание блоков, 1 = разрешить ручное обрезание через RPC, >550 = автоматически обрезать файлы блоков, чтобы они были меньше указанного размера в Мб)
Смотрим help по командам, запускаем bitcoin-qt.exe /help
Получаем список опций командой строки Bitcoin Core
Из справки становится понятно, что можно указывать минимальное значение prune=551.
Создаем ярлык для запуска Bitcoin Core c опциями datadir и prune и их значениями.
А куда команду вводить?
Сорри, никак не допишу нормально статью.
Добавил скриншот.
Нужно создать ярлык для запуска Bitcoin Core и добавить в ярлыке, там где путь к файлу, который запускать, команду
-prune=600
как на картинке
Работает ли эта команда на убунту ? и можна ли ее запускать при первом запуске коре и старте кошелька
Roman, на Убунту не пробовал.
Да, можно при первичном, можно и на существующей базе.
Скачал Bitcoin Core 0.14.0 заново. Вроде сгенерированный адрес на который отправил деньги там опять появился. Но в созданном ярлыке команду добавляю к имени файла, а он не запускается, выдает имя конечного файла задано неверно.
Витя, в том же каталоге, где находится bitcoin-qt.exe, делаем ярлык на bitcoin-qt.exe, дальше открываем свойства ярлыка и там где Объект, как на картинке добавляем -prune=600, нажимаем Ок и все должно работать.
Проверено не один раз!
Здравствуйте . Загружается кор уже третий день.поторопился создал номер на который закинули деньги. Как можно их получить не дожидаясь синхронизации?
Если есть возможность. По подробнее ,я не очень соображаю в технике
Максим, нужно дождаться синхронизации,
можете урезать блокчейн командой -prune=600
на обычном компьютере обычно за ночь проходит полная синхронизация.
Пожалуйста. Напишите пошагово как это сделать. И при этом я не потеряю деньги на счету?
Главное сделайте резервную копию wallet.dat
Пошагово, я описывал Вите, пару комментариев выше, два действия, никаких сложностей не должно быть.
Спасибо.
А я могу не потеряв кошелек синхронизировать на другом компьюторе?
Конечно, можно запустить синхронизацию на другом компьютере, а потом заменить wallet.dat на том компьютере своим и должен появиться баланс.
Что такое wallet.dat ? Где он ?
Это самый важный файл, собственно кошелек.
Без этого файла или без пароля к нему, если он запаролен, не видать денежек.
А где он, можно найти поиском.
Спасибо!!!
Запустил с ключем -prune=600… дальше качает весь блокчейн
0.14.2 версия биткоин коре
Написано: «Несмотря на некоторые уступки в плане безопасности»
Как бы оценить насколько менее безопасно с опцией -prune=600?
Наверное довольно безопасно, ведь можно проверить баланс и сделки в блокчейне, через любой специализированный сайт.
Игорь, наверное как-то не так запустили, удалите каталог блокчейна, сохранив перед этим wallet.dat и попробуйте заново.
И качать он будет тоже много, просто сохранять меньше и быстрее это все произойдет.
Возникла проблема с флагом prune.
Появилась ошибка: «Вам необходимо пересобрать базу данных с помощью -reindex. Произойдет полная перезагрузка блоков».
Попробовал решить через перетыкивание флага, сначала ошибка оставалась, потом все блоки стали скачиваться опять заново. Придется месяц, наверно, опять скачивать все)
Что нужно делать, чтобы не было повторения такой ситуации в будущем?
Спасибо
Не подскажите как урезать bitcoin core кошелек на Mac OS ?
Евгений, пруне правильно работает только если запускать с нею первый раз на чистую, если что-то пошло не так с базой, то проще очистить все, кроме валлет.дат и оно пересоздаст.
Возможно вы некорректно выключили кошелек. Или был сбой компьютера — из-за этого повреждается база и нужно пересканирование. А так как база не полная, то пересканирование сделать не может.
В любом случае это намного быстрее чем полная синхронизация и занимает в 50 раз меньше места.
Александр, про МАК не подскажу, возможно точно так же. Посмотрите хелп по ключам.
Доброго времени. На версии 0.15.1 работает данная команда?
Доброго,
работает
Добрый день!
Спасибо за статью!
Потратил на синхронизацию дней 5 наверное, только когда это дело в конец надоело, начал искать решение. Нашел вначале копию вашей статьи — потому вышел на оригинал. (Вероятно у вас копируют тексты).
Спасибо за совет.
а если при установке указал каталог данных в той же папке где установлен сам клиент, как правильно написать «-datadir=» ? еще и название папки на русском языке, так и писать -datadir=d:\Название папки\Bitcoin\ -prune=600 ?
Т.е. если у меня база лежит на диске D и я не укажу опцию -datadir=store , то база переместится в папку по умолчание на диск С ?
да, если не указать, будет создан каталог по-умолчанию в папке текущего пользователя
wallet.dat в другом кошельке возможно запустить? На легком
в новой версии работает?
в новой
Sergei,
похоже работает и в новой версии.
Аноним, так просто wallet.dat, насколько я знаю, запустить нельзя, как вариант сделать экспорт приватного ключа для каждого вашего адреса и импортировать в легкий кошелек.
Для этого не нужно качать весь блокчейн, достаточно запустить bitcoin core, перейти в консоль и выполнить команду экспорт приватного ключа для определенного адреса, например так
dumpprivkey 3BGV9gbKLApUghYfaUairwXXr919uWfTHo
подскажите если с торрента скачать все блоки и вставить свой wallet.dat ,запустится или нет?
что то не получается урезать ,все равно качает все по новой,какие только не подставлял команды
sergei,
оно и должно качать все, просто это будет немного быстрее и не занимает много места.
Самое простое — нужен легкий кошелек и импортировать туда приваткей. Как это сделать я писал вышел.
Или может есть какой-нибудь web wallet, но это риск.
Если скачать правильно с торрента, то должен запуститься, но это все морока, и скорее всего будет рескан делать, а это тоже не быстро, если медленный HDD.
Подскажите пожалуйста, в чем моя ошибка?
по умолчанию в свойствах ярлыка кошелька путь указан был (с кавычками):
«C:\Program Files\Bitcoin\bitcoin-qt.exe»
Для смены каталога и обрезки блоков в поле «Объект» ярлыка кошелька изменяю так:
«C:\Program Files\Bitcoin\bitcoin-qt.exe -prune=600»
при этом ошибка:
Имя конечно файла задано неправильно!
Скорее всего связано с пробелом в Program Files
попробуйте скопировать в другую папку, чтобы в пути не было пробела.
Или как сказано на одном из сайтов
«C:\Program Files (x86)\Bitcoin\bitcoin-qt.exe» -datadir=d:\BitcoinData
путь и название файла возьмите в кавычки, а prune как параметр вынесите
Да, действительно. Я также нашел информацию об этом в других источниках.
Но все равно, спасибо за оперативный ответ.
Ошибка была в кавычках.
Указал:
«C:\Program Files\Bitcoin\bitcoin-qt.exe» -datadir=D:\BTC -prune=600
все получилось.
Только скорость скачивания (по сравнению с версией блокчейна без обрезки) нисколько не уменьшилась. Объем только уменьшился базы, а скорость синхронизации, по-моему, стала даже меньше (может за счет дополнительной операции по обрезке файлов), хотя с другой стороны мЕньшие по объему файлы должны копироваться быстрее…
Это какой-то кошмар) 3й день колдую с этим кошельком. Хочу сохранить только секретный ключ и все, чтобы без всяких флэшек. Но оказывается это сделать крайне сложноо, ведь в кошельке несколько адресов, на одном чуть чуть битка, на друугом еще немного, + еще другие кошельки ДЛЯ ОТПРАВКИ. Какая-то полная каша. Попробовал вытащить приват ключ с самого «жирного» адреса, полчилось, загрузил его, баланс верный. Но вот вопросы есть:
1. Как перекинуть биткоин с других адресов?
2. Что будет если на адрес с приватключем отправить деньги, не перекинуться ли они на какой-нибудь другой адрес с изначального кошелька?
3. Как вообще корректно заиметь приватный ключ от четкого одного адреса, на который можно прислать биткоин и отправить с него, с ОДНОГО АДРЕСА?
Стас, там ничего хитрого если знать
Чтобы вытащить приватник не обязательно синхронизировать весь блокчейн, достаточно подсунуть файл кошелька и запустить bitcoin core. Дальше из консоли вытащить приватник, а потом этот приватный ключ можно импортировать в легкий кошелек типа Electrum.
Чтобы перекинуть с других адресов, нужно импортировать и их и перекинуть с каждого всю сумму одной транзакцией на один новый кошель.
Посмотрите мой комментарий от Июл 12, 2018 at 23:49 для ответа на третий вопрос.
Здравствуйте, Antonio!
Помогите, пожалуйста, разобраться.
Ранее имел НЕурезанный блокчейн, на котором появилась так называемая «неустранимая ошибка» при закрытии уведомления о которой — окно кошелька также закрывалось. До появления ошибки — баланс отображался корректно.
По этой причине, а также для экономии места на диске решил удалить старый блокчейн и загрузить новый — но уже УРЕЗАННЫЙ. Сделал (на разных этапах) копии кошелька и начала скачивать урезанный блокчейн.
На сегодняшний день еще не докачал до конца урезанный кошелек (скорость на оставшихся 40 неделе сильно упала), но уже перешел дату получения ранее отображавшихся на кошельке своих транзакций, так вот в УРЕЗАННОМ блокчейне (со старым файлом кошелька — с НЕУРЕЗАННОГО блокчейна) баланс не показывается :-(.
В чем может быть причина? Дождаться полной синхронизации? Или баланс УЖЕ должен был показаться (после пересечения даты старых транзакций)?
Добрый день, vvv.
По-идее баланс должен появится, но лучше дождаться окончания, в любом случае проверить если ли средства можно в блокчейн-эксплорере в интернете, введя адрес кошелька.
Добрый день . Подскажите пожалуйста как мне делать следующий запуск кошелька Bitcoin Core , после того как я Запустил его с командой Reindex ( D:\Bitcoin\bitcoin-qt.exe -reindex ). С командой
(D:\Bitcoin\bitcoin-qt.exe -prune = 550 ) ?
Pavel, реиндекс делает реиндексацию по всем загруженным блокам, а пруне нужно, чтобы их не хранить, если на диске мало места. В общем если нужно пруне, то нет смысла реиндексировать, так как это долго. Можете удалить все блоки и сразу запускать с пруне, но качать все равно придется, просто не будет хранить.
Возможно проще использовать легкий кошелек, если компьютер не очень мощный, иначе это затянется на долго.