How to Deploy a Cardano (ADA) Node on Linux

How to Deploy a Cardano (ADA) Node on Linux
How to Deploy a Cardano Node

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.

Read more