WEB3DEV Español

Cover image for ¿Cómo desplegar un Nodo de Aptos?
Delia Viloria T
Delia Viloria T

Posted on

¿Cómo desplegar un Nodo de Aptos?

Image description

En junio del 2019, Meta, la empresa multimillonaria dirigida por Mark Zuckerberg, anunció “Libra”. Lo que se suponía que iba a ser un stablecoin revolucionario, Libra, se encontró con problemas regulatorios y una versión aguada de Libra, “Diem” nació.

Los trabajadores en Meta tenían la esperanza que Diem tomara vuelo pero, en enero del 2022, las cortinas cerraron los sueños de Zuckerberg de lanzar una criptomoneda ya que, los activos de Diem fueron vendidos por 200$ millones.

Las consecuencias de estos años dramáticos fue un puñado de desarrolladores probados en batalla. Estos desarrolladores se juntarían para crear “Aptos” en octubre del 2022, lanzando “Diem”, la Mainnet de Aptos.

Desde su concepción, Aptos ha hecho que las personas volteen a verla con su crecimiento rápido, recaudando más de 350$ millones en inversiones de capital riesgo y venciendo a Ethereum y Bitcoin con una tasa de crecimiento del 500%. Dicho esto, Aptos no es solo otra criptomoneda más: es una plataforma de blockchain POS de capa 1, donde los usuarios pueden construir dApps, contratos inteligentes, construir blockchains usando Aptos SDK y más.

Ahora que entiendes la historia de Aptos, permítenos enseñarte más sobre esta plataforma inspiradora, seguido de cómo desplegar un nodo Aptos.

¿Qué es Aptos?

Puede que ya hayas entendido que Aptos es una blockchain L1 (capa 1) y se intercambia bajo la extensión del dominio “APT”. Fue creada con el principio de la adopción masiva, escalabilidad, confianza, fiabilidad, de costo eficiente, segura y con actualizaciones continuas.

Con un total de transacciones sobre los 84 millones, 104 validadores activos y más de 840 millones de tokens APT activamente estacados (para el 8 de febrero del 2023), es innecesario decir que Aptos tiene un pie fuerte para un crecimiento exponencial, incluso en un mercado volátil.
Cuando esta situación sucede, los desarrolladores, startups y las empresas web3 estarían axiomáticamente interesados en desplegar nodos de Aptos, y aquí es donde esta guía se vuelve útil. Está atento hasta el final para aprender sobre las prácticas robustas sobre el despliegue de nodos de blockchain de Zeeve.

Sin mucho más que añadir, vamos a aprender a cómo desplegar un nodo de Aptos, comenzando con los requisitos del hardware.

Requisitos del Hardware

Basados en la documentación oficial publicado por Aptos, estos son los recursos recomendados del hardware para ejecutar un nodo público completo de grado de producción. Es necesario una RAM de 32 GB y 2TB de SSD para poder ejecutar las operaciones de despliegue sin problemas.

  • CPU: 16 hilos, 8 núcleos, 2.8Ghz o más (un Intel Xeon Skylake o nuevas, o un sistema con un hardware similar)
  • RAM: 32 GB
  • Almacenamiento: 2T SSD con al menos 40k IOPS y 200MiB/s de banda ancha.
  • Banda Ancha del internet: 1 Gbps

Para ejecutar el nodo completo para desarrollar o probar:

  • CPU: 2 núcleos
  • RAM: 4 GB
  • AWS:
    • c6id.8xlarge (si estás usando tu SSD local)
    • c6i.8xlarge + io1/io2 volúmen EBS con 40k IOPS
  • GCP:
    • n2-standard-16 (si estás usando tu SSD local)
    • n2-standard-32 + pd-ssd con 40k IOPS

Ejecutando los Puertos

De acuerdo con la documentación oficial, estos son los puertos esenciales requeridos para el proceso.

