Una razón común para que Geth falle puede ser el paro inesperado de una máquina validadora. Geth utiliza RAM para memoria temporal y durante un cierre ordenado alguna información importante será escrita en el disco; sin embargo, durante un cierre ordenado, no hay tiempo suficiente para escribir en el disco (por ejemplo: durante la perdida de energía electrica, así que se pierden datos importantes.) Esta perdida de datos lleva a una corrupción de la carpeta chaindata
, el cual requiere de una resincronización.
-
Ubicación estándar de la carpeta
chaindata
./var/lib/goethereum/geth/chaindata/
-
Ubicación estándar de la carpeta
ancient
./var/lib/goethereum/geth/chaindata/ancient
¡Buenas noticias! La resincronización requerida se puede hacer mucho más rápido que una resincronización completa simplemente manteniendo la carpeta ancient
. La carpeta antigua contiene archivos que no se dañan durante un apagado inesperado.
-
Detiene Geth.
-
Mueve la carpeta
ancient
.sudo mv /var/lib/goethereum/geth/chaindata/ancient /var/lib/goethereum/geth/
-
Borra el directorio
chaindata
y vuelve a crearlo.sudo rm -rf /var/lib/goethereum/geth/chaindata sudo mkdir /var/lib/goethereum/geth/chaindata
-
Mueve la carpeta antigua de regreso al directorio
chaindata
que ahora está vacío.sudo mv /var/lib/goethereum/geth/ancient /var/lib/goethereum/geth/chaindata
-
Cambia el propietario del directorio
chaindata
al usuario Geth.sudo chown -R goeth:goeth /var/lib/goethereum/geth/chaindata sudo chmod 755 /var/lib/goethereum/geth/chaindata sudo chmod 755 /var/lib/goethereum/geth/chaindata/ancient
-
Inicia Geth.
¡Felicidades! Has iniciado éxitosamente una resincronización de Geth 🥳
Si la carpeta antigua no exista, no es un problema. Solo significa que necesitarás resincronizar Geth desde cero, el cual tomará más tiempo.
-
Detiene Geth.
-
Elimina el directorio
chaindata
y lo vuelves a crear.sudo rm -rf /var/lib/goethereum/geth/chaindata sudo mkdir /var/lib/goethereum/geth/chaindata
-
Confirma el propietario y los permisos para la carpeta
chaindata
están configurados al usuario Geth.sudo chown -R goeth:goeth /var/lib/goethereum/geth/chaindata sudo chmod 755 /var/lib/goethereum/geth/chaindata
-
Inicia Geth.
¡Felicidades! Has iniciado una resincronización de Geth exitosa. 🥳