Начальная синхронизация узла Bitcoin

Установив десктопный кошелек BitcoinCore, при первом запуске программа требует синхронизации с сетью Bitcoin. Необходимо загрузить Blockchain сети Биткоин, который занимает около 200 гигабайт памяти. Несмотря на быстрый интернет, процесс синхронизации десктопного кошелька с сетью Биткоин происходит очень долго, иногда несколько дней. Почему так происходит? Ответ на этот вопрос читайте в статье и смотрите видео.

Подписывайтесь на youtube канал Школи Биткойн

Вопрос Антонопулос: «Почему так много времени занимает загрузка blockchain? У меня есть быстрое подключение к Интернету, и я могу загрузить 200 гигабайт менее чем за час.»

Это то, что называется начальным загрузкой блокчейна или IBD, которое является первой синхронизацией узла биткоин или любого типа узлов блокчейна. И ответ заключается в том, что в то время как объем данных, необходимых для загрузки, чтобы получить актуальный узел, составляет около 200 гигабайт, это просто загрузки и хранения информации на диске.

Одной из основных функций узла биткоинив является проверка всех правил консенсуса, и ваш узел делает это, даже если вы не полностью синхронизировали блокчейн. Каждый узел проверяет все данные на соответствие правилам. Итак, когда вы начинаете с блока Genesis (блок 0), и вы загружаете его, а затем блок 1 и блок 2 и т.д., и вы начинаете строить цепочку блоков, формируя актуальную версию полного блокчейна и полностью синхронизации с остальной частью сети . Каждый загруженный вами блок загружает все транзакции в этом блоке, которые проходят через ваш узел, и полностью проверяются, все подписи, все промежутки, все суммы, все отчеты coinbase, все комиссии. Ваш узел воспроизводит и реконструирует каждый softfork и обновляет изменения в коде, копируя всю историю с 3 января 2009 года. Он ведет себя как узел в 2009 году в течение первого периода загрузки блокчейна, а потом, когда правила меняют, он подсчитывает голоса в софтфорке и меняет правила в реальном времени, а затем оценивает каждый блок сети на основе новых правил в пересчете сложности и видит, хватало в Майнер мощности для блоков 2010 года.
Он оценивает каждое правило так, как будто он в это время загружает его в первый раз. Таким образом, он имитирует жизнь системы Биткоин с 2009 года, а затем в 2010 году и т.д. до сегодняшнего дня, учитывается каждая ошибка, каждый форк, каждое изменение.
Поэтому синхронизация узла с сетью Биткоин это больше, чем просто пропускная способность сети, это еще работа процессора, а также индексация диска, необходима проверка, не является транзакция двойной, или правильно ли она израсходована. Узел Биткоин должен сохранить UTXO в памяти, этот набор UTXO, узел будет использовать, чтобы проверить, была ли эта сумма доступна для расходов. Таким образом, узел Биткоин должен индексировать все UTXO и идентификаторы транзакций, когда ваша транзакция относится к предыдущей транзакции, процессор должен искать ее хэш. Он должен восстановить корни merkel всех блоков и сохранить весь блокчейн, хэш из предыдущего блока и т.д. Многие индексации базы данных. Это то, что происходит с вашим узлом.

Настоящая проблема долгой синхронизации узла не в пропускной способности сети интернет, а, вероятно, в пропускной способности жесткого диска и оперативной памяти. Рекомендуемая минимальная конфигурация компьютера включает в себя 4 гигабайта оперативной памяти и относительно быстрый SSD-диск, для индексации, чтение записей из базы данных на диске, которые будут происходить. Если у вас нет SSD диска, вам необходимо гораздо больше кэширования в оперативной памяти, чтобы компенсировать производительность старого механического жесткого диска, и в этом случае вам может понадобиться 8 или 16 гигабайт оперативной памяти.

Итак, ваше «слабое место» — это дисковый ввод / вывод, возможно, процессор, хотя это менее вероятно. Если вы используете его на Форке или в современном поиска, это не должно быть проблемой. Если вы делаете все это на RaspberryPi только с 2 гигабайтами оперативной памяти, я могу понять, в чем проблема. Проблема в слабых мощностях вашего компьютера, а не пропускной способности вашего интернет соединения.

Начальная синхронизация узла Bitcoin обновлено: Ноябрь 21, 2018 автором: SchBit