Instalando un Nodo Shimmer – Guía paso a paso en Español

4745

Agradecimiento

Antes de sumergirnos en este post tutorial debemos dar todo el crédito de la guía a C3PO, miembro de la comunidad IOTA y de los X-Teams quien muy amablemente a accedido a realizar esta tutorial para montar un nodo Shimmer y publicarlo en esta plataforma. Si tienes curiosidad por seguir aprendiendo como montar otros nodos, puedes visitar la página web al mejor estilo Wiki de C3PO, llamada Untangled Wiki donde podrás encontrar esta y otras guías completamente en español.  Gracias C3PO por tu gran contribución 🙌


Intro

Montemos un nodo Shimmer

Previo a comenzar con la Guia Paso a Paso sobre cómo instalar un nodo Shimmer, vamos a hacer un breve repaso sobre Shimmer.

Shimmer es una red de capa (L1) que junto con IOTA apunta a construir una nueva arquitectura ledger, que se convertirá en la capa fundacional para construir nuevas economías descentralizadas escalables y componibles. Basándose en el ledger DAG (Directed Acyclic Graph) llamado “Tangle”, el protocolo se actualizará a través de una serie de lanzamientos que añadirán nuevas características como la tokenización nativa, los tipos de salida, las redes de contratos inteligentes de Capa 2 y, finalmente, la descentralización total a través de un algoritmo de consenso sin líder. Shimmer será la red de innovación con acceso temprano a estos desarrollos de vanguardia para ayudar a validarlos antes de que se publiquen en la red principal de IOTA.

Al igual que la actual red principal de IOTA, Shimmer ofrece microtransacciones sin fees pero, a diferencia de la actual red principal de IOTA, también regulará el acceso a la red a través de Mana.

Con la versión beta de Shimmer, que fue lanzada hace un par de semanas, se lanza el primer gran hito: La primera iteración de estos nuevos desarrollos es la actualización de Stardust, que permite la tokenización y el despliegue de la cadena de contratos inteligentes (incluyendo la compatibilidad con EVM y WASM) en el protocolo base, abriendo niveles de utilidad antes imprevistos en la Tangle.

Shimmer utilizará los nodos Hornet. El software del nodo Hornet es la columna vertebral de la red IOTA, sus nodos individuales ejecutan el software que ayuda a mantener el estado del ledger a través de la comunicación entre pares. Los nodos son también puntos de entrada a la red para los usuarios, y Hornet implementa el protocolo central que define las reglas de la red.

La última semana de Julio, Antononio Nardella llevó adelante el Shimmer Beta Node Installation Party, donde a través de un stream realizó en vivo un tutorial paso a paso de la instalación de estos nodos pero en Inglés. Dejo el video como un soporte más pero todos los pasos de la instalación los encontrarán de manera detallada a continuación.

Gabriela Jara

CC. IOTA Hispano


DISCLAIMER: Debemos tener en cuenta la necesidades mínimas para la instalación un nodo Hornet para la red Shimmer. Esta guía no cubre el ámbito de seguridad del nodo ni del sistema operativo

Requerimientos hardware

Los nodos Hornet consumen pocos recursos y estos pueden funcionar en arquitecturas ARM o x86.

Para esta guía usamos un VPS x86 de Heztner

La configuración mínima es:

  • VPS 2 cores 4 con 4Gb ram
  • Disco SSD o NVME

#Requerimientos software

Esta guía está basada en el sistema operativo:

  • Linux Ubuntu 20.
  • Bien puede correr correctamente en sistemas Ubuntu/Debian.
  • El resultado de la instalación puede variar en función del estado del SO o la variación del código fuente y ficheros de configuración de Hornet.

Método 1. Shimmer con Docker

La instalación del nodo Shimmer se realiza con imágenes Docker:

  • Nodo Hornet
  • Proxy Traefik
  • Prometheus y Grafana
  • Módulos INX

La opción más recomendable de instalación del nodo Shimmer es con Docker ya que nos proporciona de una forma sencilla la instalación de todas las herramientas.

#Instalación Docker

Antes de continuar tenemos que instalar Docker en nuestro VPS. Hay diferentes formas de realizarlo pero la más sencilla es utilizar el script sh que proporciona Docker.

 Para esto ejecutamos en la terminal:

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

Una vez terminada la instalación en la consola añadimos un grupo docker y añadimos al usuario en uso al grupo docker. Esto es necesario hacerlo para poder usar docker con el usuario conectado a la consola sin necesidad de usar sudo

sudo groupadd docker
sudo usermod -aG docker $USER



Cerrar la consola e iniciar una nueva sesión con el mismo usuario que se añadió al grupo docker.

En este momento podemos comprobar el correcto funcionamiento llamando a un contenedor de prueba Docker.


Instalación DockerCompose

Para la ejecución del nodo Shimmer utilizaremos docker-compose ya que tiene la ventaja de centralizar la configuración en un único fichero yaml.

Para esto ejecutamos en la terminal:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version 

Clonado del repositorio Shimmer

El nodo Shimmer necesita de ficheros de recursos para poder ejecutarse, en este momento clonamos el repositorio Shimmer en local para tener acceso a ellos.

Para esto ejecutamos en la terminal:

mkdir -p /opt/shimmerbeta
cd /opt/shimmerbeta
wget -c https://github.com/iotaledger/hornet/releases/download/v2.0.0-beta.3/HORNET-2.0.0-beta.3-docker.tar.gz
tar -xzf HORNET-2.0.0-beta.3-docker.tar.gz
rm HORNET-2.0.0-beta.3-docker.tar.gz

Configuración de puertos

