Launching your Cardano BP node!
let's launch your block producing node!
when all the certificates and keys are generated, now we have to adjust the launch script on our block producing node
copy following files to your BP server and place them under /home/$USER/cnode/keys/
- myPool.kes-000.skey
- myPool.vrf.skey
- myPool.node-000.opcert
rename keys to default names so you don't have to edit your script/service config
cd ~/cnode/keys
mv myPool.kes-000.skey myPool.kes.skey
mv myPool.node-000.opcert myPool.node.opcert
# setting read only access to ourselves and restrictin any access for other users
chmod 400 *
there are 2 ways you can launch your node:
- 1.launching as a script using tmux (recommended only for testnet or for any other non-production server )
- 2.launching as a system service (RECOMENDED on production servers)
Launching as Systemd Service
Launching from script
create a systemd service configuration file with all the keys and other settings, so the cardano node process will be running in the background:
cat <<EOF | sudo tee /etc/systemd/system/cardano-node.service
[Unit]
Description=Cardano Pool
After=multi-user.target
[Service]
Type=simple
ExecStart=/home/cardano/.local/bin/cardano-node run \
--config /home/cardano/cnode/config/config.json \
--topology /home/cardano/cnode/config/topology.json \
--database-path /home/cardano/cnode/db/ \
--socket-path /home/cardano/cnode/sockets/node.socket \
--host-addr 0.0.0.0 \
--port 3001 \
--shelley-kes-key /home/cardano/cnode/keys/myPool.kes.skey \
--shelley-vrf-key /home/cardano/cnode/keys/myPool.vrf.skey \
--shelley-operational-certificate /home/cardano/cnode/keys/myPool.node.opcert
KillSignal = SIGINT
RestartKillSignal = SIGINT
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cardano
LimitNOFILE=32768
Restart=on-failure
RestartSec=45s
WorkingDirectory=~
User=cardano
Group=cardano
[Install]
WantedBy=multi-user.target
EOF
If you haven't previously installed systemd service, then let's do it now and start the cardano node service as a system service
sudo systemctl enable cardano-node.service
sudo systemctl start cardano-node.service
if you have previously already installed systemd service, then you just need to reload the configuration and restart the node
sudo systemctl daemon-reload
sudo systemctl restart cardano-node.service

you can check the cardano nodes live logfile using journalctl
journalctl -u cardano-node.service -f -o cat
congratulations! you have installed a block-producing node!
cd ~/cnode/scripts
nano node.sh
and add the keys to your launch script
#!/bin/bash
cardano-node run \
--database-path ~/cnode/db/ \
--socket-path ~/cnode/sockets/node.socket \
--host-addr 0.0.0.0 \
--port 3000 \
--config ~/cnode/config/mainnet-config.json \
--topology ~/cnode/config/mainnet-topology.json \
--shelley-kes-key ~/cnode/keys/myPool.kes.skey \
--shelley-vrf-key ~/cnode/keys/myPool.vrf.skey \
--shelley-operational-certificate ~/cnode/keys/myPool.node.opcert
save by pressing
ctrl+x
and then Y
now, just start your node with start_all.sh - you should have a fully functional BP node!