Как биткойн-клиенты обновляются после простоя?

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

загляните сюда: transifex.com/bitcoinbook/mastering-bitcoin/languages ​​Книга Андреаса «Mastering Bitcoin» уже переведена на многие языки и служит хорошим началом для изучения этого вопроса. Существует также онлайн-версия книги (на английском языке). Ответов на ваши многочисленные вопросы было бы слишком много... Этот форум предназначен для того, чтобы один за другим поднимать простые вопросы...
@pebwindkraft спасибо за ресурс! Мне действительно интересен только общий процесс того, как клиенты получают новые блоки после простоя. Все остальное окружает эту концепцию. Я не смог найти ничего другого в Интернете, что объясняет, как клиент получает изменения в основной цепочке блоков.

Ответы (1)

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

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

Отличное объяснение! Спасибо! Не могли бы вы объяснить подробнее ваше последнее предложение?
Если цепочка выглядит недействительной для узла, но она довольно длинная, он будет удивляться, почему сеть продолжает ее расширять, потому что сеть должна отбрасывать недействительные блоки. Поэтому, если он превышает определенную длину, узел выдаст предупреждение пользователю, потому что наиболее вероятной причиной является хардфорк, который требует обновления клиентского программного обеспечения.