githubEdit

Creating Startup Scripts and Services

To run an instance of Cardano Node, create a bash script to configure options.

Also, implement Cardano Node as a systemd service. Running Cardano Node as a systemd service maximizes the uptime of your stake pool by restarting the stake pool automatically if any stake pool processes may crash, or when the computer reboots.

circle-info

The following procedure configures options for all the nodes in your stake pool—including the block-producing node—to operate as relay nodes. Temporarily configuring the block-producing node to operate as a relay node is sufficient for Starting the Nodes in order to synchronize a local copy of the Cardano blockchain. Every node in a stake pool configuration, including the block-producing node, stores a local copy of the Cardano blockchain. The topic Generating Keys for the Block-producing Node explains how to configure the block-producing node with the capabilities required to mint blocks.

To create a startup script and service for an instance of Cardano Node:

  1. On the computer hosting your block producing node, using a terminal window type the following command to navigate to the folder containing configuration files and scripts related to operating your Cardano node:

cd $NODE_HOME
circle-info

You set the $NODE_HOME environment variable when Installing GHC and Cabal.

  1. To retrieve the values of the $NODE_HOME and $USER environment variables, type:

echo $NODE_HOME
echo $USER
  1. In the folder where you navigated in step 1, using a text editor create a file named startCardanoNode.sh and then add the following contents to the file where <NodeHomeValue> is the value of your $NODE_HOME environment variable that you retrieved in step 2, and <ConfigFileName> is config-bp.json on your block-producing node and config.json on all your relay nodes:

#!/bin/bash
#
# Set variables to indicate Cardano Node options
#
# Set a variable to indicate the port where the Cardano Node listens
PORT=6000
# Set a variable to indicate the local IP address of the computer where Cardano Node runs
# 0.0.0.0 listens on all local IP addresses for the computer
HOSTADDR=0.0.0.0
# Set a variable to indicate the file path to your topology file
TOPOLOGY=<NodeHomeValue>/topology.json
# Set a variable to indicate the folder where Cardano Node stores blockchain data
DB_PATH=<NodeHomeValue>/db
# Set a variable to indicate the path to the Cardano Node socket for Inter-process communication (IPC)
SOCKET_PATH=<NodeHomeValue>/db/socket
# Set a variable to indicate the file path to your main Cardano Node configuration file
CONFIG=<NodeHomeValue>/<ConfigFileName>
#
# Run Cardano Node using the options that you set using variables
#
/usr/local/bin/cardano-node run --topology ${TOPOLOGY} --database-path ${DB_PATH} --socket-path ${SOCKET_PATH} --host-addr ${HOSTADDR} --port ${PORT} --config ${CONFIG}
circle-info

You configured the topology.json file when Configuring Topology. You downloaded the config-bp.json and config.json files when Downloading Configuration Files. For more details on options for the cardano-node run command, see the topic How to run cardano-nodearrow-up-right in the Cardano Developer Portalarrow-up-right.

  1. Save and close the startCardanoNode.sh file.

  2. To set execute permissions for the startCardanoNode.sh file, type:

  1. To create the folder where Cardano Node stores blockchain data, type:

  1. To run Cardano Node as a service, using a text editor create a file named cardano-node.service and then add the following contents to the file where <UserValue> is the value of your $USER environment variable and <NodeHomeValue> is the value of your $NODE_HOME environment variable that you retrieved in step 2:

  1. Save and close the cardano-node.service file.

  2. To move the cardano-node.service file to the folder /etc/systemd/system and set file permissions, type:

  1. To start Cardano Node as a service when the computer boots, type:

  1. Repeat steps 1 to 10 on each computer hosting a relay node in your stake pool configuration.

Managing Services

To help administer an instance of Cardano Node running as a systemd service, use the following commands.

To view the status of the Cardano Node service, type:

To restart the Cardano Node service, type:

To stop the Cardano Node service, type:

To display and filter logs, type one of the following commands, for example:

📈 Improving Cardano Node Performance

If you are not satisfied with the performance of an instance of Cardano Node, then see the topic Configuring Runtime Options.

Last updated