Chainlink Oracle Machine : un pont entre les smart contracts et le monde réel

robot
Création du résumé en cours

Analyse technique de l'Oracle Machine : exemple de Chainlink

Dans l'écosystème blockchain, l'Oracle Machine joue un rôle crucial, c'est le pont qui relie les contrats intelligents au monde extérieur. La principale fonction de l'Oracle Machine est de fournir des données hors chaîne aux contrats intelligents sur la blockchain, permettant ainsi aux contrats d'accéder et de traiter des informations du monde réel.

Oracle Machine详解系列之 Chainlink(上)

Prenons un exemple, supposons que nous avons déployé un contrat intelligent sur le réseau Ethereum qui nécessite d'accéder aux données de volume de transactions de pétrole brut pour un jour donné. Étant donné que le contrat intelligent lui-même ne peut pas accéder directement aux données hors chaîne, un Oracle Machine est nécessaire pour aider. Le contrat écrira les informations requises dans le journal des événements, puis le processus hors chaîne écoutera ce journal. Lorsqu'il détecte une demande, ce processus appellera la méthode associée au contrat en soumettant une transaction sur la chaîne, pour transmettre les données de volume de transactions de pétrole brut pour la date spécifiée au contrat intelligent.

Oracle Machine详解系列之 Chainlink(上)

Parmi de nombreux projets d'Oracle Machine, Chainlink détient la plus grande part de marché. Chainlink est un réseau d'Oracle Machine décentralisé, conçu pour fournir des données du monde réel à la blockchain de manière sécurisée et fiable. Il a construit un écosystème basé sur des incitations économiques autour du jeton LINK, fondé sur les principes de base des Oracle Machines. Le déclenchement des Oracle Machines Chainlink nécessite un transfert de jetons LINK, qui est un type de jeton ERC677 spécial sur le réseau Ethereum.

Oracle Machine détaillé série de Chainlink (partie 1)

La norme ERC677 a été proposée par Chainlink pour répondre aux scénarios de services d'Oracle Machine. Elle ajoute la méthode transferAndCall à la norme ERC20, unifiant ainsi le paiement et la demande de service. Lorsque l'utilisateur appelle transferAndCall pour effectuer un transfert, en plus de compléter la fonction de transfert ERC20, si l'adresse de réception est une adresse de contrat, la méthode onTokenTransfer de cette adresse sera également appelée.

Oracle Machine详解系列之 Chainlink(上)

Dans la conception de Chainlink, la méthode onTokenTransfer du contrat Oracle Machine vérifie d'abord si le transfert concerne le jeton LINK, puis elle vérifie la validité des données de la demande. Après une série de vérifications de sécurité, le contrat émet un événement OracleRequest, qui contient les détails de la demande.

Oracle Machine détaillé série sur Chainlink (1)

Les nœuds hors chaîne écouteront ces événements OracleRequest. Lorsqu'une nouvelle demande est détectée, le nœud analysera les données de l'événement, obtiendra les informations nécessaires via un appel API, puis en soumettant une transaction, appellera la méthode fulfillOracleRequest du contrat Oracle Machine pour soumettre les données sur la chaîne. Cette méthode renverra le résultat à l'adresse de rappel et à la fonction précédemment enregistrées au contrat demandeur après avoir effectué une série de vérifications.

Oracle Machine详解系列之 Chainlink(上)

Pour les développeurs, s'ils ont simplement besoin d'obtenir les données de prix des paires de devises existantes, ils peuvent directement utiliser l'interface Price Feed fournie par Chainlink. Chaque paire de trading dispose d'un Price Feed distinct (également appelé Agrégateur), qui est en réalité un contrat AggregatorProxy. Ces interfaces offrent plusieurs méthodes clés de requête, y compris l'obtention de la précision des prix, la description des paires de trading, les informations sur la version, ainsi que l'obtention des données de prix historiques et des données de prix les plus récentes en fonction de l'ID de ronde.

Oracle Machine détaillé série de Chainlink (partie 1)

Dans la plupart des cas d'utilisation, le contrat peut simplement avoir besoin de lire le prix le plus récent. En appelant la méthode latestRoundData(), vous pouvez obtenir les dernières données de prix, où le paramètre answer est le dernier prix. Il convient de noter que la plupart des paires de trading libellées en dollars ont une précision de prix uniformément fixée à 8 décimales, ce qui simplifie le problème de traitement de la précision entre différents tokens.

Oracle Machine详解系列之 Chainlink(上)

De cette manière, Chainlink offre une solution d'Oracle Machine puissante et flexible pour le monde de la blockchain, permettant aux contrats intelligents d'accéder et d'utiliser en toute sécurité et fiabilité des données hors chaîne.

Oracle Machine détaillé série de Chainlink (Partie 1)

LINK2.67%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 6
  • Partager
Commentaire
0/400
Blockwatcher9000vip
· 07-29 21:58
Il est normal d'avoir confiance en link.
Voir l'originalRépondre0
SchroedingerMinervip
· 07-29 21:58
C'est tout simplement un péage de pont.
Voir l'originalRépondre0
metaverse_hermitvip
· 07-29 21:55
link le premier du monde!
Voir l'originalRépondre0
GateUser-9ad11037vip
· 07-29 21:53
l'écosystème Link est assez impressionnant récemment.
Voir l'originalRépondre0
HypotheticalLiquidatorvip
· 07-29 21:52
Oracle Machine existe également des risques de contrôle des données. Qui sera le premier à exploser dans cette grande chute ?
Voir l'originalRépondre0
Fren_Not_Foodvip
· 07-29 21:30
chain dit qu'il est le meilleur
Voir l'originalRépondre0
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)