El nodo Geth comienza a sincronizarse desde el principio después de una sincronización rápida

He sincronizado usando el --fastcomando. Ahora como debo proceder?

Intenté detenerlo y luego ejecutarlo geth --rpc, pero dice:

Last Header #1311471
Last Block #0
Fast Block #1310224

¿Qué debo hacer para mantenerme sincronizado?

Hola y bienvenido a Ethereum Stack Exchange. Cuál es exactamente su pregunta. ¿Si pudieras minar en un cliente geth de sincronización rápida?
Usé geth --fast y el encadenado sincronizado hasta casi el número actual. Luego lo detuve y emití el comando geth --rpc para seguir sincronizando y poder minar en otra terminal. Vi que la cadena comenzó a sincronizarse nuevamente desde cero. ¿Hice algo mal o geth --fast no es para minar? ¿Hubo algún otro paso que me perdí? gracias
Mala idea: P Esencialmente, agrupaste todo el trabajo que hizo la sincronización rápida: P La sincronización rápida no procesa todos los bloques, sino que solo los descarga y, una vez que todos los bloques están dentro, descarga el estado actual de la red directamente (es decir, no generar, pero descargar). Lo interrumpió antes de permitirle descargar el estado actual, por lo que aunque tiene los bloques, no tiene el estado real en el que se encuentra la red. Entonces, cuando reinició, no tuvo más remedio que comenzar de nuevo. Elimine la carpeta de datos de la cadena, vuelva a sincronizar rápidamente y espere a que termine: P

Respuestas (1)

¿Por qué se reinicia Fast Sync?

Como se indicó en Péter Szilágyiel comentario anterior, deberá esperar a --fastque se complete la sincronización; de lo contrario, deberá reiniciar el proceso nuevamente. El mensaje que debería ver en su consola cuando --fastse haya completado la sincronización es " sincronización rápida completa, desactivación automática " como se muestra a continuación:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
 I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

Y para reiniciar, deberá borrar su carpeta de datos de cadena; consulte "¿Cómo restablezco mi cadena de bloques y ejecuto geth --fast?" a continuación.


Minería de Ethereum después de Fast Sync

Sincronice la cadena de bloques, y cuando tenga sincronizados los últimos bloques, puede escribir el siguiente comando en su consola:

miner.start(n)

donde n es la cantidad de subprocesos con los que desea que su CPU extraiga.

Asumo aquí que desea extraer la cadena de bloques con una CPU normal y no con una unidad de procesamiento de gráficos (GPU). Es posible que desee consultar ¿La minería de CPU vale la pena el Ether? .

Si tiene una GPU en su computadora, es posible que primero desee buscar en este sitio preguntas y respuestas sobre "minería", o hacer una pregunta por separado si no puede encontrar una respuesta. Aquí hay una pregunta y respuesta: ¿Cómo extraer Ether en GNU + Linux? .

Tenga en cuenta que primero deberá crear una cuenta en la que se paguen sus recompensas mineras. Consulte "Pero tengo una GPU y quiero minar con ella" a continuación.


¿Cómo debo proceder?

Vea los detalles abajo.


¿Qué debo hacer para mantenerme sincronizado?

Solo deberías necesitar correr geth --fast consolepor primera vez. La --fastopción no sincronizará los bloques más rápido después de la primera vez. Puede omitir los --fastparámetros en ejecuciones posteriores de geth.

Cuando ejecuta gethpor primera vez sin el --fastparámetro, gethpuede tomar algunos días descargar la cadena de bloques de otras computadoras a través de Internet; este tiempo depende de la velocidad de su conexión de red y la CPU de su computadora.

Si lo usa geth --fastpor primera vez en su instalación nueva, geth --fastle llevará varias horas descargar la cadena de bloques; nuevamente, esto dependerá de su conexión de red y su CPU.

Después de la descarga inicial de la cadena de bloques usando geth --fast, solo se ejecuta gethsin el --fastparámetro. La sincronización ahora será rápida, ya que solo los nuevos bloques deben descargarse de otros nodos de Ethereum a través de Internet y se están produciendo a una tasa promedio de aproximadamente un bloque cada 14 a 15 segundos.

Si desea restablecer su cadena de bloques y volver a descargar la cadena de bloques usando --fast, consulte la sección a continuación "¿Cómo restablezco mi cadena de bloques y ejecuto geth --fast".


¿Hice algo mal o geth --fastno es para minar?

geth --fastse utiliza para descargar INICIALMENTE una copia de la cadena de bloques actual de otros nodos de Ethereum a través de Internet. Como se respondió en ¿Qué es la sincronización "rápida" de Geth y por qué es más rápida? :

En lugar de procesar toda la cadena de bloques, un enlace a la vez, y reproducir todas las transacciones que alguna vez sucedieron en el historial, la sincronización rápida descarga los recibos de transacciones a lo largo de los bloques y extrae una base de datos de estado reciente completa.