Configuraciones del Puerto para el validador:

  • Abre el post TCP 6180 para permitir que los validadores hablen entre sí mismos
  • Abre el post TCP 6181 para conectar el validador del nodo completo
  • Abre el post TCP 9101 para compartir las métricas para validar las estadísticas de salud
  • Asegúrate de mantener el puerto TCP 6186 abierto para el respaldo de almacenamiento local

Configuraciones del Puerto para el nodo completo público:

  • Abre el puerto TCP 6182 para permitir que los nodos completos hablen entre sí mismos.
  • Abre el puerto TCP 9101 y envía las métricas del nodo completo para validar las estadísticas de salud (es requerido solamente en la fase de registrar)
  • Abre el puerto TCP 80/8080 para acceder al API REST
  • Mantén el puerto TCP 6186 abierto para el respaldo de almacenamiento local.

Desplegando el nodo

Para comenzar, lo más probable es que estés usando Ubuntu, así que empecemos cambiando el directorio a /home/ubuntu.

cd /home/ubuntu
Enter fullscreen mode Exit fullscreen mode

Paso 2: Clona el repositorio de Aptos con el siguiente código:

git clone https://github.com/aptos-labs/aptos-core.git
Enter fullscreen mode Exit fullscreen mode

Paso 3: Necesitas cd en el directorio del núcleo de aptos con el siguiente comando:

cd aptos-core
Enter fullscreen mode Exit fullscreen mode

Paso 4: Para preparar tu entorno de desarrollo, ejecuta el siguiente script:

./scripts/dev_setup.sh
Enter fullscreen mode Exit fullscreen mode

Paso 5: Ejecuta el código a continuación y actualiza el entorno de tu shell:

source ~/.cargo/env
Enter fullscreen mode Exit fullscreen mode

Paso 6: Revisa la rama del mainnet usando el siguiente comando. Puedes usar devnet o testnet en cambio.

git checkout --track origin/mainnet
Enter fullscreen mode Exit fullscreen mode

Paso 7: Asegúrate que tu directorio esté trabajando directamente en el núcleo aptos y luego ejecuta el siguiente comando:

cp config/src/config/test_data/public_full_node.yaml fullnode.yaml
Enter fullscreen mode Exit fullscreen mode

Paso 8: Descarga genesis.blob y waypoint.txt para el mainnet o testnet

  • Génesis y waypoint para mainnet
curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/genesis.blob

curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/waypoint.txt
Enter fullscreen mode Exit fullscreen mode
  • Génesis y waypoint para testnet
curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/genesis.blob

curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/waypoint.txt
Enter fullscreen mode Exit fullscreen mode
  • Génesis y waypoint para testnet
curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/devnet/genesis.blob

curl -O https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/devnet/waypoint.txt
Enter fullscreen mode Exit fullscreen mode

Paso 9: En los siguientes pasos, edita el archivo fullnode.yaml en tu directorio de trabajo actual, como se muestra abajo.

Paso 9.1: Comienza especificando el camino correcto a waypoint.txt, el cual acaba de ser descargado editando base.waypoint.from_file en fullnode.yaml. Te señalará a waypoint.txt, por defecto, en el directorio de trabajo actual.

base: 
waypoint: 
from_file: "./waypoint.txt"
Enter fullscreen mode Exit fullscreen mode

Cámbialo a:

from_file: "/home/ubuntu/aptos-core/waypoint.txt"
Enter fullscreen mode Exit fullscreen mode

Paso 9.2: Para la clave genesis_file_location, provee el camino completo al archivo genesis.blob

Por ejemplo:

genesis_file_location: "./genesis.blob"
Enter fullscreen mode Exit fullscreen mode

Cámbialo a:

genesis_file_location: "/home/ubuntu/aptos-core/genesis.blob"
Enter fullscreen mode Exit fullscreen mode

Paso 9.3: También podemos cambiar los datos del directorio:

data_dir: "/opt/aptos/data"
Enter fullscreen mode Exit fullscreen mode

Crear un Binario

Para construir el binario debug, omite el parámetro -release- y ejecuta el siguiente comando:

cargo build -p aptos-node --release
Enter fullscreen mode Exit fullscreen mode

