Instalar cardano-node

Una vez tenemos instalados todas las dependencias y paquetes necesarios para correr el nodo, estamos listos para iniciar el proceso de instalación.

Instalar libsodium de IOHK

Necesitamos instalar el paquete libsodium específico de iohk.

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

Luego, descargamos el código fuente de cardano-node que se encuentra alojado en Github.

cd
git clone https://github.com/input-output-hk/cardano-node.git

Cloning into 'cardano-node'... remote: Enumerating objects: 26856, done. remote: Total 26856 (delta 0), reused 0 (delta 0), pack-reused 26856 Receiving objects: 100% (26856/26856), 13.66 MiB | 32.15 MiB/s, done. Resolving deltas: 100% (17335/17335), done

Ahora debería aparecer una nueva carpeta cardano-node con el código fuente, nos movemos a ese directorio.

cd cardano-node
ls -l

Para obtener una vista rápida de los directorios y archivos descargados vamos a instalar la herramienta tree.

sudo apt install tree

Ejecutamos el comando con una profundidad de 1, es decir, sin listar recursivamente el resto de directorios.

tree -L 1

Listado de los archivos y carpetas descargadas.

├── CODEOWNERS
├── LICENSE
├── Makefile
├── NOTICE
├── README.rst
├── STYLE.md
├── Setup.hs
├── bors.toml
├── cabal.project
├── cardano-api
├── cardano-cli
├── cardano-config
├── cardano-node
├── ci
├── configuration
├── default.nix
├── doc
├── mainnet-genesis.json
├── nix
├── release.nix
├── scripts
├── shell.nix
└── stack.yaml
9 directories, 14 files

Version del protocolo

Necesitamos movernos a la versión específica del nodo que queremos instalar. Primero, nos descargamos toda la información del repositorio, luego listamos todas las etiquetas/versiones y finalmente nos movemos a la versión elegida, en nuestro caso, la versión 1.24.2.

El comando git fetch descarga commits, archivos y referencias desde un repositorio remoto a tu repositorio local. Fetching es lo que haces cuando quieres ver en qué han estado trabajando todos los demás. La etiqueta tag es solo un puntero a un commit específico.

git fetch --all --tags && git tag

Ahora ejecutamos el comando que nos lleva a la versión 1.19.0

git checkout tags/1.24.2

Podemos comprobar en que tag estamos actualmente con:

git describe --exact-match --tags $(git log -n1 --pretty='%h')

1.24.2

Antes de empezar la instalación de la versión 1.24.2 tenemos que añadir una referencia de la librería libsodium a cardano-node.

echo "package cardano-crypto-praos" >> cabal.project.local
echo " flags: -external-libsodium-vrf" >> cabal.project.local

Ahora si, podemos empezar el proceso de compilación para finalmente tener instalado cardano-node en nuestro sistema, mas concretamente en el entorno del usuario cardano.

cabal build all

El proceso llevará un buen rato, puede ser el momento de tomarse un descanso e ir a por un café o salir a tomar el aire. Seguimos en un rato!

El último paso es copiar los archivos bin (ejecutables) recién compilados en la carpeta creada en la puesta a punto: .local/bin

mkdir -p ~/.local/bin/
cp -p dist-newstyle/build/x86_64-linux/ghc-8.10.2/cardano-cli-1.24.2/x/cardano-cli/build/cardano-cli/cardano-cli ~/.local/bin/
cp -p dist-newstyle/build/x86_64-linux/ghc-8.10.2/cardano-node-1.24.2/x/cardano-node/build/cardano-node/cardano-node ~/.local/bin/

Comprobamos que el sistema reconoce el directorio y las versiones correspondientes del nodo y del cliente. El ejecutable cliente cardano-cli es el que nos permite interactuar con la blockchain, crear transacciones, hacer consultas, etc.

which cardano-node && which cardano-cli
cardano-node --version
cardano-cli --version

/home/cardano/.local/bin/cardano-node /home/cardano/.local/bin/cardano-cli

cardano-node 1.24.2 - linux-x86_64 - ghc-8.6 cardano-cli 1.24.2 - linux-x86_64 - ghc-8.6