¿Tiene que descargar todas las 'entradas de estado nuevo importadas' antes de sincronizar con el bloque más alto?

Soy nuevo en Geth...

Estoy realizando una sincronización rápida usando el siguiente comando:

geth --syncmode "fast" --cache 4096

Había estado descargando datos de bloques hasta aproximadamente 1000 bloques desde el bloque más alto. Luego, la capacidad de descargar bloques se ralentizó significativamente/se detuvo y ahora recibo lo siguiente:

INFO [05-01|21:31:20] Imported new state entries               count=1467 elapsed=7.016ms   processed=131239 pending=23492 retry=2   duplicate=0 unexpected=63

Me doy cuenta de que currentBlock:y highestBlock:no se actualizan después de un tiempo, pero knownStatespulledStates.

> eth.syncing
{
  currentBlock: 5540855,
  highestBlock: 5540944,
  knownStates: 1,
  pulledStates: 0,
  startingBlock: 5540855
}
> eth.syncing
{
  currentBlock: 5540855,
  highestBlock: 5540944,
  knownStates: 14130,
  pulledStates: 6264,
  startingBlock: 5540855
}

¿Es este comportamiento normal para la sincronización rápida? ¿Se descargan más bloques y el bloque más alto se actualiza nuevamente o tengo que detener y reiniciar la consola geth?

Sí, es un comportamiento totalmente normal.
Todavía tengo que sincronizar con la cadena de bloques de Ethereum. No estoy seguro de por qué en este punto, pero para futuros lectores... cerrar geth y reiniciar parece permitirme descargar algunos bloques más. Cuando estoy a unas 100 cuadras de distancia, por alguna razón no puedo descargar más bloques, así que siempre detrás del bloque más actual. Publicaré los resultados si encuentro una solución exitosa.
Geth primero sincronizará el bloque y luego "estados" hasta el último bloque sincronizado, luego se repetirá, si tiene un buen disco, la segunda vez finalizará la sincronización. desafortunadamente, geth no es compatible con HDD actualmente y la sincronización no finalizará.
Gracias Ismael estaba usando un HDD. Encontré un nuevo ángulo para atacar este problema.

Respuestas (1)

Después de investigar y probar, resulta que un usuario no tiene que descargar "Entradas de estado importadas" antes de sincronizar con la red Ethereum. El usuario ahora tiene la opción de establecer un Nodo Ethereum o un Nodo Ethereum Light.

En lugar de usar el geth --syncmode "fast"comando, que establece un Nodo Ethereum...,

use geth --syncmode "light"el comando, que establece un Ethereum Light Node.

Para realizar esto, descargué la última versión de Ethereum Wallet (0.10.0) que usa Geth 1.8.2. Al iniciar la aplicación Ethereum Wallet, la descarga de todos los encabezados de bloque, que solo es requerida por Ethereum Light Nodes (sin entradas de estado), la sincronización tomó 15 minutos. Estaba usando un HDD para la prueba. Luego pude abrir MIST (0.10.0) e implementar un contrato inteligente con éxito.

Recomiendo a cualquiera que no use una unidad de estado sólido (SSD) que use el método Ethereum Light Node. Es increíble lo rápida que es la sincronización.

nota: esto depende de lo que quieras hacer. Para algunas tareas, como el mempool 'global', necesitará un nodo completo y, por lo tanto, el cliente ligero no funcionará