En este momento abriremos los puertos necesarios en nuestro VPS para permitir la comunicación del nodo con el exterior.

Para esto ejecutamos en la terminal:

apt install ufw -y
ufw default allow outgoing
ufw default deny incoming
ufw allow ssh
ufw allow 80
ufw allow 443
ufw allow 14626/udp
ufw allow 15600/tcp
yes | ufw enable

Generar usuario y password

Para generar el password que utilizaremos en el login del dashboard del nodo ejecutaremos la utilidad que proporciona Hornet para tal fin, por lo que primero obtenemos las imagenes del nodo con todas las utilidades out of the box.

Descargamos las imágenes de los contenedores Docker del nodo.

Para esto ejecutamos en la terminal:

cd /opt/shimmerbeta
docker-compose pull

Después de descargar las imagenes y antes de crear nuestro usuario/password, creamos un fichero de entorno (.env) donde guardaremos los siguientes datos:

  • Host
  • Email
  • Dashboard user
  • Password
  • Password Salt

Pero antes realizamos las consultas de los datos necesarios para informar el fichero de entorno.

Primero, consultamos la url única que tiene nuestro nodo.

Para esto ejecutamos en la terminal:

dig -x node-ip

donde 'node-ip' es nuestra ip del VPS

dig -x 103.124.46.78

Nos devuelve 'static.103.124.46.78.clients.your-server.de'

Segundo, generamos el password para nuestro Dashboard del nodo.

Para esto ejecutamos en la terminal:

cd /opt/shimmerbeta
docker-compose run --rm hornet tool pwd-hash --json --password "YOURPASSWORDGOESHERE" | sed -e 's/\r//g'

Donde 'YOURPASSWORDGOESHERE' corresponde a nuestra password super secreta.

y nos devuelve 
{
"passwordHash": "050b72362975522a15a8b769c97a581ac454cf770cbf38a7736a632ebdce4f96",
"passwordSalt": "15181e146d24e35ecb35482f163f15d551a4c6cba9b8a87e62399e9df9390208"
}

Por último con estos datos, sustituimos los valores del siguiente script:

  • YOURHOSTNAME por static.103.124.46.78.clients.your-server.de que nos devolvió el comando DIG
  • YOUREMAIL por tu email.- [email protected] (u otro de vuestra conveniencia)
  • YOURDASHBOARDUSERNAME por admin (u otro de vuestra conveniencia)
  • YOURDASHBOARDPASSWORDHASH por el valor de passwordHash
  • YOURDASHBOARDPASSWORD por el valor de passwordSalt

En este momento generamos el fichero de entorno.

Para esto ejecutamos en la terminal:

touch .env
echo "HORNET_HOST=YOURHOSTNAME" >> .env
echo "ACME_EMAIL=YOUREMAIL" >> .env
echo "DASHBOARD_USERNAME=YOURDASHBOARDUSERNAME" >> .env
echo "DASHBOARD_PASSWORD=YOURDASHBOARDPASSWORDHASH" >> .env
echo "DASHBOARD_SALT=YOURDASHBOARDPASSWORD" >> .env

Una vez ejecutado el script comprobamos que el fichero de entorno .env contiene los valores deseados.

Para esto ejecutamos en la terminal:

cd /opt/shimmerbeta
cat .env

Nos devuelve

HORNET_HOST=static.103.124.46.78.clients.your-server.de
ACME_EMAIL=[email protected]
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=050b72362975522a15a8b769c97a581ac454cf770cbf38a7736a632ebdce4f96
DASHBOARD_SALT=15181e146d24e35ecb35482f163f15d551a4c6cba9b8a87e62399e9df9390208

Una vez comprobado le diremos a la instalación del Nodo que use esos valores.

Para esto ejecutamos en la terminal:

cd /opt/shimmerbeta
./prepare_docker.sh

Ejecutar el nodo

En este momento podemos levantar el nodo, solo tendremos que llamar a docker-compose desde el mismo directorio donde se clono el repositorio Shimmer.

Esto nos deja corriendo el contenedor en segundo plano. El nodo se levantará con el proxy Traefik incluyendo un certificado Certbot para conexiones seguras(https), el nodo Hornet con los módulos INX, Prometheus como recolector de recursos del nodo y Grafana como monitor de recursos que mostrará gráficas del estado del nodo.

Aquí levantamos el nodo Shimmer

cd /opt/shimmerbeta
docker-compose up -d

 Aquí vemos el log de Shimmer

docker compose logs -f 

Aquí paramos el contenedor Shimmer

docker-compose stop

Grafana

El nodo de Shimmer viene con un recolector de recursos Prometheus y un monitor de recursos Grafana, para acceder a el dashboard escribimos en la barra del navegador web la dirección Dig que consultamos anteriormente:

https://static.XX.XX.XX.XX.clients.your-server.de/grafana

Al ser la primera vez que accedemos nos solicita un usuario y password que por defecto es admin/admin .- al introducir el login nos solicita cambiar el password por defecto donde eligiéremos un password a nuestra conveniencia.

Una vez dentro del panel de administración tendremos que añadir un panel para monitorear nuestro nodo Shimmer usando el siguiente Json de configuración:

Grafana Json node dashing

Seleccionando en el menu izquierdo accedemos a área de DashBoard y seleccionamos import An image

 

Después en Github copiamos el contenido del Json de configuracion del panel de monitorizacion. An image

Posteriormente copiamos el Json en el cuadro import via panel json An image

 

Una vez pegado, cargamos pulsando el boton load An image

 

Y al acceder nuevamente al menu DashBoard nos aparecen las métricas de nuestro nodo. An image

Comentarios

comentarios

pasarela de pagos con criptomonedas