Celestia
Celestia es una red de disponibilidad de datos que optimiza la escalabilidad de Ethereum separando la disponibilidad de datos del consenso y la ejecución. Introduce técnicas innovadoras como el muestreo de disponibilidad de datos y los árboles de Merkle con espacios de nombres, que permiten una verificación eficiente de los datos. Aprender a montar un nodo en Celestia desde cero te proporcionará una comprensión profunda de estas técnicas y te permitirá contribuir activamente a la seguridad y la escalabilidad de la red Ethereum.
Preparación e instalación del nodo.
Introducción
¿Qué es Celestia?Celestia es una data availability network que se adapta de manera segura al crecimiento de usuarios, posibilitando que cualquier individuo lance su propia cadena de bloques.
En la vanguardia de las arquitecturas blockchain escalables, Celestia introduce el concepto de "modular blockchains". En este enfoque, la escalabilidad se logra desvinculando la ejecución del consenso y presentando una novedosa técnica llamada "data availability sampling".
En el primer aspecto, Celestia asume la responsabilidad exclusiva de ordenar las transacciones y garantizar la disponibilidad de los datos, equiparable a reducir el consenso a una transmisión atómica. Por otro lado, el "data availability sampling" ofrece una solución eficiente al desafío de la disponibilidad de datos al exigir que solo los nodos ligeros, con recursos limitados, realicen muestreos en fragmentos aleatorios de cada bloque para verificar dicha disponibilidad.
La participación de más nodos ligeros en este proceso de muestreo aumenta la capacidad segura de la red para manejar datos, posibilitando un incremento en el tamaño del bloque sin un correspondiente aumento en el costo de la verificación de la cadena.
Tipos de Nodo:
Hay muchas formas en las que podes participar en las redes de Celestia. Los operadores de nodos de Celestia pueden ejecutar varias opciones en la red.
Consensus:
Nodo validador : este tipo de nodo participa en el consenso produciendo y votando bloques.
Nodo de consenso completo : un nodo completo de la aplicación celestia para sincronizar el historial de blockchain.
Data Availability:
Bridge node: este nodo sirve de puente entre la red de disponibilidad de datos y la red de consenso.
Full storage node: este nodo almacena todos los datos pero no se conecta a Consensus.
Light Node: los clientes ligeros realizan muestreos de disponibilidad de datos en la red de disponibilidad de datos.
Parte 1: Preparación
*NOTA: La versión de Ubuntu que se utiliza es la Ubuntu 22.04.4 LTS
Cómo instalar los componentes esenciales:
Este comando se encarga de actualizar la lista de paquetes disponibles en los repositorios, y si eso se realiza correctamente, procede a actualizar todos los paquetes instalados en el sistema.
Instalamos paquetes esenciales:
Instalando Golang:
Celestia-Node está escrito en Golang, por lo que primero debemos instalar Golang para construir y ejecutar nuestro nodo.
Configuramos la versión:
Descargamos e instalamos Golang:
Agregas /usr/local/go/bin en el directorio a $PATH si aún no lo hiciste:
Verificamos que se instalo correctamente la versión de Go:
Parte 2: Instalación
Eliminamos cualquier copia existente de celestia-node, clonamos el repositorio y cambie al directorio:
Chequeamos la versión deseada, según la red que vamos a usar:
Construimos el Celestia binary. Existen 2 maneras: Standar y Experimental.
Standar
Experimental
Si sos un operador de nodo que se siente cómodo con las funciones experimentales y buscas un rendimiento óptimo con un uso mínimo de RAM, se recomienda esta opción.
Instalamos el binary:
Construimos la utilidad de cel-key:
Verificamos que el binary esté funcionando y verificamos también la versión:
El comando mostrará la versión de celestia-node, el hash de confirmación, la fecha de compilación, la versión del sistema y la versión de Golang.
*NOTA: Ahora que hemos instalado el nodo, es hora de elegir el tipo y ejecutarlo.
Iniciando un Light Node:
Lo primero es crear una instancia (o inicializar) el nodo, que significa configurar un almacén en nuestra máquina, que es donde se almacenarán los datos y nuestras claves.
Mainnet:
celestia light init
Arabica:
celestia light init --p2p.network mocha
Mocha:
celestia light init --p2p.network arabica
Esto mostrará la ubicación de su almacén de nodos y su configuración. También mostrará la confirmación de que el almacén de nodos se ha inicializado.
*NOTA: En este paso se crea una frase nemotécnica (resguardarla).
Conectando a un public core endpoint:
Conexión al Punto Final gRPC del Nodo Validador, por defecto puerto 9090, es esencial para acceder a la capacidad de obtener y enviar información relacionada con el estado. Esto incluye la facultad de enviar transacciones PayForBlob o consultar el saldo de la cuenta del nodo.
*NOTA: No es necesario declarar una red para Mainnet Beta.
Ejemplo Mainnet:
Usando un RPC propio, o uno de la lista en la página de prueba de Mocha o la lista en la página de devnet de Arábica , iniciamos el nodo:
Ejemplo en Mocha:
Ejemplo en Arabica:
Keys y wallets:
Podemos crear una clave para el nodo ejecutando el siguiente comando con la utilidad cel-key en el directorio celestia-node:
Podemos iniciar nuestro light node con la clave creada anteriormente ejecutando el siguiente comando:
Una vez que iniciamos el light node, se generará una clave para nuestra wallet. Deberemos fondearla esa dirección con tokens de testnet para pagar las transacciones de PayForBlob.
Podemos encontrar la dirección utilizando la CLI de RPC o ejecutando el siguiente comando en el directorio celestia-node:
Testnet tokens
Existen dos redes para obtener tokens de testnet:
También se accede a ellos ingresando al Discord de Celestia y solicitándolos de la siguiente manera:
$request
Donde es la dirección celestia1****** generada cuando creaste la billetera.
Full storage node:
Iniciamos con el siguiente comando:
Mainnet:
celestia full init
Arabica:
celestia full init --p2p.network arabica
Mocha:
celestia full init --p2p.network mocha
Conectando a un public core endpoint:
Conexión al Punto Final gRPC del Nodo Validador, por defecto puerto 9090, es esencial para acceder a la capacidad de obtener y enviar información relacionada con el estado. Esto incluye la facultad de enviar transacciones PayForBlob o consultar el saldo de la cuenta del nodo.
*NOTA: No es necesario declarar una red para Mainnet Beta.
Ejemplo en Mocha:
Ejemplo en Arabica:
Bridge Node:
Iniciamos con el siguiente comando:
Mainnet:
celestia bridge init
Arabica:
celestia bridge init --p2p.network arabica
Mocha:
celestia bridge init --p2p.network mocha
Conectando a un public core endpoint:
Conexión al Punto Final gRPC del Nodo Validador, por defecto puerto 9090, es esencial para acceder a la capacidad de obtener y enviar información relacionada con el estado. Esto incluye la facultad de enviar transacciones PayForBlob o consultar el saldo de la cuenta del nodo.
*NOTA: No es necesario declarar una red en Mainnet Beta.
Ejemplo en Mocha:
Ejemplo en Arabica:
Todo el material que se presenta aquí es de acceso público. Para obtener información detallada y seguir los pasos en inglés, se puede visitar la web oficial.
Última actualización