How to Deploy a Cardano (ADA) Node on Linux

Cardano's network relies on a diverse group of validators to function effectively. By installing and operating a Cardano node on Linux, you are actively upholding the network's security and smooth operation. This guide aims to assist you in setting up a Cardano node on Linux, thereby supporting the overall ecosystem.
Cardano Node: An Overview
Cardano (ADA): A Brief Background
Cardano, developed by IOHK and led by Charles Hoskinson, is a blockchain platform that aims to overcome the limitations of current blockchain technologies. That said, security and scalability are the project's top priority.
Cardano's development is organized into distinct layers, one dedicated to the settlement and another focused on computation. The network employs a Proof-of-Stake consensus algorithm called Ouroboros to ensure network security and efficiency. This algorithm involves ADA holders participating in the consensus process through staking and delegation.
Cardano and Charles Hoskinson continue to be the center of attention, even after nine years since its establishment. The team's dedication lies in creating a reliable and long-lasting foundation for decentralized applications, empowering individuals and organizations to develop groundbreaking solutions using the Cardano blockchain.
What is a Cardano node?
A Cardano node is a software component that operates within the Cardano blockchain network. It can be classified as a core node or a relay node.
- Core Node: Also known as a Cardano Byron node, it stores the complete blockchain history, participates in consensus, and validates transactions.
- Relay Node: These nodes facilitate communication between core nodes, propagating transactions and blocks across the network.
Running a Cardano node enables active participation in the network, contributing to decentralization, transaction validation, and direct access to blockchain data. It also allows interaction with decentralized applications and supports the growth of the Cardano ecosystem.
Cardano Node Requirements
- Operating System: MacOS or Linux (Windows is under development).
- Processor: An Intel or AMD x86 processor with two or more cores, operating at a minimum of 1.6GHz (2GHz or faster recommended).
- RAM: A minimum of 24GB of RAM.
- Disk Space: At least 150GB of free disk space (250GB recommended for accommodating future growth).
How to Set Up a Cardano Node on Linux
Step 1: Install Operating System Dependencies
- Execute the following commands based on your Linux distribution:
For Redhat, Fedora, and Centos:
sudo yum update -y
sudo yum install git gcc gcc-c++ tmux gmp-devel make tar xz wget zlib-devel libtool autoconf jq -y sudo yum install systemd-devel ncurses-devel ncurses-compat-libs -y
For Debian/Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 libtool autoconf -y
Step 2: Install GHC and Cabal
- Use ghcup to install GHC and Cabal:
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
Step 3: Downloading and Compiling
- Create a directory:
mkdir -p $HOME/cardano-src
cd $HOME/cardano-src
- Download, compile, and install libsodium:
git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout dbb48cc
./autogen.sh
./configure
make
sudo make install
- Add environment variables to your shell profile:
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
- Reload the shell profile:
source $HOME/.bashrc
or source $HOME/.zshrc
- Download and install libsecp256k1:
cd $HOME/cardano-src
git clone https://github.com/bitcoin-core/secp256k1
cd secp256k1
git checkout ac83be33
./autogen.sh
./configure --enable-module-schnorrsig --enable-experimental
make
make check
sudo make install
- Ensure you are back at the root of your working directory:
cd $HOME/cardano-src
- Download the
cardano-node
repository:
git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git fetch --all --recurse-submodules --tags
- Change the repository to the most recent tagged commit:
git checkout $(curl -s https://api.github.com/repos/input-output-hk/cardano-node/releases/latest | jq -r .tag_name)
- Configure the build options:
cabal configure --with-compiler=ghc-8.10.7
- Build and install the node:
cabal update
cabal build all
mkdir -p $HOME/.local/bin
cp -p "$(./scripts/bin-path.sh cardano-node)" $HOME/.local/bin/
cp -p "$(./scripts/bin-path.sh cardano-cli)" $HOME/.local/bin/
Step 4: Update Shell Profile
- Update the shell profile to recognize cardano-node and cardano-cli as global commands:
export PATH="$HOME/.local/bin/:$PATH"
- Reload your shell using the command:
source $HOME/.bashrc
or source $HOME/.zshrc
Step 5: Verify Installation
- Check the installed versions of cardano-cli and cardano-node:
cardano-cli --version
cardano-node --version
Congratulations! You have successfully installed the Cardano components on your Linux system.
For the latest updates on Cardano's node operation, check out Cardano Developer Portal.