Un guide rapide sur la façon de lancer le nœud Chainlink

Nov 28 2022
Qu'est-ce qu'un oracle dans la blockchain ?
Les oracles sont des flux de données qui apportent des données provenant de sources de données hors de la chaîne de blocs (hors chaîne) et les placent sur la chaîne de blocs (en chaîne) pour que les contrats intelligents les utilisent. Cela est nécessaire car les contrats intelligents exécutés sur Ethereum ne peuvent pas accéder aux informations stockées en dehors du réseau blockchain.
Image originale de Shubham Dhage

Les oracles sont des flux de données qui apportent des données provenant de sources de données hors de la chaîne de blocs (hors chaîne) et les placent sur la chaîne de blocs (en chaîne) pour que les contrats intelligents les utilisent. Cela est nécessaire car les contrats intelligents exécutés sur Ethereum ne peuvent pas accéder aux informations stockées en dehors du réseau blockchain.

OK, quel genre d'oracles y a-t-il ?

Les oracles peuvent être centralisés et décentralisés. Les oracles centralisés sont contrôlés par une seule personne et, le plus souvent, peuvent être situés sur un seul serveur. Les oracles décentralisés se composent de plusieurs serveurs contrôlés par différentes organisations, qui à leur tour prennent une décision générale d'oracle basée sur le consensus.

Le réseau oracle le plus populaire est Chainlink . Je vais vous dire comment déployer votre oracle. Commençons par installer le nœud dans cet article.

Les réseaux oracle décentralisés Chainlink fournissent des entrées, des sorties et des calculs inviolables pour prendre en charge des contrats intelligents avancés sur n'importe quelle blockchain.

Pour exécuter un nœud, vous pouvez l'utiliser sur votre ordinateur pour des tests locaux ou exécuter une version de production sur un serveur cloud. Dans ce guide, j'envisagerai la possibilité d'exécuter un nœud sur un VPS.

J'ai créé sur le droplet DigitalOcean et le cluster de bases de données pour PostgreSQL.

Tableau de bord DigitalOcean

Pour un nœud, Chainlink recommande la configuration système suivante :

  • Minimum : Pour commencer à exécuter un nœud Chainlink, vous aurez besoin d'une machine avec au moins 2 cœurs et 4 Go de RAM.
  • Recommandé : les exigences pour l'exécution d'un nœud Chainlink évoluent en fonction du nombre de tâches que vos services de nœud mettent également à l'échelle. Pour les nœuds avec plus de 100 tâches, vous aurez besoin d'au moins 4 cœurs et 8 Go de RAM.
  • Minimum : Au moins 2 cœurs, 4 Go de RAM et 100 Go de stockage.
  • Recommandé : Pour prendre en charge plus de 100 travaux, votre serveur de base de données aura besoin d'au moins 4 cœurs, 16 Go de RAM et 100 Go de stockage.

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

mkdir ~/.chainlink

Je vais exécuter un nœud pour le réseau principal Ethereum. Par conséquent, je vais spécifier le paramètre ETH_CHAIN_ID=1 . Pour savoir quelle pièce d'identité se trouve dans votre cas, vous devez la trouver sur le site chainlist.org

Exemple pour le réseau principal Ethereum

Créons un fichier d'environnement et spécifions toutes les variables requises :

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

De plus, nous avons besoin d'un client Ethereum, nous pouvons l'exécuter localement ou utiliser des services tiers tels que Alchemy , Infura , QuikNode , Chainstack , Moralis .

Je préfère utiliser Alchemy pour ses tarifs pratiques avec des limites élevées, une réactivité rapide du nœud et un tableau de bord informatif.

Tarification de l'alchimie

Pour travailler avec Alchemy, vous devez créer une nouvelle application en sélectionnant la chaîne et le réseau.

Fenêtre de création d'application dans Alchemy

Une fois l'application créée, les analyses seront disponibles dans le tableau de bord. Pour interagir avec le nœud, nous devrons exporter un lien pour se connecter via WebSockets.

Tableau de bord Alchimie

Dans les paramètres, vous devez trouver le lien : wss://<URL>

Ajoutons une connexion au nœud Ethereum à la configuration Chainlink :

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

Si vous testez, vous pouvez ajouter ?sslmode=disableà la fin de l'URL. Cependant, vous ne devez jamais le faire sur un nœud de production.

Modèle de chaîne de connexion :

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

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

La version actuelle au moment de la rédaction est la 1.10.0. Voir la dernière version actuelle est disponible sur le lien .

Si le nœud est démarré sous l'utilisateur root, vous devez sélectionner uniquement les versions root des images.

Pour changer de version, remplacez le paramètre par la version souhaitée :

smartcontract/chainlink :<version>

Dans mon cas, par exemple, je vais exécuter la version root. Pour ce faire, je vais utiliser la commande suivante :

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

      
                

Ensuite, le nœud vous demandera d'entrer un e-mail et un mot de passe pour l'opérateur. Si tout a réussi, le nœud démarrera et nous verrons un grand nombre de messages dans le terminal.

Pour lancer le nœud plus tard, nous devons enregistrer les clés, pour cela, nous allons arrêter le nœud et effectuer les actions suivantes :

Enregistrez l'e-mail de l'opérateur :

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

Super, le nœud est en cours d'exécution, maintenant nous aimerions nous y connecter à partir d'un appareil local. Pour ce faire, vous devez créer un tunnel SSH vers le serveur avec le nœud.

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

Laissons l'onglet terminal ouvert et ouvrons et cliquons sur le lien dans le navigateur :http://localhost:6688/

Entrez l'e-mail et le mot de passe de l'opérateur spécifiés ci-dessus.

Interface utilisateur de connexion de l'opérateur Chainlink

Super, tout est mis en place avec succès !

Interface utilisateur de l'opérateur Chainlink

Vous pouvez maintenant créer vos oracles et vos emplois pour eux.

Dans le prochain article , j'ai créé un guide pour déployer l'oracle et le connecter au nœud.

Pour une configuration plus spécifique avec un accès sécurisé à l'interface opérateur et les performances du travail oracle, je recommande la lecture des liens suivants :