Correr un nodo Baker en la testnet de Concordium

Mon
Concordium Español
6 min readDec 5, 2022

--

Esta guía ha sido elaborada para correr un nodo baker en la testnet de Concordium mediante un servidor virtual VPS en el sistema operativo Linux Ubuntu.

Qué necesito

  • Servidor virtual o dedicado VPS
  • Las aplicaciones Docker y Docker Compose
  • Wallet móvil testnet de Concordium

Índice de contenidos

· Crea un usuario no root con privilegios de sudo
· Instala y configura Docker
· Instala un nodo Concordium testnet con Docker Compose
· Ejecuta un nodo testnet con Docker Compose
· Crea una wallet testnet de Concordium y vincúlala al nodo

Crea un usuario no root con privilegios de sudo

Uno de los requisitos previos para correr un nodo en testnet de Concordium es ejecutarlo desde un usuario sin privilegios de administrador, por lo tanto, lo primero que vas a hacer es crear ese usuario. En tu aplicación shell de comandos realiza las siguientes operaciones.

Crea el usuario ccd:

sudo useradd -m -s /bin/bash ccd

Asigna una contraseña a tu nuevo usuario.

sudo passwd ccd

Agrega el usuario ccd al grupo sudo.

sudo usermod -aG sudo ccd

Para cambiar a tu usuario no root, en este caso el usuario ccd, desde otro usuario con el que hayas iniciado sesión, introduce el siguiente comando:

su ccd

Instala y configura Docker

Docker es una plataforma de software que te permite crear, probar e implementar aplicaciones rápidamente.

Para realizar la instalación de Docker debes realizar los siguientes pasos:

1) Configura el repositorio:

sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

2) Agrega la clave GPG oficial de Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

3) Usa el siguiente comando para configurar el repositorio:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4) Actualiza el índice de paquetes (importante!)

sudo apt-get update

5) Instala la última versión de Docker Engine, containerd y Docker Compose:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6) Verifica que Docker Compose esté instalado correctamente comprobando la versión.

docker compose version

7) Verifica que Docker Engine esté instalado correctamente ejecutando la imagen hello-world:

sudo docker run hello-world

Instala un nodo Concordium testnet con Docker Compose

Puedes consultar la guía oficial en inglés aquí.

Concordium proporciona dos imágenes de Docker, una de mainnet y otra de testnet. Estas imágenes están diseñadas para usarse junto con Docker Compose o un controlador similar.

En nuestro caso la imagen del nodo testnet se puede obtener de la siguiente dirección

https://hub.docker.com/r/concordium/testnet-node

El nodo requiere una base de datos que debe almacenarse en el servidor del nodo. Depende del usuario seleccionar la ubicación de la base de datos en su sistema local. En la guía, la ubicación utilizada es /var/lib/concordium-testnet, pero servirá cualquier ubicación a la que tenga acceso el usuario que ejecuta el comando Docker.

El comando pull te permite descargar la imagen del repositorio e instalarla.

docker pull concordium/testnet-node

Ejecuta un nodo testnet con Docker Compose

Para ejecutar un nodo en testnet, deberás crear el fichero de configuración testnet-node.yaml y guardarlo en tu servidor. El contenido del fichero lo podrás copiar en:

https://developer.concordium.software/en/mainnet/net/guides/run-node.html#run-a-node

En la sección Run a testnet node:

Copia todo el contenido del texto y crea un fichero en tu servidor, mediante el comando:

sudo vi testnet-node.yaml

Ahora pega el contenido copiado en el editor del fichero testnet-node.yaml. Debes modificar el valor CONCORDIUM_NODE_COLLECTOR_NODE_NAME para indicar el nombre que quieras asignar al nodo, en nuestro ejemplo cumulo-test:

testnet-node-collector:
container_name: testnet-node-collector
image: concordium/testnet-node:latest
pull_policy: always
environment:
# Settings that should be customized by the user.
- CONCORDIUM_NODE_COLLECTOR_NODE_NAME=cumulo-test

Finalmente guárdalo con los siguientes comandos:

TECLA ESC
:wq!

Una vez guardado el fichero de configuración puedes iniciar el nodo Concordium mediante Docker Compose:

docker compose -f  testnet-node.yaml up -d

La opción -d permite que el nodo se ejecute en segundo plano.

Con estos pasos has finalizado la configuración y el arranque del nodo.

Sigue el estado del nodo en el Dashboard de Concordium: https://dashboard.testnet.concordium.com/

Puedes acceder a los logs de ejecución del nodo con el siguiente comando:

docker logs testnet-node

Crea una wallet testnet de Concordium y vincúlala al nodo

Lo siguiente que debes realizar para convertir tu nodo testnet en baker y comenzar a validar bloques en la red es crear una wallet móvil, exportar las claves de la cuenta al servidor del nodo y vincularlas al nodo. El saldo mínimo de la wallet para poder convertir el nodo en baker es de 14.000 CCD.

1) Descarga la wallet testnet de Concordium en tu móvil:

https://developer.concordium.software/en/mainnet/net/installation/downloads-testnet.html#concordium-mobile-wallet

Recuerda que tiene que ser una wallet testnet y tiene que ser la versión móvil.

2) Obtén el faucet de 2.000 CCD, para reunir los 14.000 CCD tendrás que crear varias cuentas y pedir en todas ellas el faucet, luego enviar el saldo a la cuenta que deseas vincular al nodo hasta reunir los 14.000 CCD.

3) Crea un fichero de exportación para convertir el nodo en baker. Accede a la cuenta de tu wallet con el saldo mínimo de 14.000 CCD y ve a la opción Baking.

4) Después de las pantallas que explican el baking, especifica la cantidad que deseas stakear en la pantalla Registrar el baker.

Más info en: https://developer.concordium.software/en/mainnet/net/mobile-wallet/add-baker-mw.html#add-baker-mw.

5) Siguiendo los pasos podrás crear un fichero de exportación baker_credentials.json que enviarás al servidor del nodo. Para ello puedes usar Firezilla, con los pasos relatados en la guía Cómo correr un nodo Baker en Concordium con Ubuntu-Docker. Apartado Crea una cuenta de usuario FTP.

https://medium.com/concordium-espa%C3%B1ol/c%C3%B3mo-correr-un-nodo-baker-en-concordium-con-ubuntu-docker-c7977673d19f

6) Aloja el fichero baker_credentials.json en el directorio por defecto de la aplicación del nodo var/lib/concordium-testnet/

7) Modifica el fichero de configuración del nodo testnet-node.yaml para indicar el fichero baker_credentials.json.

sudo vi testnet-node.yaml

Añade el siguiente código:

- CONCORDIUM_NODE_BAKER_CREDENTIALS_FILE=/mnt/data/baker-credentials.json

Guárdalo con los siguientes comandos:

TECLA ESC
:wq!

Reinicia el nodo con el comando:

docker compose -f  testnet-node.yaml up -d

Ya tienes un nodo baker ejecutándose en la testnet. Puedes comprobar el Dashboard de Concordium:

https://dashboard.testnet.concordium.com

Como puedes observar la columna Baker tiene ahora un número que identifica el nodo lo que confirma que efectivamente tienes el nodo validando bloques como Baker:

--

--

Mon
Concordium Español

“We are what we repeatedly do. Therefore, excellence is not an act. It is a habit.” — Aristotle Building in http://cumulo.pro/