Analyse technique de l'Oracle Machine : exemple de Chainlink
Dans l'écosystème blockchain, l'Oracle Machine joue un rôle d'infrastructure crucial en tant que pont entre les contrats intelligents sur la chaîne et le monde extérieur. Sa principale fonction est de fournir des données externes aux contrats intelligents sur la blockchain.
Par exemple, si nous déployons un contrat intelligent sur le réseau Ethereum qui nécessite d'obtenir le volume de transactions de pétrole brut pour une date spécifique, le contrat lui-même ne peut pas accéder directement aux données hors chaîne, c'est alors qu'il faut recourir à un Oracle Machine pour le réaliser. Le processus spécifique est que le contrat intelligent écrit d'abord les informations nécessaires dans le journal des événements, puis un processus hors chaîne écoute et s'abonne à ce journal. Une fois la demande détectée, ce processus appelle les méthodes pertinentes du contrat en soumettant une transaction sur la chaîne, téléchargeant les données du volume de transactions de pétrole brut pour la date spécifiée dans le contrat intelligent.
Chainlink est actuellement le projet d'oracle décentralisé ayant la plus grande part de marché. Il a construit un écosystème basé sur des incitations économiques autour du jeton LINK, fournissant des données du monde réel à la blockchain de la manière la plus sécurisée. Le déclenchement des oracles Chainlink nécessite un transfert de jetons LINK, qui est un contrat ERC677 sur le réseau Ethereum.
La norme ERC677 ajoute la méthode transferAndCall sur la base de l'ERC20, combinant le paiement et la demande de service en un seul, répondant ainsi mieux aux besoins des scénarios d'affaires d'Oracle Machine. Lorsque l'utilisateur effectue un transfert transferAndCall, en plus du transfert ERC20 habituel, il vérifie également si l'adresse de réception est une adresse de contrat, et si c'est le cas, il appelle la méthode onTokenTransfer de cette adresse.
Avant de demander des services d'Oracle Machine, l'utilisateur doit d'abord confirmer la crédibilité de cet Oracle Machine, car le paiement doit être effectué à l'avance avant la fourniture du service. La crédibilité de l'Oracle Machine peut être évaluée en fonction de plusieurs facteurs, tels que la performance historique, le système de réputation, etc.
Lorsque l'Oracle Machine reçoit une demande de service, elle effectue une série de vérifications de sécurité, y compris la validation du transfert pour s'assurer qu'il s'agit de jetons LINK, la vérification de la longueur des données pour s'assurer qu'elle n'est pas excessive, la validation du sélecteur de fonction, etc. Après ces vérifications, l'Oracle Machine émettra un événement OracleRequest, qui contient des détails sur la demande.
Après que le nœud hors chaîne ait détecté l'événement OracleRequest, il analysera les informations de demande spécifiques, récupérera les données nécessaires via un appel API, puis appellera la méthode fulfillOracleRequest du contrat Oracle en soumettant une transaction pour envoyer les données sur la chaîne. Enfin, le contrat Oracle renverra le résultat à la partie demandeuse via l'adresse de rappel et la fonction précédemment enregistrées.
Pour les développeurs, s'ils ont seulement besoin d'utiliser les données de prix des paires de devises existantes, ils peuvent appeler directement l'interface Price Feed fournie par l'officiel. Chaque paire de trading a son propre Price Feed (également appelé Agrégateur), qui est en fait le contrat AggregatorProxy. En appelant la méthode latestRoundData(), ils peuvent obtenir les données de prix les plus récentes, où le paramètre answer est le prix le plus récent requis.
Il convient de noter que pour les paires de trading libellées en USD, la précision des prix est généralement uniformisée à 8 décimales, ce qui simplifie la complexité du traitement de la précision entre différents tokens.
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.
25 J'aime
Récompense
25
7
Reposter
Partager
Commentaire
0/400
nft_widow
· 08-12 01:17
J'espère que le jeton Link continuera à To the moon.
Voir l'originalRépondre0
PumpAnalyst
· 08-11 11:40
prendre les gens pour des idiots, attendez d'être pris pour des idiots
Voir l'originalRépondre0
DancingCandles
· 08-11 01:37
C'est trop compliqué ! Peux-tu expliquer de manière plus simple ?
Voir l'originalRépondre0
HalfIsEmpty
· 08-11 01:37
Tous les pigeons qui shortent LINK, venez soutenir.
Voir l'originalRépondre0
WenAirdrop
· 08-11 01:34
明牛啊 Link yyds
Répondre0
0xLuckbox
· 08-11 01:27
Wouah, y a-t-il quelqu'un qui comprend comment l'Oracle Machine fonctionne sans chaîne ?
Analyse de Chainlink : architecture technique et applications des Oracle Machines sur la Blockchain
Analyse technique de l'Oracle Machine : exemple de Chainlink
Dans l'écosystème blockchain, l'Oracle Machine joue un rôle d'infrastructure crucial en tant que pont entre les contrats intelligents sur la chaîne et le monde extérieur. Sa principale fonction est de fournir des données externes aux contrats intelligents sur la blockchain.
Par exemple, si nous déployons un contrat intelligent sur le réseau Ethereum qui nécessite d'obtenir le volume de transactions de pétrole brut pour une date spécifique, le contrat lui-même ne peut pas accéder directement aux données hors chaîne, c'est alors qu'il faut recourir à un Oracle Machine pour le réaliser. Le processus spécifique est que le contrat intelligent écrit d'abord les informations nécessaires dans le journal des événements, puis un processus hors chaîne écoute et s'abonne à ce journal. Une fois la demande détectée, ce processus appelle les méthodes pertinentes du contrat en soumettant une transaction sur la chaîne, téléchargeant les données du volume de transactions de pétrole brut pour la date spécifiée dans le contrat intelligent.
Chainlink est actuellement le projet d'oracle décentralisé ayant la plus grande part de marché. Il a construit un écosystème basé sur des incitations économiques autour du jeton LINK, fournissant des données du monde réel à la blockchain de la manière la plus sécurisée. Le déclenchement des oracles Chainlink nécessite un transfert de jetons LINK, qui est un contrat ERC677 sur le réseau Ethereum.
La norme ERC677 ajoute la méthode transferAndCall sur la base de l'ERC20, combinant le paiement et la demande de service en un seul, répondant ainsi mieux aux besoins des scénarios d'affaires d'Oracle Machine. Lorsque l'utilisateur effectue un transfert transferAndCall, en plus du transfert ERC20 habituel, il vérifie également si l'adresse de réception est une adresse de contrat, et si c'est le cas, il appelle la méthode onTokenTransfer de cette adresse.
Avant de demander des services d'Oracle Machine, l'utilisateur doit d'abord confirmer la crédibilité de cet Oracle Machine, car le paiement doit être effectué à l'avance avant la fourniture du service. La crédibilité de l'Oracle Machine peut être évaluée en fonction de plusieurs facteurs, tels que la performance historique, le système de réputation, etc.
Lorsque l'Oracle Machine reçoit une demande de service, elle effectue une série de vérifications de sécurité, y compris la validation du transfert pour s'assurer qu'il s'agit de jetons LINK, la vérification de la longueur des données pour s'assurer qu'elle n'est pas excessive, la validation du sélecteur de fonction, etc. Après ces vérifications, l'Oracle Machine émettra un événement OracleRequest, qui contient des détails sur la demande.
Après que le nœud hors chaîne ait détecté l'événement OracleRequest, il analysera les informations de demande spécifiques, récupérera les données nécessaires via un appel API, puis appellera la méthode fulfillOracleRequest du contrat Oracle en soumettant une transaction pour envoyer les données sur la chaîne. Enfin, le contrat Oracle renverra le résultat à la partie demandeuse via l'adresse de rappel et la fonction précédemment enregistrées.
Pour les développeurs, s'ils ont seulement besoin d'utiliser les données de prix des paires de devises existantes, ils peuvent appeler directement l'interface Price Feed fournie par l'officiel. Chaque paire de trading a son propre Price Feed (également appelé Agrégateur), qui est en fait le contrat AggregatorProxy. En appelant la méthode latestRoundData(), ils peuvent obtenir les données de prix les plus récentes, où le paramètre answer est le prix le plus récent requis.
Il convient de noter que pour les paires de trading libellées en USD, la précision des prix est généralement uniformisée à 8 décimales, ce qui simplifie la complexité du traitement de la précision entre différents tokens.