Explication des adaptateurs externes Chainlink
Traduction de https://blog.chain.link/chainlink-external-adapters-explained/, Romain Vaucher
La définition couramment utilisée d’un oracle en ce qui concerne la blockchain est de récupérer des données sur internet et de les transmettre à un contrat intelligent.
Chainlink fournit la fonctionnalité nécessaire pour le faire de manière décentralisée, mais elle ajoute également une certaine puissance supplémentaire, en utilisant des adaptateurs externes pour produire des outputs. Les outputs peuvent être transmis à d’autres adaptateurs externes au sein du nœud Chainlink et peuvent même donner à Chainlink la capacité d’utiliser des ressources privées et des blockchains d’une entreprise. Tout au long de cet article, je vais faire référence à cette société fictive en tant que telle, sans nom spécifique.
Ce diagramme présente un déroulement simplifié des opérations:
A) Les nœuds Chainlink sont sélectionnés pour le contrat, appelé “job”
B) Les nœuds renvoient un résultat à un contrat intelligent
Dans la suite de cet article, je me concentrerai principalement sur les processus, représentés par les flèches, mais j’inclurai les entités du flux de travail pour lesquelles une explication est nécessaire.
Si nous changeons la perspective des flux de travail décrits ci-dessus pour celle du nœud lui-même, nous pouvons voir que le processus est un peu plus complexe, mais le concept reste le même.
Pour expliquer ce que fait chaque processus :
A) Les nœuds Chainlink sont sélectionnés pour la mission
B) Les nœuds utilisent leurs propres informations d’identification stockées dans des adaptateurs externes
C) Les données sont renvoyées au nœud
D) Le résultat est fourni à un contrat intelligent sur la blockchain
Penser ainsi au processus d’extraction des données nous permet d’avoir une perspective plus proche de celle du nœud lui-même. Si vous regardez la vidéo sur l’architecture du nœud, vous verrez que des parties du nœud peuvent être séparées du logiciel de base Chainlink. Dans cet exemple, nous parlons en particulier des adaptateurs externes.
Le processus B dans le diagramme ci-dessus a dû utiliser un adaptateur externe afin de gérer les justificatifs d’identité nécessaires pour cette source de données. Les nœuds auront besoin d’un adaptateur externe pour chaque ressource qui nécessite les références de l’opérateur du nœud, afin de récupérer les données. La seule limite au nombre d’adaptateurs par nœud est basée sur la capacité du matériel à traiter un grand nombre de demandes à la fois.
En allant plus loin dans les capacités de l’adaptateur externe, nous introduirons le concept de runs. Les runs sont un moyen d’envoyer les résultats d’un adaptateur à un autre adaptateur externe pour un traitement ultérieur, appelé résultats de run. Ce processus peut se poursuivre autant de fois que nécessaire puisque les adaptateurs externes sont, par conception, orientés vers les services et séparés du logiciel de base Chainlink.
Le flux de travail de base pour l’envoi des données de résultats d’exécution à un autre adaptateur externe est :
A) Le nœud utilise ses informations d’identification stockées dans un adaptateur externe pour se connecter à un fournisseur de données
B) Les données sont extraites de la source, et un résultat d’exécution est créé
C) Un autre adaptateur externe saisit les données résultantes et les traite, ce qui peut en fait se répéter plusieurs fois (adaptateurs de chaîne)
D) Le résultat de ce traitement est renvoyé au logiciel du nœud
E) Le résultat final est renvoyé au contrat intelligent sur la blockchain
Enfin, le diagramme qui rassemble tout ce que nous avons appris sur les adaptateurs, leurs exécutions et fournit un cas d’utilisation réelle pour les processus internes.
Le flux de travail pour ce type de mission est :
A) Un utilisateur crée un contrat intelligent
B) Lors du choix des nœuds, ils veillent à ce que leurs nœuds soient inclus lors de la sélection manuelle
C) Les nœuds sélectionnés prennent en charge la mission
D) Les nœuds utilisent des identifiants stockés pour se connecter à des ressources externes
E) Les données récupérées sont renvoyées au nœud
F) Les données résultantes sont transmises à un autre adaptateur externe, qui possède ses propres références stockées
G) En utilisant les données renvoyées dans le processus E, un nombre quelconque de processus internes peuvent se produire, y compris la connexion à des blockchains privées, des opérations de paiement off-chain, etc.
H) Chaque résultat est renvoyé au nœud
I) Le résultat final est renvoyé à un contrat intelligent sur la blockchain publique
Dans ce diagramme, il y a quelques éléments qui diffèrent des exemples précédents. Les créateurs de contrats intelligents peuvent spécifier les nœuds à utiliser pour une mission en mettant en liste blanche les nœuds par leur ID.
Examinons aussi spécifiquement l’entité appelée G. L’obtention de données ici est possible parce qu’un autre adaptateur externe fonctionnant sur les nœuds de notre société fictive a pu transmettre les données “run result” à son API interne. Gardez à l’esprit que puisque les adaptateurs externes sont séparés du nœud Chainlink, ce qu’ils peuvent faire est pratiquement illimité. Tant qu’ils renvoient des données acceptables au créateur de contrat intelligent et que celles-ci sont conformes au schéma de l’adaptateur, celui-ci peut utiliser le réseau Chainlink.
Dans ce scénario, l’appel API du nœud (processus F) va déclencher des actions internes qui se dérouleront au sein d’un réseau fermé avec des références fournies par l’adaptateur externe. Toute la logique (à la fois commerciale et de programmation) de ce qu’il faut faire avec cet appel API reste sous le contrôle de l’entreprise. Cela signifie également que la vitesse du contrat intelligent sur la blockchain n’est un facteur limitant pour aucun processus interne. Une fois l’appel effectué, il suffit de renvoyer la réponse avec les données fournies par l’entité G au contrat intelligent qui se trouve sur la blockchain.
Ce scénario suscite probablement des préoccupations initiales en matière de sécurité, alors discutons-en maintenant. Tout d’abord, on peut se demander si un nœud pourrait se présenter et appeler cette API qui modifierait la blockchain privée d’une entreprise. La réponse est non! Puisque les informations d’identification seraient stockées dans l’adaptateur externe, ces informations ne sont pas accessibles au public. Il n’est pas non plus nécessaire que l’adaptateur externe soit open-source. Tout le monde peut développer ses propres adaptateurs externes et les garder pour soi, et pour une API sécurisée comme dans ce scénario, c’est une cause valable.
Il faut également s’assurer que les nœuds gérés par l’entreprise sont sélectionnés pour la mission. Cela peut se faire en faisant correspondre manuellement les nœuds tout en établissant le contrat intelligent Chainlink et en spécifiant l’identifiant des nœuds.
Nous espérons que cela vous aidera à comprendre certaines des fonctionnalités supplémentaires des adaptateurs externes lorsque vous utilisez Chainlink comme service d’oracle. N’hésitez pas à laisser un commentaire ci-dessous si vous avez des questions, contactez-nous sur Chainlink Slack (nous avons un canal #Node_Information), ou sur le lobby Chainlink Gitter.