Soy consciente de la pérdida de datos causada por la eliminación de los primeros N bloques. Pero tengo curiosidad por saber si tal tarea es posible o no. Si es así, ¿cómo implementarlo en la práctica?
Con blockchains, básicamente puedes hacer cualquier cosa con una bifurcación dura. En el caso de cadenas de bloques privadas, será mucho más fácil obtener consenso para una bifurcación dura, tal vez tan fácil como que la autoridad que ejecuta la cadena de bloques dicte que todos deben aceptar una actualización.
El bloque de génesis está codificado en el software. Para reasignar un bloque posterior para que sea el nuevo bloque de génesis, deberá codificar ese bloque en una versión más nueva del software. Esto solo será reconocido como válido por los nodos que ejecutan la versión más reciente del software. Asumiendo que obtener el consenso no es un problema, esto es posible.
Otra cosa a tener en cuenta es la altura del bloque y todos los cálculos basados en ella. Es fácil modificar el cliente para comenzar a contar en N+1, pero es posible que esto también deba tenerse en cuenta cuando se realizan los cálculos. Esto afectará cosas como objetivos de dificultad y mitades. Si modifica todo el código relevante para tener esto en cuenta, debería poder mantener las cosas funcionando correctamente.
pieter wuille