¿Cómo eliminar o restablecer la cadena de bloques en geth? (OSX)

Tengo una cadena de bloques corrupta y quiero reiniciar la cadena. ¿Qué necesito eliminar para comenzar a descargar la cadena desde cero?

Sé que hay 2 carpetas ethereum (estoy en OSX):

$home/.ethereum
$home/Libary/Ethereum

Actualicé geth recientemente a "Homestead" 1.3.5 y obtuve un error en la terminal como:

E0306 ... 3211 trie.go:309] Dangling hash node ref 3c6233326.... leveldb: not found

y a veces recibo una advertencia de bloque defectuoso:

Bad block #1102797
Actualicé geth a v 1.3.5, pero también instalé eth hace un tiempo (v 1.1.0 / eth newtwork protocol version: 61). No usé mucho los dos, solo los encendí de vez en cuando.

Respuestas (3)

Para geth, elimine $home/Libary/Ethereum/chaindata. Eso debería eliminar la propia cadena de bloques y permitirle sincronizar desde cero. También es probable que desee realizar una sincronización rápida después para volver rápidamente a la cadena --fast.

¿Empezarías getha recargar la cadena o directo con geth --fast?
geth --fast --cache=512 consolees como yo personalmente empezaría geth :D
¿No es más cuidadoso usar "geth removeb" en su lugar? Es su propósito.
Para MacOSXrm -R ~/Library/Ethereum/geth/chaindata/
geth removedb

También puede usar geth removedbpara eliminar la cadena de bloques y las bases de datos estatales.

geth removedb
Remove local database? [y/N] 

Después de eliminar las bases de datos antiguas, ejecute geth --fast --cache=1024(consulte la respuesta a esta pregunta de @eth).

Tenga en cuenta que usar geth --fastle impedirá usar debug.traceTransaction(...)los bloques que se --fastdescargaron. Más información en ¿Cómo verificar el seguimiento de la VM usando Geth? y ¿Cómo se puede detectar el estado de la transacción de un error lanzado cuando el gas puede ser exactamente el mismo que el gas utilizado para una transacción exitosa? .

Consulte también ¿Qué es la sincronización "rápida" de Geth y por qué es más rápida? .

Además, si su PC tiene más RAM, también se puede hacer --cache=4024. Y geth --fast solo se puede usar cuando la base de datos de bloques está vacía. Si ya está descargando los bloques, se recomienda no usar geth --fast

Para otros sistemas operativos , el valor predeterminado datadires:

Mac: ~/Library/Ethereum
Linux: ~/.ethereum
Windows: %APPDATA%/Ethereum

Elimine el chaindatasubdirectorio que encuentre.

Ejecute geth --fast --cache=1024una forma recomendada de sincronizar la cadena rápidamente (no olvide usar una más grande --cachecon un valor como 1024; de lo contrario, el valor predeterminado es 16 y no se sincronizará tan rápido).

youtube.com/watch?v=vPi3nMmaunY : muestra cómo encontrar su carpeta %APPDATA% en Windows 10. Para mí: %AppData%/Roaming/Ethereum/geth/chaindata