🇪🇸 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.

image

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 “sincronizado”, 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