Ejecútalo así o crea un servicio como se muestra abajo:

  1. Ejecuta CLI como comando:
/home/ubuntu/aptos-core/target/release/aptos-node -f /home/ubuntu/aptos-core/fullnode.yaml
Enter fullscreen mode Exit fullscreen mode
  1. Crea un servicio systemd de Aptos:
sudo vim /etc/systemd/system/aptos.service
Enter fullscreen mode Exit fullscreen mode

2.1 Escribe tu servicio de systemd:

[Unit] 
Description=aptos 
StartLimitIntervalSec=500 
StartLimitBurst=5 

[Service] 
Restart=on-failure 
RestartSec=5s   
ExecStart=/home/ubuntu/aptos-core/target/release/aptos-node -f /home/ubuntu/aptos-core/fullnode.yaml 
Type=simple 
User=root 

[Install] 
WantedBy=multi-user.target
Enter fullscreen mode Exit fullscreen mode

2.2 Habilítalo y ejecútalo con los siguientes pasos:

  • Habilitar
sudo systemctl enable aptos.service
Enter fullscreen mode Exit fullscreen mode
  • Iniciar
sudo systemctl start aptos.service
Enter fullscreen mode Exit fullscreen mode
  • Puedes revisar el estado ejecutando:
systemctl status aptos.service
Enter fullscreen mode Exit fullscreen mode
  • El cual debería verse similar a:

Image description

  • En el siguiente paso, puedes revisar los registros usando:
journalctl -u aptos.service
Enter fullscreen mode Exit fullscreen mode

Revisando el estatus del nodo de Aptos

Para revisar el estatus, verifica la sincronización inicial con el siguiente comando:

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version{.*\"synced\"}" | awk '{print $2}'
Enter fullscreen mode Exit fullscreen mode

Image description

El comando mostrará la versión sincronizada actual de tu nodo.

Por ejemplo: 3242412

Puedes usar el sitio de navegación de Aptos para comparar.

Verificar las conexiones de red outbound

Técnicamente, el número de conexiones de red outbound debería ser más de 0.

Ejecuta el siguiente comando para revisar:

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_connections{direction=\"outbound\"" aptos_connections{direction="outbound",network_id="Public",peer_id="ddeb6033",role_type="full_node"} 4
Enter fullscreen mode Exit fullscreen mode

Image description

Voila, una vez que hayas verificado la red outbound, haz desplegado exitosamente un nodo completo de Aptos con código.

Terminando

Puedes que despliegues cualquier tipo de nodo de Aptos por tu propia cuenta o manténte posteando en Zeeve ya que estamos trabajando duro para desplegar una interfaz de nodo de despliegue de Aptos de “no-código” para ti. Cuando despliegas un nodo por tu propia cuenta, sin darte cuenta, te encontrarás con errores en el código, con la sincronización de la red, verificar el despliegue, mantener el tiempo de actividad (uptime), etc.

Pero cuando tomas la ayuda de una plataforma de despliegue de nodo robusto como Zeeve, nuestros ingenieros DevOps pueden prevenir el proceso entero del despliegue, seguido de un soporte luego que hagas el despliegue, asegurándose que no haya downtime en la red y, sin mencionar, que tendrás la ayuda de una UI perfecta para mantener tus dApps y los contratos inteligentes arriba y ejecutándose.

Dicho esto, Zeeve es un servicio de plataformas de infraestructura de la blockchain que no sólo provee una plataforma robusta para desplegar nodos de Aptos sino también para Ethereum, Polygon, Hyperledger Fabric, Avalanche y otrosprotocolos mayores.

Somos la única plataforma de blockchain que ofrece la elección de “Trae Tu Propia Nube” de todas las opciones de proveedores de nube.

Así que, ¿qué estás esperando?. Apunta una sesión gratuita con alguno de nuestros expertos, hoy.

Este artículo fue escrito por Mohd Zaid y traducido por Delia Viloria T. Su original se puede leer aquí.

Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_eshttps://twitter.com/web3dev_es en Twitter.

Discussion (0)