Хм, а как ты собираешься рассчитывать хеш 1-го блока, если нет предыдущего?
Считать предыдущий хеш = нулю, но это тоже получается будет "захардкоден".
Генезис блок, это тупо точка отсчета ну и монеты иногда туда сыпят при премайне.
Не совсем то, что я имел в виду. Да и кому вопрос адресован? Мы говорили о блокчейне
с системой отсечек, когда база данных начинает в какой-то момент стираться с головы.
В генезис-блоке действительно хэш предыдущего блока забит нулями. Это непринципиально,
так как он вообще по сути захардкоден в коде клиента, валидность его никто не проверяет.
Я задал вопрос - как выбрать mainchain если вам предлагают две цепочки блоков, имеющие
разную "голову" (а раз голова разная, то и хвост будет отличаться). Предложено было измерить
сложность и выбрать цепочку с большей кумулятивной сложностью. Я смутно вижу в этом
проблему, но в двух словах не смогу сейчас привести аргументы почему так нельзя/опасно делать.
И предлагаю вам самим это покумекать и погуглить, какие аргументы высказывались уже
на эту тему - всяко такая идея всплывала уже не один десяток раз.
Самый лучший способ разобраться в проблеме - объяснить другому человеку. Вот и объясните
мне почему так никто не делает.
Даю подсказку.
Итак. Я запускаю клиента и коннекчусь к двум пирам.
Первый пир мне может предоставить цепочку блоков от 100000 до 200000 со сложностью N
Второй пир мне может предоставить цепочку блоков от 300000 до 400000 со сложностью M
Учитывайте, что у нас в первой цепочке неизвестны блоки с 0 по 99999 так что ничего об
их сложности мы не знаем, а число записанное в блоке 100000 (если вы вдруг в блок отсечки
решите туда записать сумму) может быть поддельное. А во второй цепочке неизвестны блоки
с 0 по 299999.
Какая цепочка является mainchain? Рассмотрите два варианта, M > N и M < N