Blockchain se atasca si no se extraen bloques

Ayer decidí bifurcar un proyecto, solo por diversión y para aprender más sobre él. Entonces, bifurqué un proyecto, generé mi propio bloque de génesis, cambié las marcas de tiempo, el anuncio, las claves, restablecí el trabajo de la cadena mínima. Todo estuvo bien. Compilado para Windows y Linux, funcionó perfectamente. Configuré una billetera en un servidor Vultr, la otra en mi propia PC, extraje algunos bloques y luego me fui a la cama.

La billetera Vultr siguió funcionando, pero la mía no, la cerré.

Cuando me desperté y abrí la billetera, estaba tratando de descargar bloques. getblocktemplate básicamente dice que está descargando bloques, pero no hay bloques para descargar. Dice "8 horas de retraso".

No estoy seguro si esto se supone que debe pasar.

En mi ignorancia voy a suponer que es normal: ¿cómo lo arreglo sin tener que borrar todo y hacer una nueva cadena?

Si no es normal: ¿Qué hice mal?

Respuestas (1)

En mi ignorancia voy a suponer que es normal: ¿cómo lo arreglo sin tener que borrar todo y hacer una nueva cadena?

Simplemente puede comentar o eliminar el registro getblocktemplatepara que no se produzca un error allí.

También debería poder omitir esto configurando el reloj de su computadora a la hora del bloque más reciente antes de iniciar el software. Una vez que se ha iniciado, puede hacer que el reloj de su computadora vuelva al tiempo real y luego extraer un bloque.

Gracias. ¿Por qué sucede esto? ¿Tiene algo que ver con DEFAULT_MAX_TIP_AGE?
Sucede porque bitcoind (y, por lo tanto, todo lo que se basa en él), usa algunas métricas para determinar si tiene una cadena de bloques completamente sincronizada. Uno de ellos es la edad del bloque más reciente (también conocido como la punta de la cadena de bloques). Si son más de unas pocas horas (2 horas IIRC), entonces cree que no está sincronizado y, por lo tanto, no saldrá de la fase InitialBlockDownload donde algunas cosas están bloqueadas. getblocktemplateestá codificado para que no sea mío cuando la cadena de bloques no está sincronizada, ya que si pudiera, sin darse cuenta podría causar una bifurcación.
Entiendo. Gracias Andrew Explicación impecable.