Я знаю о потере данных, вызванной удалением первых N блоков. Но мне любопытно узнать, возможна ли такая задача или нет. Если да, то как это практически реализовать?
С блокчейнами вы можете сделать что угодно с помощью хардфорка. В случае с частными блокчейнами вам будет гораздо проще добиться консенсуса в отношении хард-форка, возможно, так же просто, как управляющий блокчейном орган, диктующий, что все должны принять обновление.
Генезисный блок жестко запрограммирован в программном обеспечении. Чтобы переназначить более поздний блок новым блоком генезиса, вам нужно будет жестко закодировать этот блок в более новой версии программного обеспечения. Это будет признано действительным только узлами, на которых установлена более новая версия программного обеспечения. Предполагая, что достижение консенсуса не является проблемой, это возможно.
Еще одна вещь, на которую следует обратить внимание, — это высота блока и все расчеты, основанные на ней. Клиент легко модифицируется так, чтобы он начинал подсчет с N+1, но это также может потребоваться учитывать при выполнении расчетов. Это повлияет на такие вещи, как цели сложности и деление пополам. Если вы измените весь соответствующий код, чтобы принять это во внимание, вы сможете поддерживать правильную работу.
Питер Уилле