Crear Servicio de Inicio
Un nodo de datos de la blockchain Cardano escrito en Go que participa activamente en las comunicaciones de red en la blockchain Cardano utilizando la familia de mini-protocolos Node-to-Node de la Red Ouroboros.
⚠️ Este es un trabajo en progreso y actualmente está en desarrollo activo
En esta guía te guiaremos a través de la configuración de un servicio systemd. Usar un servicio systemd para ejecutar un nodo Dingo maximiza el tiempo de actividad reiniciando automáticamente el nodo Dingo cuando la computadora se reinicia. Para comenzar, sigue los pasos a continuación.
✅ Esta guía asume una configuración típica de Linux. Por favor ajusta los comandos y rutas según sea necesario.
✅ Para esta guía asumimos que ya has completado la guía de inicio rápido.
Paso 1 - Mover binario de Dingo y configuración
Sección titulada «Paso 1 - Mover binario de Dingo y configuración»Moveremos el binario de Dingo a /usr/local/bin/ y la configuración a /etc/dingo/ para que sean accesibles a nivel de sistema.
Copia el binario:
sudo cp ~/dingo/dingo /usr/local/bin/✅ Puedes verificar que el binario fue copiado ejecutando
which dingo
Crea el directorio de configuración y copia la configuración:
sudo mkdir -p /etc/dingosudo cp ~/dingo/dingo.yaml /etc/dingo/Paso 2 - Actualizar Rutas en dingo.yaml
Sección titulada «Paso 2 - Actualizar Rutas en dingo.yaml»Como el servicio se ejecutará como tu usuario pero la configuración ahora está en /etc/dingo/, debemos asegurarnos de que las rutas de la base de datos y el socket usen rutas absolutas. Ejecuta lo siguiente para regenerar la configuración con tu $HOME expandido:
sudo bash -c "cat <<EOF > /etc/dingo/dingo.yaml# Databasedatabase: blob: plugin: \"badger\" badger: block-cache-size: 0 compression: false data-dir: \"$HOME/dingo/.dingo/badger\" gc: true index-cache-size: 0 metadata: plugin: \"sqlite\" sqlite: data-dir: \"$HOME/dingo/.dingo/metadata.db\"databasePath: \"$HOME/dingo/.dingo\"
# Mempool# `mempoolCapacity` es una anulación opcional, no un ajuste requerido.# Predeterminado: 1 MiB para el modo Praos y el modo serve normal, y 25 MiB para el modo Leios.# Deja la clave comentada o omítela para usar el valor predeterminado del modo.# mempoolCapacity: 1048576
# Mithrilmithril: aggregatorUrl: \"\" cleanupAfterLoad: true enabled: true verifyCertificates: true
# NetworkbindAddr: \"0.0.0.0\"metricsPort: 12798network: \"preview\"privateBindAddr: \"127.0.0.1\"privatePort: 3002relayPort: 3001socketPath: \"$HOME/dingo/dingo.socket\"
# StorageblockfrostPort: 0meshPort: 0storageMode: \"core\"utxorpcPort: 0EOF"📝 Los operadores que quieran endpoints HTTP compatibles con Blockfrost deben cambiar a almacenamiento compatible con API y establecer
blockfrostPorta un valor distinto de cero.
storageMode: "api"blockfrostPort: 3000Paso 3 - Iniciar desde Mithril (solo primera ejecución)
Sección titulada «Paso 3 - Iniciar desde Mithril (solo primera ejecución)»Antes de iniciar el servicio por primera vez, inicia la base de datos desde una instantánea de Mithril:
dingo mithril sync --config /etc/dingo/dingo.yamlEsto descarga y carga una instantánea, ahorrando horas de tiempo de sincronización. Consulta el Paso 4 de la guía de inicio rápido para más detalles.
📝 Solo necesitas hacer esto una vez. Después del inicio inicial, el servicio systemd mantendrá el nodo sincronizado.
Paso 4 - Crear Archivo de Unidad dingo.service
Sección titulada «Paso 4 - Crear Archivo de Unidad dingo.service»Crea el archivo de servicio systemd. Reemplaza YOUR_USER con tu nombre de usuario (echo $USER):
cat <<ENDFILE | sudo tee /etc/systemd/system/dingo.service > /dev/null[Unit]Description=Dingo NodeAfter=network-online.target
[Service]Type=simpleRestart=on-failureRestartSec=10User=YOUR_USERExecStart=/usr/local/bin/dingo serve --config /etc/dingo/dingo.yamlSyslogIdentifier=dingoTimeoutStopSec=5
[Install]WantedBy=multi-user.targetENDFILEPaso 5 - Habilitar e Iniciar el Servicio
Sección titulada «Paso 5 - Habilitar e Iniciar el Servicio»Habilita el servicio para que se inicie en el arranque e inícialo ahora:
sudo systemctl enable dingo.servicesudo systemctl start dingo.servicePaso 6 - Verificar Estado
Sección titulada «Paso 6 - Verificar Estado»Verifica que el servicio está ejecutándose:
sudo systemctl status dingo.servicePara seguir los registros en tiempo real:
sudo journalctl -u dingo -fPara ver los registros recientes si hay un error:
sudo journalctl -u dingo -n 50 --no-pager