Ejecutar como un servicio
A continuación creamos los servicios para que nuestros nodos puedan ejecutarse de forma automática.

Crear carpeta para herramientas

Creamos un folder llamado "tools" para guardar aquí nuestros scripts.
1
mkdir ~/cardano-node/tools
2
cd ~/cardano-node/tools
Copied!

Script de inicio

Creamos un shell script que luego utilizaremos para arrancar el nodo usando systemctl.
RELAY
BLOCK
BLOCK TEMP
~/cardano-node/tools/launch-relay.sh
1
#!/bin/bash
2
# Cardano
3
export PATH="/home/ubuntu/.local/bin:$PATH"
4
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
5
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
6
export CARDANO_NODE_SOCKET_PATH="/home/ubuntu/cardano-node/db/relay/node.socket"
7
8
screen -dmS RELAY bash -c 'cardano-node run \
9
--topology /home/ubuntu/cardano-node/relay/topology.json \
10
--database-path /home/ubuntu/cardano-node/db/relay \
11
--socket-path /home/ubuntu/cardano-node/db/relay/node.socket \
12
--port 3001 \
13
--config /home/ubuntu/cardano-node/relay/config.json; exec bash'
14
Copied!
~/cardano-node/tools/launch-block.sh
1
#!/bin/bash
2
# Cardano
3
export PATH="/home/ubuntu/.local/bin:$PATH"
4
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
5
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
6
export CARDANO_NODE_SOCKET_PATH="/home/ubuntu/cardano-node/db/block/node.socket"
7
8
screen -dmS BLOCK bash -c 'cardano-node run \
9
--topology /home/ubuntu/cardano-node/block/topology.json \
10
--database-path /home/ubuntu/cardano-node/db/block \
11
--socket-path /home/ubuntu/cardano-node/db/block/node.socket \
12
--port 3000 \
13
--config /home/ubuntu/cardano-node/block/config.json \
14
--shelley-kes-key /home/ubuntu/cardano-node/pool-keys/kes.skey \
15
--shelley-vrf-key /home/ubuntu/cardano-node/pool-keys/vrf.skey \
16
--shelley-operational-certificate /home/ubuntu/cardano-node/pool-keys/node.cert; exec bash'"
Copied!
~/cardano-node/tools/launch-block-TEMP.sh
1
#!/bin/bash
2
# Cardano
3
export PATH="/home/ubuntu/.local/bin:$PATH"
4
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
5
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
6
export CARDANO_NODE_SOCKET_PATH="/home/ubuntu/cardano-node/db/block/node.socket"
7
8
screen -dmS BLOCK bash -c 'cardano-node run \
9
--topology /home/ubuntu/cardano-node/block/topology.json \
10
--database-path /home/ubuntu/cardano-node/db/block \
11
--socket-path /home/ubuntu/cardano-node/db/block/node.socket \
12
--port 3000 \
13
--config /home/ubuntu/cardano-node/block/config.json; exec bash'"
Copied!
No usar el script ~/cardano-node/tools/launch-block.sh para iniciar nuestro BP hasta después de haber generado nuestras llaves y registrado el pool. Hasta entonces se debe iniciar el nodo como un relay normal. Se incluye un un script "temporal" como ejemplo.

Archivo de servicio

Creamos un archivo de servicio para poder programar y administrar el servicio usando systemctl. Debes iniciar tu editor de texto con sudo para poder guardar los cambios a estos archivos.
RELAY
BLOCK
/etc/systemd/system/cardano-relay.service
1
[Unit]
2
Description=RELAY-1 Node
3
After=network.target
4
5
[Service]
6
Type=forking
7
ExecStart=/home/ubuntu/cardano-node/tools/launch-relay.sh
8
Restart=always
9
RestartSec=5
10
User=ubuntu
11
Group=ubuntu
12
13
[Install]
14
WantedBy=multi-user.target
Copied!
/etc/systemd/system/cardano-block.service
1
[Unit]
2
Description=BLOCK Node
3
After=network.target
4
5
[Service]
6
Type=forking
7
ExecStart=/home/ubuntu/cardano-node/tools/launch-block.sh
8
Restart=always
9
RestartSec=5
10
User=ubuntu
11
Group=ubuntu
12
13
[Install]
14
WantedBy=multi-user.target
Copied!

Administrar nuestro servicio

Podemos usar los siguientes comandos para administrar nuestro servicio de cardano-node.
RELAY
BLOCK
1
# Habilitar arranque automatico del nodo al encender el servidor
2
sudo systemctl enable cardano-relay
3
4
# Habilitar arranque automatico e iniciar servicio inmediatamente (opcional)
5
sudo systemctl enable --now cardano-relay
6
7
# Iniciar servicio
8
sudo systemctl start cardano-relay
9
10
# Detener servicio
11
sudo systemctl stop cardano-relay
12
13
# Ver estado del servicio
14
sudo systemctl status cardano-relay
Copied!
1
# Habilitar arranque automatico del nodo al encender el servidor
2
sudo systemctl enable cardano-block
3
4
# Habilitar arranque automatico e iniciar servicio inmediatamente (opcional)
5
sudo systemctl enable --now cardano-block
6
7
# Iniciar servicio
8
sudo systemctl start cardano-block
9
10
# Detener servicio
11
sudo systemctl stop cardano-block
12
13
# Ver estado del servicio
14
sudo systemctl status cardano-block
Copied!
Última actualización 1yr ago