Una guía rápida sobre cómo iniciar el nodo Chainlink

Nov 28 2022
¿Qué es un oráculo en blockchain?
Los oráculos son fuentes de datos que traen datos de fuentes de datos fuera de la cadena de bloques (fuera de la cadena) y los colocan en la cadena de bloques (en la cadena) para que los utilicen los contratos inteligentes. Esto es necesario porque los contratos inteligentes que se ejecutan en Ethereum no pueden acceder a la información almacenada fuera de la red blockchain.
Imagen original de Shubham Dhage

Los oráculos son fuentes de datos que traen datos de fuentes de datos fuera de la cadena de bloques (fuera de la cadena) y los colocan en la cadena de bloques (en la cadena) para que los utilicen los contratos inteligentes. Esto es necesario porque los contratos inteligentes que se ejecutan en Ethereum no pueden acceder a la información almacenada fuera de la red blockchain.

Bien, ¿qué tipo de oráculos hay?

Los oráculos pueden ser centralizados y descentralizados. Los oráculos centralizados están controlados por una sola persona y, en la mayoría de los casos, se pueden ubicar en un solo servidor. Los oráculos descentralizados consisten en varios servidores controlados por diferentes organizaciones, que a su vez toman una decisión general del oráculo basada en el consenso.

La red de Oracle más popular es Chainlink . Te diré cómo desplegar tu oráculo. Comencemos instalando el nodo en este artículo.

Las redes Oracle descentralizadas de Chainlink proporcionan entradas, salidas y cálculos a prueba de manipulaciones para admitir contratos inteligentes avanzados en cualquier cadena de bloques.

Para ejecutar un nodo, puede usarlo en su computadora para realizar pruebas locales o ejecutar una versión de producción en un servidor en la nube. En esta guía, consideraré la opción de ejecutar un nodo en un VPS.

Creé en DigitalOcean droplet y Database Cluster para PostgreSQL.

Tablero de Digital Ocean

Para un nodo, Chainlink recomienda los siguientes requisitos del sistema:

  • Mínimo: para comenzar a ejecutar un nodo de Chainlink, necesitará una máquina con al menos 2 núcleos y 4 GB de RAM.
  • Recomendado: los requisitos para ejecutar un nodo de Chainlink escalan como la cantidad de trabajos que también escalan los servicios de su nodo. Para nodos con más de 100 trabajos, necesitará al menos 4 núcleos y 8 GB de RAM.
  • Mínimo: al menos 2 núcleos, 4 GB de RAM y 100 GB de almacenamiento.
  • Recomendado: para admitir más de 100 trabajos, su servidor de base de datos necesitará al menos 4 núcleos, 16 GB de RAM y 100 GB de almacenamiento.

curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again

mkdir ~/.chainlink

Estaré ejecutando un nodo para Ethereum Mainnet. Por lo tanto, especificaré el parámetro ETH_CHAIN_ID=1 . Para saber de quién es el ID en su caso, debe encontrarlo en el sitio web chainlist.org

Ejemplo para Ethereum Mainnet

Vamos a crear un archivo de entorno y especificar todas las variables requeridas:

echo "ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink/.env

Además, necesitamos un cliente Ethereum, podemos ejecutarlo localmente o usar servicios de terceros como Alchemy , Infura , QuikNode , Chainstack , Moralis .

Prefiero usar Alchemy por sus tarifas convenientes con límites altos, la rápida capacidad de respuesta del nodo y el tablero informativo.

precios de alquimia

Para trabajar con Alchemy, debe crear una nueva aplicación seleccionando la cadena y la red.

Ventana de creación de aplicaciones en Alchemy

Cuando se creó la aplicación, los análisis estarán disponibles en el tablero. Para interactuar con el nodo, necesitaremos exportar un enlace para conectarnos a través de WebSockets.

Tablero de alquimia

En la configuración, debe encontrar el enlace: wss://<URL>

Agreguemos una conexión al nodo Ethereum a la configuración de Chainlink:

echo "ETH_URL=wss://<URL>" >> ~/.chainlink/.env

Si está probando, puede agregar ?sslmode=disableal final de la URL. Sin embargo, nunca debe hacer esto en un nodo de producción.

Plantilla de cadena de conexión:

postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE

echo "DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE" >> ~/.chainlink/.env

La versión actual en el momento de escribir este artículo es 1.10.0. Ver la última versión actual está disponible en el enlace .

Si el nodo se inicia desde el usuario raíz, debe seleccionar solo las versiones raíz de las imágenes.

Para cambiar la versión, reemplace el parámetro con la versión deseada:

contrato inteligente/eslabón de cadena:<versión>

En mi caso, por ejemplo, ejecutaré la versión root. Para hacer esto, usaré el siguiente comando:

cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n

      
                

A continuación, el nodo le pedirá que ingrese un correo electrónico y una contraseña para el operador. Si todo fue exitoso, el nodo se iniciará y veremos una gran cantidad de mensajes en la terminal.

Para lanzar el nodo más tarde, necesitamos guardar las claves, para esto, detendremos el nodo y realizaremos las siguientes acciones:

Guarde el correo electrónico del operador:

echo "[email protected]" > ~/.chainlink/.api

echo "password" >> ~/.chainlink/.api

echo "my_wallet_password" > ~/.chainlink/.password

cd ~/.chainlink && docker run --restart=always  -p 6688:6688 -d --name chainlink -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n -p /chainlink/.password

Genial, el nodo se está ejecutando, ahora nos gustaría conectarnos a él desde un dispositivo local. Para hacer esto, debe crear un túnel SSH al servidor con el nodo.

ssh <USERNAME>@<IP> -L 6688:localhost:6688 -N

Dejemos la pestaña del terminal abierta y abierta y haga clic en el enlace en el navegador:http://localhost:6688/

Introduzca el correo electrónico y la contraseña del operador especificados anteriormente.

IU de inicio de sesión del operador Chainlink

¡Genial, todo está configurado correctamente!

IU del operador Chainlink

Ahora puedes crear tus oráculos y trabajos para ellos.

En el siguiente artículo , creé una guía para implementar Oracle y conectarlo al nodo.

Para una configuración más específica con acceso seguro a la interfaz del operador y el desempeño del trabajo de Oracle, recomiendo leer los siguientes enlaces: