Getting ready to install the Cardano Node (v1.23.0)

Now the most complicated part (not so complicated if you follow this guide :) ) - the installation process!

to successfully install (compile) the carano node, we need to be sure that we have all the necessary ingredients! To get them (install) type the following commands:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get -y install python3 build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev systemd libsystemd-dev libsodium-dev zlib1g-dev yarn make g++ jq libncursesw5 libtool autoconf git tmux htop nload
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

This will install all the necessary software packages for our next steps.

As the Cardano node is using cabal, so let's install it as well. We will use the recommended version 3.2.0.0 and install to our local bin folder (.local/bin)

wget https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
tar -xf cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
rm cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz cabal.sig
mkdir -p ~/.local/bin
mv cabal ~/.local/bin/

You should now have cabal installed in your ~/.local/bin/ folder, now we just have to make sure, that the system also can find the cabal bin(executive) file, so let's make sure, that the system knows where to look. Let's add this information in our user profile file (.bashrc), reload it (using source command), and check if we see our ~/.local/bin/ folder in the list.

echo "export PATH=~/.local/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
echo $PATH

now we should see something like this:

cardano@localhost:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

cardano@localhost:~$ source .bashrc cardano@localhost:~$ echo $PATH /home/cardano/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Now let's check if we have installed the latest cabal package list

cabal update
cabal --version

you should see something similar to this:

cardano@localhost:~$ cabal update cabal --version Config file path source is default config file. Config file /home/cardano/.cabal/config not found. Writing default configuration to /home/cardano/.cabal/config Downloading the latest package list from hackage.haskell.org

cabal-install version 3.2.0.0 compiled using version 3.2.0.0 of the Cabal library

If you see the 3.2.0.0 version, then you have successfully installed the cabal!

Let's move to the next steps - installing GHC - the Haskell code compiler (Cardano node is based on the Haskell programming language)

mkdir -p ~/git
cd ~/git
wget https://downloads.haskell.org/ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz
tar -xf ghc-8.10.2-x86_64-deb9-linux.tar.xz
rm ghc-8.10.2-x86_64-deb9-linux.tar.xz
cd ghc-8.10.2
./configure
sudo make install

After a short while, you should have GHC installed, let's check it

ghc --version

You should see:

cardano@localhost:~$ ghc --version The Glorious Glasgow Haskell Compilation System, version 8.10.2

Install Libsodium

One more thing we need is the Libsodium libraries so let's do this! let's create a git folder where we will be compiling libsodium library fom the source code:

cd ~/git

Download and install libsodium library ( we need a specific branch of the library, so follow the guide)

git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout 66f017f1
./autogen.sh
./configure
make
sudo make install

Let's add the following PATHs to our .bashrc file and load them.

echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> ~/.bashrc
source ~/.bashrc

Let's move to the next step - the actual installation of Cardano Node!