По состоянию на ноябрь 2012 года размер блокчейна составляет почти 3 ГБ с почти линейным ростом около 500 МБ в месяц (я думаю, это сокращение от экспоненциального роста из-за жестко запрограммированного ограничения размера блока).
Я хочу установить Биткойн на свой обычный ноутбук: загрузка и проверка последней версии bootstrap.dat из Bitcoincharts заняла несколько часов (5–9, я думаю), но это было всего 2,3 ГБ! Теперь я ждал, пока Биткойн догонит последние 2-3 месяца, когда блоки были значительно больше, и каждый блок обрабатывается около 5 секунд, с моим процессором на ~ 25% и моим жестким диском. максимальная рабочая нагрузка.
Это, мягко говоря, неустойчиво.
Нам нужна система, в которой можно загрузить уже проверенный блокчейн и напрямую скопировать в папку с биткойнами, возможно, в инкрементной форме. Источник должен быть доверенным, для этого нужна система проверки, в которой каждый может проверить правильность блокчейна, а затем подписать его, я бы предложил использовать для этого ключи gpg.
Затем исходный код можно распространять, например, через серверный торрент.
Возможно ли это технически и как?
Изменить: поскольку я подошел к этому с неправильным мышлением, я опубликовал дополнительный вопрос о рисках безопасности легковесных клиентов. Должен ли конечный пользователь загружать весь блокчейн? Или достаточно «облегченного» клиента?
Уже есть загружаемые версии блокчейна. В принципе нет проблем в том, чтобы они были подписаны GPG несколькими доверенными людьми. Однако:
Это несколько ослабляет безопасность. С самим программным обеспечением вы можете доверять подписям и проверять код. При проверке данных блокчейна это невозможно.
В будущих версиях будет использоваться другой формат БД, который позволяет проводить гораздо более быструю проверку, поэтому не будет большого преимущества для системы, в которой проверка не требуется, но загрузка данных по-прежнему необходима.
В долгосрочной перспективе конечные пользователи не будут использовать полный клиент, а скорее (в лучшем случае) клиент SPV, которому не нужно загружать или проверять всю цепочку блоков.
Технически это, безусловно, возможно (запустите -detachdb
и скопируйте каталог базы данных), но вопрос в том, захотите ли вы этого.
Во-первых, сделайте шаг назад. Биткойн предназначен для работы с разумной безопасностью на легковесных узлах (см. «Упрощенная проверка платежей» в статье Сатоши ). Единственное, что требуется легковесным узлам доверия, — это то, что цепочка с наибольшей работой в ней также содержит действительные транзакции. Такие легкие узлы требуют несколько мегабайт загрузки для синхронизации и практически не загружают ЦП или диск. Примеры реализации таких узлов включают Multibit или Bitcoin Wallet для Android .
Причина, по которой это возможно, заключается в том, что легковесные узлы предполагают, что существуют полные узлы, которые все проверяют, и что ни один майнер не рискнет создавать блоки, содержащие недействительные транзакции (очень разумное предположение, поскольку в нормальной сети такие блоки будут игнорироваться). всеми остальными). Эти полные узлы образуют основу безопасности сети, и, поскольку они проверяют все, им по существу не требуется никакого доверия. Это одно из основных свойств Биткойна, которого нет почти ни в одной другой платежной системе: привилегия не доверять никому.
Если вы собираетесь загрузить предварительно проиндексированную цепочку блоков, вы отказываетесь от этой привилегии. По сути, вы будете доверять одному человеку (может быть, нескольким, если вы действительно утруждаете себя проверкой подписей), чтобы сказать вам, какие транзакции в истории биткойнов были действительными. Это гораздо более сильное предположение, чем то, которое вы делаете при запуске облегченного клиента. Если кто-то смог испортить (даже непреднамеренно!) такую загрузку, и она использовалась многими людьми, риском может быть разветвление сети. Это может быть катастрофой.
Итак, если вы считаете, что ваша система не может справиться с текущей нагрузкой при запуске полного узла, просто запустите облегченный узел. Если упрощенное программное обеспечение не предлагает нужных вам функций, поощряйте их реализацию — со временем они потребуются.
В качестве примечания: следующий выпуск (0.8) Bitcoind/Bitcoin-Qt должен быть намного быстрее, особенно на оборудовании с медленным вводом/выводом.
Вы можете выбрать, откуда скачать!
См. Каков самый быстрый способ загрузки блокчейна?
Я описал, как указать биткойн-клиенту подключаться к пользовательским узлам. Таким образом, вы можете сказать биткойну, например, подключиться к основным узловым узлам.
В этом есть 2 преимущества:
А) полный контроль, кому доверять
B) Скачивание биткойн-блокчейна.
Профпач
Мени Розенфельд
Стивен Горник
Питер Уилле
Сидвелл