Crea tu oráculo Chainlink en Ethereum

Nov 28 2022
En el artículo anterior, creé una guía para instalar su nodo Chainlink, úselo si no tiene un nodo en ejecución, ya que es necesario para la implementación de Oracle. El siguiente paso será implementar el contrato de Oracle y vincularlo al nodo.
Foto de fabio en Unsplash

En el artículo anterior , creé una guía para instalar su nodo Chainlink, úselo si no tiene un nodo en ejecución, ya que es necesario para la implementación de Oracle.

El siguiente paso será implementar el contrato de Oracle y vincularlo al nodo.

El contrato de Oracle es el componente en cadena para el servicio de Oracle: escucha las solicitudes de datos de otros contratos, transmite consultas de datos a los nodos de Oracle y transmite los datos devueltos a los contratos de los clientes. Este contrato también puede realizar algún cálculo en los puntos de datos devueltos para producir un valor agregado que envía al contrato solicitante.

Necesitamos implementar uno de los contratos como Oracle.sol u Operator.sol en la cadena de bloques.

Oracle.sol es un tipo antiguo de contrato que no admite "respuestas grandes" y, por lo tanto, no admitirá respuestas de varias palabras. Operator.sol es un nuevo tipo que admite grandes respuestas pero consume más gas.

Elija el tipo de contrato según su tarea: si necesita obtener una respuesta breve con una sola variable, seleccione — Oracle.sol , y si necesita devolver varios valores al contrato — Operator.sol.

Te mostraré un ejemplo de cómo configurar ambas opciones. Comencemos con Oracle.sol .

Para implementar el contrato, usaremos Remix , sí, también puede usar herramientas como Hardhat o Truffle , pero en la guía, veré el ejemplo de Remix .

Para implementar el contrato Oracle.sol , copie el siguiente código:

// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";

A continuación, vaya a la pestaña de implementación y seleccione el entorno deseado, por ejemplo: Proveedor inyectado — Metamask . Conéctese a la cuenta que se usará para la implementación y especifique la red requerida.

Para implementarlo, elija el contrato de Oracle y configure el parámetro: la dirección del contrato LINK en la red especificada ( búsquelo en la documentación de Chainlink ) y haga clic en el botón de transacción.

Despliegue del contrato Oracle.sol en el IDE de Remix

A continuación, debemos otorgar permiso a la billetera de nuestro nodo para registrar los resultados de las funciones de Oracle. La dirección de la billetera del nodo se encuentra en la GUI del operador de Chainlink en la esquina superior derecha de la página de inicio. Cópielo , llame a la función de contrato de Oracle setFulfillmentPermission , péguelo en los argumentos y establezca el valor en true .

Otorgar permiso al nodo para registrar los resultados

Eso es todo, en esta etapa ha implementado su oráculo, solo necesita conectar la interacción con él a otro contrato inteligente.

¿Y el contrato de Operator.sol , cómo implementarlo?

OK, para hacer esto, copia el siguiente código:

// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";

Despliegue del contrato de Operator.sol en el IDE de Remix

Después de implementar el contrato, como antes en el contrato Oracle.sol , debemos agregar la dirección de la billetera del nodo. Para hacer esto, llame a la función setAuthorizedSenders e inserte la dirección en el siguiente formato en los argumentos: [“dirección”]

Otorgar permiso al nodo para registrar los resultados

Ha implementado su contrato de Oracle a la perfección, en el próximo artículo escribiré sobre cómo los contratos inteligentes pueden interactuar con Oracle.