馃嚜馃嚫 Red de Prueba Integrada de Shelley: C贸mo comprobar si el nodo J枚rmungandr est谩 sincronizado

:es: Traducci贸n al espa帽ol de How to check that your node is in sync

Publicado en la web de soporte de IOHK por Carl.

Descripci贸n general

Prerequisitos

  1. El nodo debe estar iniciado. Si a煤n no lo has iniciado, consulta C贸mo iniciar un nodo.
  2. Ejecuta todos los siguientes comandos jcli desde la misma ubicaci贸n en la que guardaron los archivos jcli y jormungandr.
  3. En todos los comandos detallados a continuaci贸n, para el par谩metro --host se requiere usar la direcci贸n IP y el puerto configurado en el archivo node-configuration.yaml para el par谩metro rest/listen.

rest:
聽聽listen: "127.0.0.1:3101"

Pasos para comprobar si el nodo est谩 sincronizado

Los usuarios de Windows deben usar PowerShell (y no CMD) para ejecutar los siguientes comandos.

Ejecuta el siguiente comando desde la interfaz de l铆nea de comandos, para comprobar si el nodo se est谩 sincronizando:

./jcli rest v0 node stats get --host "http://127.0.0.1:3101/api"

驴C贸mo s茅 si mi nodo se est谩 sincronizando?

No hay ninguna indicaci贸n espec铆fica que indique si un nodo est谩 activo, ca铆do o sincronizando, pero existen algunos indicadores que pueden ayudar a entender si este es el caso.

Nota: El nodo se sincroniza con la cadena de bloques cuando recibe todos los bloques que se crean en la red/cadena de bloques en tiempo real. Se puede comprobar siguiendo las 2 reglas siguientes:

  1. Ejecuta el comando node stats varias veces, y comprueba que el valor del campo lastBlockHash se actualiza (con los valores reales de la cadena de bloques, se debe crear un nuevo bloque cada 2-5 minutos).
  2. Compara el valor del campo lastBlockTime (que est谩 en UTC) con la hora local del nodo. Si la diferencia es de m谩s de 10 minutos, el nodo podr铆a no estar 鈥渟incronizado鈥, incluso si el nodo recibi贸 bloques en el pasado (blockRecvCnt > 0).

El nodo puede estar sincronizado

El siguiente output es un buen indicador de que el nodo podr铆a estar sincronizado con la cadena de bloques:

  • blockRecvCnt: En el ejemplo de abajo el nodo ha recibido 351 bloques. Que se reciban bloques significa que el nodo est谩 sincronizando.
  • lastBlockHash: Es el hash del 煤ltimo bloque creado por la cadena de bloques. Si recibiste esta informaci贸n significa que el nodo est谩 sincronizando.
  • lastBlockDate: Es la fecha del 煤ltimo bloque, el formato es epoch.slot. Si recibiste esta informaci贸n significa que el nodo est谩 sincronizando.
  • lastBlockTime: Es la hora del 煤ltimo bloque. Que haya una hora significa que el nodo est谩 sincronizando (siempre que este valor (hora UTC) sea menor a 10 minutos respecto a la hora del nodo).
  • uptime: Es el n煤mero de segundos desde que se inici贸 el nodo. Esto NO indica que el nodo est茅 sincronizado. Si el valor es 0, entonces el nodo est谩 ca铆do.

./jcli rest v0 node stats get --host "http://127.0.0.1:3101/api"

El resultado deber铆a ser similar al siguiente:

blockRecvCnt: 351
lastBlockDate: "220.1821"
lastBlockFees: 0
lastBlockHash: 13966f0025b46667f2a0ce8c13409025d10237e21b5d3f7083d3d795a9b39f2d
lastBlockHeight: "28663"
lastBlockSum: 0
lastBlockTime: "2019-09-30T08:54:17+00:00"
lastBlockTx: 0
txRecvCnt: 0
uptime: 1057

B谩sicamente, deber铆as ver que el output de los comandos anteriores se actualiza con el tiempo (si se ejecuta el comando nuevamente, el output cambiar谩). Esto significa que el nodo local se est谩 sincronizando con la cadena de bloques.

El nodo no est谩 sincronizado

El siguiente output es un buen indicador de que el nodo NO se est谩 sincronizando con la cadena de bloques:

  • blockRecvCnt: 0 significa que todav铆a no se ha recibido ning煤n bloque (en el ejemplo siguiente, despu茅s de 907 segundos de tiempo de actividad del nodo, no se ha recibido nada).
  • lastBlockTime: No se conoce la hora del 煤ltimo bloque. El nodo NO est谩 sincronizando.
  • uptime: El n煤mero de segundos desde que se inici贸 el nodo. Esto NO indica que el nodo est茅 sincronizado. Si el valor es 0, entonces el nodo est谩 ca铆do.

./jcli rest v0 node stats get --host "http://127.0.0.1:3101/api"

El resultado deber铆a ser similar al siguiente:

blockRecvCnt: 0
lastBlockDate: "219.43104"
lastBlockFees: 0
lastBlockHash: 85158fddeef9f6eee220c168ad1b98856e1b161aa41c3ba96098be42efdc053b
lastBlockHeight: "28310"
lastBlockSum: 0
lastBlockTime: ~
lastBlockTx: 0
txRecvCnt: 0
uptime: 907

Si te encuentras en este caso, necesitas validar si existe un problema similar ya registrado y abierto. Por ejemplo, puedes encontrar m谩s detalles del error #860, aqu铆.

Puedes intentar sincronizar el nodo probando las siguientes opciones:

  1. Reinicia el nodo, d茅jalo correr entre 5 a 20 minutos, y revisa las estad铆sticas.
  2. Utiliza tu direcci贸n p煤blica real para public_address y tu direcci贸n local real para los par谩metros listen_address dentro de los archivos de configuraci贸n del nodo. Aseg煤rate de que tu nodo local est茅 conectado a internet, abriendo el puerto en el firewall local y creando la respectiva regla en el port forward del router local. Luego vuelva a intentar el paso 1.

Nota: Ejecuta el paso 2 s贸lo si sabes lo que est谩s haciendo, y ten en cuenta que existen algunos riesgos que deber谩s correr por tu cuenta.


Volver al men煤 de inicio

1 Like