Por lo general, no mantengo mi instancia de Geth en ejecución, pero me gustaría mantener sincronizada mi cadena de bloques de Ethereum para que el inicio de Geth no sea lento. Razono que puedo crear un cronjob para esto.
Así que mi pregunta es: ¿cómo puedo saber geth
si hay que iniciar, sincronizar y luego salir de inmediato?
Usa la clave:
--exitwhensynced
(Sale después de que se completa la sincronización de bloques)
Con respecto a https://github.com/ethereum/go-ethereum/wiki/command-line-options
Otra respuesta que no buscaste:parity --mode passive
Lo sé, parity
no lo es geth
, pero --mode passive
hace exactamente lo que pediste.
--mode MODE Set the operating mode. MODE can be one of:
last - Uses the last-used mode, active if none.
active - Parity continuously syncs the chain.
passive - Parity syncs initially, then sleeps and
wakes regularly to resync.
dark - Parity syncs only when the RPC is active.
offline - Parity doesn't sync. (default: last).
Estoy usando el passive
modo en todos mis dispositivos, porque entra en modo de suspensión después de sincronizarse durante aproximadamente una hora y luego vuelve a buscar nuevos bloques. Esto ahorra muchos recursos la mayor parte del tiempo en mis máquinas.
Ver también:
--mode-timeout SECS Specify the number of seconds before inactivity
timeout occurs when mode is dark or passive
(default: 300).
--mode-alarm SECS Specify the number of seconds before auto sleep
reawake timeout occurs when mode is passive
(default: 3600).
No sé por qué necesita Geth específicamente, pero es posible que Parity sea la solución que está buscando.
Específicamente, Parity permite la sincronización de modo que el contenido de los bloques no se verifique y su cliente simplemente descargue la versión más actualizada del estado. Esto se puede ejecutar usando parity --warp
y eliminará el largo tiempo de sincronización que está experimentando con GETH.
--warp
, todo el conjunto de datos de la cadena de bloques se descargará eventualmente, solo que la mayoría de los datos se sincronizan en segundo plano. Si el OP quiere un conjunto completo de datos de cadena, entonces --warp
realmente no acelera las cosas.--warp
, lo que le brinda el mismo corte de tiempo sin siquiera tener que ejecutar esto de manera constante. En última instancia, se trata de confiar en que las confirmaciones que se han producido mientras no estabas son legítimas y no fraudulentas.--warp
no disminuye la cantidad de datos de blockchain descargados. Primero sincroniza un subconjunto de los datos en un pase inicial y luego, en segundo plano, llena los espacios vacíos con el resto de los datos. Es el pase inicial que toma un orden de minutos y en el que se basa el titular "sincronizar en 10 minutos". No creo que haya una manera de detener la sincronización después de este paso inicial; si la hubiera, entonces sí, el OP tendría que confiar en este subconjunto de datos. Tal como están las cosas, también tendría que tener en cuenta la segunda etapa de sincronización en segundo plano en su secuencia de comandos cron.
galáhad
Mateo Piziak
Mateo Piziak