Configuración de un nodo
Aquí vamos a configurar nuestro nodo; nos enfocaremos en lo necesario e indispensable para arrancar un nodo de Cardano.

Descargar archivos necesarios

Necesitamos como mínimo 4 archivos que son indispensables para poder correr un nodo de Cardano. Estos son:
    config.json
    byron-genesis.json
    shelley-genesis.json
    topology.son
Debemos asegurarnos de bajar las versiones de mainnet o testnet según corresponda.
RELAY
BLOCK
1
mkdir ~/cardano-node/relay
2
cd ~/cardano-node/relay
3
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-config.json
4
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-byron-genesis.json
5
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-shelley-genesis.json
6
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-topology.json
7
8
mv mainnet-byron-genesis.json byron-genesis.json
9
mv mainnet-shelley-genesis.json shelley-genesis.json
10
mv mainnet-config.json config.json
11
mv mainnet-topology.json topology.json
Copied!
1
mkdir ~/cardano-node/block
2
cd ~/cardano-node/block
3
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-config.json
4
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-byron-genesis.json
5
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-shelley-genesis.json
6
wget https://hydra.iohk.io/build/4096235/download/1/mainnet-topology.json
7
8
mv mainnet-byron-genesis.json byron-genesis.json
9
mv mainnet-shelley-genesis.json shelley-genesis.json
10
mv mainnet-config.json config.json
11
mv mainnet-topology.json topology.json
Copied!

config.json

El siguiente paso es modificar nuestro archivo config.json para darle las rutas a los archivos genesis de Shelley y Byron, configurar logging y métricas. Deberemos modificar los valores de los siguientes parámetros:
RELAY
BLOCK
~/cardano-node/relay/config.json
1
"ByronGenesisFile": "byron-genesis.json",
2
"ShelleyGenesisFile": "shelley-genesis.json",
3
"TraceBlockFetchDecisions": true,
4
"ViewMode": "LiveView",
5
"defaultScribes": [
6
[
7
"FileSK",
8
"/var/log/cardano/relay.json"
9
]
10
],
11
"hasPrometheus": [
12
"0.0.0.0",
13
12798 ],
14
"setupScribes": [
15
{
16
"scKind": "FileSK",
17
"scName": "/var/log/cardano/relay.json",
18
"scFormat": "ScJson",
19
"scRotation": null
20
}
21
]
22
Copied!
~/cardano-node/block/config.json
1
"ByronGenesisFile": "byron-genesis.json",
2
"ShelleyGenesisFile": "shelley-genesis.json",
3
"TraceBlockFetchDecisions": true,
4
"ViewMode": "LiveView",
5
"defaultScribes": [
6
[
7
"FileSK",
8
"/var/log/cardano/block.json"
9
]
10
],
11
"hasPrometheus": [
12
"0.0.0.0",
13
12799 ],
14
"setupScribes": [
15
{
16
"scKind": "FileSK",
17
"scName": "/var/log/cardano/block.json",
18
"scFormat": "ScJson",
19
"scRotation": null
20
}
21
]
Copied!
TraceBlockFetchDecisions y ViewMode son necesarios para poder ver el nodo en LiveView. hasPrometheus define la IP y puertos donde estarán disponibles las métricas de cardano-node.
La configuración de logging es opcional pero recomendada para el BP y, en caso de presentarse inconvenientes, en los relays. Será necesario además crear el folder para los logs y hacer a nuestro usuario el propietario del mismo.
1
sudo mkdir /var/log/cardano
2
sudo chown -R ubuntu. /var/log/cardano
Copied!

Crear directorios para la base de datos, ledger y socket

RELAY
BLOCK
1
mkdir ~/cardano-node/db
2
mkdir ~/cardano-node/db/relay
Copied!
1
mkdir ~/cardano-node/db
2
mkdir ~/cardano-node/db/block
Copied!

topology.json

Aquí definimos los nodos contra los que vamos a establecer conexiones salientes, es importante recordar que para poder procesar TXs es necesario tener conexiones entrantes también desde la red. Por lo general IOHK incluye en su topología a los relays de un pool registrados en la blockchain pero esto seguramente cambiará cuando d=0. Para asegurarte de tener conexiones entrantes contacta otros operadores en los canales de Telegram, el grupo de SPOCRA en Discord o usa el script topologyUpdater.
RELAY
BLOCK
~/cardano-node/relay/topology.json
1
{
2
"Producers": [
3
{
4
"addr": "ip.de.bp.node",
5
"port": 3000,
6
"valency": 1
7
},
8
{
9
"addr": "relays-new.cardano-mainnet.iohk.io",
10
"port": 3001,
11
"valency": 2
12
},
13
{
14
"friendly_name": "TOPO USA1",
15
"addr": "relays-us1.topopool.com",
16
"port": 3001,
17
"valency": 1
18
},
19
{
20
"friendly_name": "TOPO GERMANY1",
21
"addr": "relays-de1.topopool.com",
22
"port": 3001,
23
"valency": 1
24
},
25
{
26
"friendly_name": "TOPO JAPAN1",
27
"addr": "relays-jp1.topopool.com",
28
"port": 3001,
29
"valency": 1
30
}
31
]
32
}
Copied!
~/cardano-node/block/topology.json
1
{
2
"Producers": [
3
{
4
"friendly_name": "RELAY1",
5
"addr": "ip.de.relay.1",
6
"port": 3001,
7
"valency": 1
8
},
9
{
10
"friendly_name": "RELAY2",
11
"addr": "ip.de.relay.2",
12
"port": 3001,
13
"valency": 1
14
}
15
]
16
}
Copied!
IMPORTANTE: Tu nodo productor de bloques (BP) solamente debe ser accesible desde tus relays, no debe ser accesible desde una IP que no esté bajo tu control y no debes incluir a peers de terceros. Los relays incluyen en sus topology.json a nodos externos pertenecientes a otros operadores y tu BP.

Iniciar el nodo

¡Felicitaciones! Si llegaste hasta aquí ya tienes un nodo completo listo para correr. Si deseas puedes levantar el nodo con el siguiente comando y dejar la base de datos (DB) sincronizando, o puedes preparar tu sistema para correr como servicios, tal como se explica en la próxima sección.
Si este es tu primer nodo se recomienda dejes que sincronice completamente antes de continuar con el proceso de crear tus llaves y certificados. Prepárate un café por que el sync inicial va a tomar un buen rato :)
1
screen -dmS RELAY bash -c 'cardano-node run \
2
--topology /home/alfred_vilsmeier/cardano-node/relay/topology.json \
3
--database-path /home/alfred_vilsmeier/cardano-node/db/relay \
4
--socket-path /home/alfred_vilsmeier/cardano-node/db/relay/node.socket \
5
--port 3001 \
6
--config /home/alfred_vilsmeier/cardano-node/relay/config.json; exec bash'
Copied!
Usamos la aplicación screen para poder dejar el nodo corriendo y la consola LiveView de fácil acceso. Para desconectar la sesión de screen pero dejarla corriendo en el background puedes usar: Ctrl + a, y luego la tecla "d"
Para volver a conectarse a la sesión de LiveView: screen -r RELAY
Notarás que el nodo esta en línea por que el consumo de CPU baja considerablemente, "chain density" cambia de 100% a ~5% y - si tienes conexiones entrantes y salientes con otros nodos - deberías ver aumentador el contador de "TXs processed".
Última actualización 1yr ago