Verificador de Salud del Nodo
El servicio Verificador de Salud del Nodo de Aptos (NHC) puede usarse para verificar la salud de cualquier fullnode de Aptos (VFNs o PFNs). Si eres un operador de nodo, usa el servicio NHC para verificar si tu nodo está ejecutándose correctamente. El servicio NHC evalúa la salud de tu nodo comparando contra una configuración de nodo de línea base, y produce los resultados de evaluación.
Este documento describe cómo ejecutar NHC localmente cuando estés operando un nodo.
Inicio Rápido
Sección titulada «Inicio Rápido»Antes de entrar en los detalles de cómo funciona NHC, puedes ejecutar los pasos abajo para iniciar el servicio NHC y enviarle una solicitud. Este tutorial usa una configuración de línea base para un fullnode devnet, es decir, evaluará tu nodo contra un fullnode devnet que está configurado con el YAML de configuración de línea base.
Importante: Si tu nodo local no es un fullnode devnet, debes usar una configuración de línea base diferente. Ver los ejemplos de configuración en aptos-core para otros ejemplos de configuraciones.
-
Descargar el YAML de configuración de línea base
Descarga un archivo YAML de configuración de línea base para un fullnode devnet. El comando abajo descargará el archivo de configuración
devnet_fullnode.yaml
:Ventana de terminal mkdir /tmp/nhccd /tmp/nhcwget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/ecosystem/node-checker/configuration_examples/devnet_fullnode.yaml -
Iniciar el servicio NHC
Inicia el servicio NHC proporcionando el archivo YAML de configuración de línea base
devnet_fullnode.yaml
descargado arriba:Ventana de terminal docker run -v /tmp/nhc:/nhc -p 20121:20121 -t aptoslabs/node-checker:nightly /usr/local/bin/aptos-node-checker server run --baseline-config-paths /nhc/devnet_fullnode.yaml -
Enviar una solicitud al servicio NHC
Finalmente, envía una solicitud al servicio NHC que iniciaste arriba. El siguiente comando ejecuta verificaciones de salud de tu nodo que está en
node_url=http://mynode.mysite.com
y compara estos resultados con el nodo configurado en la configuración de línea basedevnet_fullnode
:Ventana de terminal curl 'http://localhost:20121/check?node_url=http://mynode.mysite.com&api_port=80&baseline_configuration_id=devnet_fullnode'Verás una salida similar a esta:
{"check_results": [{"headline": "Chain ID reported by baseline and target match","score": 100,"explanation": "The node under investigation reported the same Chain ID 18 as is reported by the baseline node","checker_name": "node_identity","links": []},{"headline": "Role Type reported by baseline and target match","score": 100,"explanation": "The node under investigation reported the same Role Type full_node as is reported by the baseline node","checker_name": "node_identity","links": []},{"headline": "Target node produced valid recent transaction","score": 100,"explanation": "We were able to pull the same transaction (version: 3238616) from both your node and the baseline node. Great! This implies that your node is keeping up with other nodes in the network.","checker_name": "transaction_availability","links": []}],"summary_score": 100,"summary_explanation": "100: Awesome!"}
Cómo funciona NHC
Sección titulada «Cómo funciona NHC»El NHC se ejecuta como un servicio. Cuando quieres ejecutar una verificación de salud de tu nodo, envías solicitudes HTTP a este servicio.
Una sola instancia NHC puede configurarse para verificar la salud de múltiples configuraciones de nodo, cada una de tipo diferente, por ejemplo:
- Un fullnode público conectado a la mainnet de Aptos.
- Un nodo validator conectado a la testnet de Aptos.
- Un nodo ejecutándose en una testnet de nodo único.
Configuración de línea base
Sección titulada «Configuración de línea base»En todos los casos anteriores, un nodo de línea base se usa para comparar la salud de tu nodo. Por ejemplo, para un fullnode público conectado a la devnet de Aptos, el nodo de línea base podría ser un nodo ejecutado por el equipo de Aptos y este nodo demuestra características óptimas de rendimiento y participación.
Descargarás el YAML de configuración de línea base antes de ejecutar el servicio NHC para tu nodo. El YAML de configuración del nodo de línea base describe dónde encontrar este nodo de línea base (URL + puerto), qué evaluadores (ej., verificaciones de métricas, pruebas TPS, validaciones API, etc.) el servicio NHC debería ejecutar, qué parámetros el NHC debería usar para esos evaluadores, qué nombre tiene la configuración, y así sucesivamente. Ver estos archivos YAML de configuración de línea base de ejemplo.
Cuando envíes solicitudes al servicio NHC, debes incluir una configuración de línea base. Por ejemplo, una solicitud a NHC para usar devnet_fullnode
como la configuración de línea base se verá así:
curl 'http://nhc.aptoslabs.com/check?node_url=http://myfullnode.mysite.com&baseline_configuration_id=devnet_fullnode'
Preparar configuraciones de línea base
Sección titulada «Preparar configuraciones de línea base»Para ejecutar el servicio NHC, debes tener una configuración de línea base que el servicio pueda usar. Tienes dos opciones aquí:
Configurar un YAML preexistente
Sección titulada «Configurar un YAML preexistente»Puedes encontrar algunos archivos YAML de configuración de línea base de ejemplo que funcionan para cada uno de los casos de uso anteriores y más.
Siguiente, descarga estos archivos YAML de configuración en la carpeta /etc/nhc
en tu sistema host. Por ejemplo:
mkdir /tmp/nhccd /tmp/nhcconfigs=(devnet_fullnode testnet_fullnode mainnet_fullnode); for c in ${configs[@]}; do wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/ecosystem/node-checker/configuration_examples/$c.yaml; done
Estas configuraciones no están completamente listas para usarse como están. Necesitarás modificar ciertos campos, como la dirección del nodo de línea base o conjunto de evaluadores (evaluators
y evaluator_args
en el YAML) usado. La mejor forma de iterar sobre esto es ejecutar el NHC con una configuración de línea base descargada y ver qué dice al inicio.
Archivos requeridos
Sección titulada «Archivos requeridos»Para algunas configuraciones NHC, necesitarás archivos acompañantes, ej., mint.key
para usar para ejecutar una prueba TPS contra un validator. Deberías asegurarte de que estos archivos también estén disponibles para NHC, ya sea en disco o montados en tu contenedor. NHC los espera al inicio en una ruta especificada en el YAML de configuración de línea base.
Ejecutar NHC: Docker
Sección titulada «Ejecutar NHC: Docker»Cuando estés listo con el YAML de configuración de línea base y los archivos requeridos, puedes ejecutar el servidor NHC con un comando como este, por ejemplo, con Docker:
docker run -v /etc/nhc:/etc/nhc -p 20121:20121 -t aptoslabs/node-checker:nightly /usr/local/bin/aptos-node-checker server run --baseline-config-paths /tmp/nhc/devnet_fullnode.yaml /tmp/nhc/testnet_fullnode.yaml /tmp/nhc/mainnet/fullnode.yaml
Ejecutar NHC: Código Fuente
Sección titulada «Ejecutar NHC: Código Fuente»Primero, obtén el código fuente:
git clone git@github.com:aptos-labs/aptos-core.gitcd aptos-core
Dependiendo de tu configuración, podrías querer cambiar a una rama particular, para asegurar que NHC sea compatible con tu nodo, ej., git checkout --track devnet
.
Ejecuta NHC:
cargo run -p aptos-node-checker --release -- server run --baseline-config-paths /tmp/nhc/devnet_fullnode.yaml
Generar las especificaciones OpenAPI
Sección titulada «Generar las especificaciones OpenAPI»Para generar las especificaciones OpenAPI, ejecuta los siguientes comandos desde ecosystem/node-checker
:
cargo run -- server generate-openapi -f yaml > doc/spec.yamlcargo run -- server generate-openapi -f json > doc/spec.json
También puedes acceder a los endpoints /spec.yaml
y /spec.json
del servicio en ejecución.