Как уменьшить размер данных цепочки блоков на моей машине?

Файл цепочки блоков становится довольно большим, ~ 500 МБ. Есть ли способ обрезать его или очистить, или, может быть, настроить его так, чтобы он был ограничен в будущем? Я использую стандартный биткойн-клиент на Ubuntu.

Ответы (6)

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

Кроме того, на момент написания этой статьи место на жестком диске составляет около 50 долларов за ТБ, что означает, что цепочка блоков размером 500 МБ будет стоить вам около 2,5 цента за хранение — « эгоистичный клиент» может быть не слишком неприятным прозвищем, в конце концов.
Для дискового пространства на пластине да, но моя основная машина — это SSD, который стоит около 2 долларов за ГБ по сравнению с 0,6 доллара за ГБ, а при 60 ГБ вы должны следить за этим. Я также, возможно, захочу изучить устройства для точек продаж, которые могут использовать простые твердотельные накопители емкостью 12 ГБ или 16 ГБ, и это может быть рассмотрено.
@DavidPerry Каковы риски безопасности при отсутствии всей цепочки блоков?
@Pacerier, насколько мне известно, нет никаких серьезных рисков для безопасности, у вас просто неполный набор данных. Пока набор данных содержит все блоки, относящиеся к интересующим вас адресам (т. е. тем, которыми вы владеете), проблем быть не должно.
@browep Большинство устройств в точках продаж, на которые вы ссылаетесь, уже выполняют транзакции по кредитным картам через сервер в задней комнате или в любом случае через подключенное встроенное устройство. Биткойн имеет встроенный механизм RPC именно для таких целей, не говоря уже о таких сервисах, как bitpay. Это может не помочь сохранить ваш дорогой SSD, но вы являетесь крайним случаем — почти в каждом случае либо а) место на жестком диске дешевое, либо б) RPC/bitpay/ewallet — лучший (и вполне разумный) вариант.

Если вы хотите использовать стандартный клиент, в настоящее время нет возможности обрезать данные блокчейна. Тем не менее, вы можете попробовать использовать облегченный клиент (например, MultiBit или Electrum ), который обеспечивает такую ​​же безопасность, как и стандартный клиент (wallet.dat хранится на вашем компьютере), или электронный кошелек (например , StrongCoin , или даже использовать MtGox , если вы этого не хотите). t нужно слишком много функциональности), но тогда вы должны доверять этому сервису.

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

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

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

Короткий ответ - нет.

Биткойн-клиенту требуется вся цепочка блоков для проверки транзакций, а цепочка блоков в настоящее время составляет около 500 МБ. Со временем он будет становиться все больше и больше.

ПРИМЕЧАНИЕ. Не используйте это решение. Для нынешних клиентов это уже неактуально. См. другие ответы для предложений о том, как использовать неполные представления блокчейна.

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

  1. Скопируйте файл wallet.dat из каталога данных, затем удалите каталог данных. Перезапустите клиент, чтобы он снова создал каталог данных и загрузил цепочку блоков. Остановите клиент, замените файл wallet.dat вашей резервной копией. Перезапустите клиент с параметром -rescan.
  2. Сделайте резервную копию всего каталога данных и удалите его. Запустите клиент снова, создав новый каталог данных и загрузив цепочку блоков. Скопируйте адрес из клиента. Закройте клиент, сделайте резервную копию нового каталога данных как другую резервную копию. Восстановите старый каталог. Запустите клиент и переведите все свои монеты на новый адрес. Затем вы можете восстановить резервную копию номер 2 каталога данных и отказаться от старого каталога. В этом случае вам не нужно перезапускать клиент с параметром -rescan.

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

Поможет ли это на пути к космосу? Цепочка блоков — это цепочка блоков, и она становится довольно большой.
Я оставлю это здесь для исторической ценности и во избежание дублирования этого ответа в будущем, но это больше не актуальное решение. Возможно, в более ранних версиях клиента были некоторые неэффективности, но сейчас нет никаких доказательств этого. Как отмечают @lemonginger и другие, цепочка блоков — это то, чем она является, любое решение будет включать отказ от использования полной цепочки блоков.

Вы можете использовать команду -prune при выполнении ядра. Это сократит блоки, которые поддерживает ваш клиент, до самых необходимых. Для меня это сократило размер папки btc Blocks на треть.

Добавьте -prune в конец вашей командной строки, когда вы запускаете исполняемый файл bitcoincore.

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

Вы также можете добавить -prune в конец (вне кавычек) целевого текста в свойствах ярлыка графического интерфейса bitcoincore.

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

Чтобы Биткойн заменил доллар, вам нужно было бы иметь всю экономику США на каждом компьютере. Этого не может быть.

Чтобы исправить это, нам придется модифицировать систему цепочки блоков, а это ЧЕРТВЕННО ОПАСНО, потому что, несмотря на все скандалы вокруг Биткойна, сам Биткойн неизменен, никогда не было обнаружено ничего неправильного в его фактической структуре данных.

На самом деле в ядре Биткойн были уязвимости... см., например , en.bitcoin.it/wiki/Incidents.