geth --fastNO es para minería. Es solo el primer paso para descargar una copia de la cadena de bloques. Posteriormente, necesitará una copia de sincronización continua de la cadena de bloques si desea extraerla.


¿Hubo algún otro paso que me perdí?

No es que pueda decirlo. Es inusual que su cadena comience a sincronizarse desde el principio, a menos que no se complete correctamente o haya algunos problemas de configuración. Intente borrar su chaindatadirectorio y vuelva a sincronizar su cadena de bloques. No debería necesitar volver a sincronizar desde cero después de esto.



Los detalles

Supongo que desea ejecutar el comando de sincronización en una ventana (#1) y adjuntar otra gethconsola en otra ventana (#2). Y cuando quiera salir de su consola, use la combinación de teclas Control-D (^D). Si usa Control-C varias veces, o elimina el proceso de otras maneras ( killen Linux o Mac, o el Administrador de tareas en Windows), sus datos de cadena de bloques pueden corromperse (solo muy raramente, me pasó una vez).


Sincronizando por primera vez

En la ventana #1, ejecute el comando:

geth --fast console

En la ventana #2, ejecute el siguiente comando para adjuntar a la geth --fast consoleinstancia anterior:

geth attach

No necesita las --rpcbanderas para esto, ya que la comunicación entre estas dos gethinstancias se realizará a través del protocolo IPC. El protocolo IPC solo se ejecuta dentro de la computadora local a través de un descriptor de archivo. El protocolo RPC se puede usar para la comunicación entre diferentes computadoras.


Sincronización después de la primera vez

En la ventana #1, ejecute el comando:

geth console

En la ventana #2, ejecute el siguiente comando para adjuntar a la geth consoleinstancia anterior:

geth attach

Diferencia de mensaje de consola entre --fasty sincronización normal

Los siguientes mensajes se muestran en la geth --fast consolepantalla; tenga en cuenta los encabezados y los recibos :

I0416 13:35:53.497422   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 71.941018ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.263134   30629 blockchain.go:1044] imported 192 receipt(s) 
  (0 ignored) in 55.447062ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.683682   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 73.050377ms. #6528 [8ab9a7af… / f2ffecac…]

Y los siguientes mensajes se muestran en la geth consolepantalla - tenga en cuenta los bloques :

I0416 13:32:23.331906   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 979.938402ms. #6366 [66dcf4c1 / c5d009a1]
I0416 13:32:24.169955   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 836.388044ms. #6622 [e11a3fa9 / d211c2e1]
I0416 13:32:24.974790   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 803.457715ms. #6878 [c9f9ae12 / 238493b8]

Aquí está la transición cuando la --fastsincronización se ha completado y comienza la sincronización normal:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

¿Cómo restablezco mi cadena de bloques y ejecutogeth --fast

Los datos de la cadena de bloques, por defecto, se almacenan en las siguientes ubicaciones (referencia Copia de seguridad y restauración ):

  • Mac: ~/Biblioteca/Ethereum/chaindata
  • Linux: ~/.ethereum/chaindata
  • Windows: %APPDATA%\Ethereum\chaindata

Elimine el contenido del directorio anterior, o muévalo a otra ubicación y cuando haya sincronizado correctamente sus datos, elimine la copia anterior.

Una vez que se eliminan los datos en el chaindatadirectorio, debería poder --fastsincronizar nuevamente.


Pero tengo una GPU y quiero minar con ella

En este caso, necesitará otra aplicación como ethminerla que realizará las operaciones de minería en la GPU. Las comunicaciones entre gethy ethminerno funcionan a través de IPC. Deberá habilitar las comunicaciones RPC mediante:

geth --rpc console

gethutiliza el valor predeterminado --rpcaddr 127.0.0.1y --rpcport 8545. Inicie su ethminercon el siguiente comando

ethminer -F http://127.0.0.1:8545 -G

El -Gparámetro es la instrucción para ethminerrealizar los cálculos de minería usando su GPU.

Antes de que pueda ejecutar los comandos anteriores para minar, deberá crear una cuenta en la que se pagarán las recompensas mineras. Ejecute el siguiente comando

geth account new

Se le pedirá una contraseña dos veces, luego podrá ejecutar los comandos anteriores.


preguntas relacionadas

Los moderadores pueden marcar esta pregunta como duplicada ya que hay varias preguntas en este sitio que posiblemente estén relacionadas:

Pero espero que esta sea una guía más completa para superar sus problemas de sincronización.

Mi gethha estado sincronizando durante una semana con la --fastopción y aún no ha terminado. Hizo la sincronización completa con el número total de bloques una vez y luego se reinicia desde el primer bloque para procesarlos. Este segundo proceso es extremadamente lento. ¿Hay alguna manera de descargar la cadena de bloques sin tener que pasar semanas sincronizando?
Gracias por responder. If you want to mine one cannot use --fastAhora tengo que empezar de nuevo desde que dejé de sincronizar la última vez con --fast