Configuración de un nodo
Archivos de configuración, topología P2P y parámetros clave para relay y block producer en mainnet. Cardano-node 11.x / Conway era.
Vamos a preparar los archivos de configuración que necesita cada nodo para arrancar y conectarse a la red principal de Cardano. Tenemos dos tipos de nodo: el relay (expuesto a internet) y el block producer (aislado, solo habla con tus relays).
Estructura de directorios
Antes de descargar nada, creamos la estructura base:
mkdir -p $HOME/cardano/relay/config
mkdir -p $HOME/cardano/bp/config
mkdir -p $HOME/cardano/relay/db
mkdir -p $HOME/cardano/bp/dbDescargar los archivos de configuración
Los archivos oficiales de mainnet están en:
https://book.world.dev.cardano.org/environments/mainnet/
Descargamos cada archivo explícitamente:
cd $HOME/cardano/relay/config
wget https://book.world.dev.cardano.org/environments/mainnet/config.json
wget https://book.world.dev.cardano.org/environments/mainnet/byron-genesis.json
wget https://book.world.dev.cardano.org/environments/mainnet/shelley-genesis.json
wget https://book.world.dev.cardano.org/environments/mainnet/alonzo-genesis.json
wget https://book.world.dev.cardano.org/environments/mainnet/conway-genesis.json
wget https://book.world.dev.cardano.org/environments/mainnet/topology.jsonNecesitamos los seis archivos. Desde el hard fork Chang, conway-genesis.json es obligatorio — el nodo no arranca sin él.
Luego copiamos los mismos archivos de génesis al BP (la topología será diferente):
Archivos de génesis
No necesitamos modificar estos archivos. Son parámetros de red firmados y el nodo los verifica al arrancar:
byron-genesis.json
Parámetros de la era Byron
shelley-genesis.json
Parámetros de Shelley (epoch length, slot duration, etc.)
alonzo-genesis.json
Parámetros de smart contracts (Plutus)
conway-genesis.json
Parámetros de gobernanza (Chang/Conway era)
config.json — qué necesitamos cambiar
El archivo descargado tiene más de 100 campos. No lo reemplazamos entero — abrimos el que descargamos y tocamos los campos que nos interesan:
Campos clave a revisar y ajustar
P2P habilitado (obligatorio):
Puerto de Prometheus (métricas para Grafana):
Puerto EKG (panel interno, útil para debug):
Nivel mínimo de logs — Info es suficiente en producción:
Rotación de logs:
Topología
Aquí es donde relay y BP tienen configuraciones completamente distintas.
Relay — P2P (formato actual)
El formato antiguo con "Producers" es legacy. Con P2P activo en mainnet, necesitamos el formato con localRoots, publicRoots y bootstrapPeers.
Qué significa cada sección:
bootstrapPeers— peers confiables para el arranque inicial, antes de tener el ledger sincronizado.localRoots— peers que siempre queremos mantener conectados (nuestro BP).advertise: falsesignifica que no anunciamos esta dirección a la red.publicRoots— peers públicos para descubrimiento.useLedgerAfterSlot— a partir de este slot, el nodo usa el ledger para descubrir peers. Dejamos el valor por defecto.
Reemplaza IP-DE-TU-BP con la IP privada de tu block producer.
Si tienes varios relays, añade cada uno en localRoots del otro relay con advertise: true para que tu pool sea descubrible en la red.
Block Producer — topología simple
El BP solo necesita conectarse a sus propios relays. Sin peers públicos, sin bootstrapPeers:
El BP no debe tener conexión directa a internet ni a peers públicos. Solo debe hablar con tus propios relays. Si tu BP es accesible desde fuera, estás exponiendo las claves operacionales.
Sincronización inicial — usa Mithril
Sincronizar el nodo desde cero puede llevar varios días. En lugar de esperar, vamos a usar Mithril para descargar un snapshot verificado criptográficamente.
⚡Bootstrap con MithrilVerificar los archivos
Antes de continuar, confirmamos que tenemos todo lo necesario:
Con los archivos en su lugar, el siguiente paso es configurar los servicios de systemd.
Última actualización