{"id":3186,"date":"2025-04-15T10:53:29","date_gmt":"2025-04-15T10:53:29","guid":{"rendered":"https:\/\/satoshibrother.com\/fr\/serie-doracles-chainlink-partie-1\/"},"modified":"2025-04-15T10:53:29","modified_gmt":"2025-04-15T10:53:29","slug":"serie-doracles-chainlink-partie-1","status":"publish","type":"post","link":"https:\/\/satoshibrother.com\/fr\/serie-doracles-chainlink-partie-1\/","title":{"rendered":"S\u00e9rie d&rsquo;Oracles Chainlink (Partie 1)"},"content":{"rendered":"<article>\n<h2>Introduction aux Oracles dans la Blockchain<\/h2>\n<p>Dans le domaine de la blockchain, un <strong>oracle<\/strong> est un syst\u00e8me capable de <em>fournir des informations externes aux contrats intelligents<\/em> sur la cha\u00eene. En tant que middleware reliant les contrats intelligents au monde ext\u00e9rieur, l&rsquo;oracle joue un r\u00f4le d&rsquo;infrastructure critique. Sa fonction principale est de fournir des donn\u00e9es aux contrats intelligents sur la blockchain.<\/p>\n<p>Par exemple, lorsque nous cr\u00e9ons un contrat intelligent sur le r\u00e9seau Ethereum qui a besoin d&rsquo;acc\u00e9der aux <strong>donn\u00e9es du volume commercial du p\u00e9trole brut<\/strong> \u00e0 une certaine date, le contrat intelligent lui-m\u00eame ne peut pas r\u00e9cup\u00e9rer ce type de donn\u00e9es du monde r\u00e9el hors cha\u00eene. Il doit donc faire appel \u00e0 un oracle pour cela.<\/p>\n<h2>Oracle Chainlink<\/h2>\n<p>En ce qui concerne la blockchain, l&rsquo;oracle <strong>Chainlink<\/strong> d\u00e9tient la plus grande part de march\u00e9. Chainlink est un projet d&rsquo;oracle d\u00e9centralis\u00e9 qui fournit des donn\u00e9es du monde r\u00e9el \u00e0 la blockchain de mani\u00e8re s\u00e9curis\u00e9e. Chainlink a \u00e9tabli un \u00e9cosyst\u00e8me vertueux autour du token <strong>LINK<\/strong> gr\u00e2ce \u00e0 des <em>incitations \u00e9conomiques<\/em> bas\u00e9es sur la mise en \u0153uvre de son principe fondamental.<\/p>\n<p>L&rsquo;oracle Chainlink doit \u00eatre activ\u00e9 par le <strong>transfert de tokens LINK<\/strong>, qui est un contrat ERC-677 sur le r\u00e9seau Ethereum. La fonction oracle bas\u00e9e sur le token LINK ERC-677 op\u00e8re selon un mod\u00e8le de <strong>demande\/r\u00e9ponse<\/strong>.<\/p>\n<blockquote>\n<p>La m\u00e9thode <code>transferAndCall<\/code> dans les tokens ERC-677 est essentielle pour la fourniture de services par l&rsquo;oracle.<\/p>\n<\/blockquote>\n<p>Lorsque Chainlink a con\u00e7u le cadre des oracles, la premi\u00e8re question \u00e0 laquelle il s&rsquo;est frott\u00e9 \u00e9tait celle de la mani\u00e8re dont les utilisateurs d&rsquo;oracles pouvaient payer pour leurs services.<\/p>\n<h2>Classification de la cr\u00e9dibilit\u00e9 des oracles<\/h2>\n<p>Lorsque l&rsquo;on demande un oracle sur cha\u00eene, examinons comment la m\u00e9thode <code>onTokenTransfer<\/code> du contrat oracle est impl\u00e9ment\u00e9e :<\/p>\n<p>Lorsqu&rsquo;un consommateur d&rsquo;oracle utilise la m\u00e9thode <code>transferAndCall<\/code> pour r\u00e9gler les frais et demander le service d&rsquo;oracle, l&rsquo;adresse de destination correspond \u00e0 l&rsquo;oracle sollicit\u00e9. La m\u00e9thode <code>onTokenTransfer<\/code> dans l&rsquo;oracle v\u00e9rifie d&rsquo;abord si le transfert concerne le token LINK (uniquement LINK).<\/p>\n<p>Une fois toutes ces v\u00e9rifications de s\u00e9curit\u00e9 valid\u00e9es, le contrat oracle actuel est appel\u00e9 par un <strong>delegatecall<\/strong>.<\/p>\n<blockquote>\n<p>Un \u00e9v\u00e9nement <strong>OracleRequest<\/strong> est \u00e9mis, qui contient les donn\u00e9es de demande <code>_data<\/code>, sous le format Concise Binary Object Representation (CBOR).<\/p>\n<\/blockquote>\n<h2>Exemple d&rsquo;\u00e9v\u00e9nement OracleRequest<\/h2>\n<p>\u00c0 partir de cet \u00e9v\u00e9nement, nous pouvons voir que l&rsquo;agr\u00e9gateur de prix ETH\/USD a envoy\u00e9 une demande de donn\u00e9es de prix \u00e0 l&rsquo;oracle. Si l&rsquo;oracle retourne les informations demand\u00e9es, nous pouvons identifier l&rsquo;adresse du contrat retourn\u00e9, l&rsquo;ID de la m\u00e9thode \u00e0 appeler, et l&rsquo;heure d&rsquo;expiration.<\/p>\n<h2>R\u00e9ponse du n\u0153ud hors cha\u00eene<\/h2>\n<p>Premi\u00e8re v\u00e9rification : Si toutes les v\u00e9rifications sont valid\u00e9es, le co\u00fbt de cette demande est enregistr\u00e9 dans <code>withdrawableTokens<\/code> pour comptabiliser le montant qui peut \u00eatre retir\u00e9. Si toutes ces v\u00e9rifications sont concluantes, la fonction de rappel du contrat demandeur peut alors \u00eatre appel\u00e9e officiellement.<\/p>\n<h2>Fonction de rappel<\/h2>\n<p>Nous avons pr\u00e9c\u00e9demment appris dans <code>oracleRequest<\/code> que l&rsquo;identifiant de la fonction de rappel \u00e9tait sp\u00e9cifique, et la m\u00e9thode est <code>chainlinkCallback(bytes32, int256)<\/code>.<\/p>\n<p>Ce qui pr\u00e9c\u00e8de est le processus complet d&rsquo;un service oracle g\u00e9n\u00e9ral. Prenons, par exemple, la m\u00e9thode <strong>\u00ab\u00a0requestEthereumPrice\u00a0\u00bb<\/strong> dans le contrat <strong>\u00ab\u00a0TestnetConsumer\u00a0\u00bb<\/strong> fourni par Chainlink pour expliquer bri\u00e8vement le processus de demande de r\u00e9ponse des oracles de prix.<\/p>\n<p>En tant que d\u00e9veloppeur, je souhaite simplement utiliser les prix des paires de devises existantes sans avoir \u00e0 sp\u00e9cifier moi-m\u00eame ces URL. Est-ce possible ? <strong>La r\u00e9ponse est oui.<\/strong><\/p>\n<p>Chaque paire de n\u00e9gociation poss\u00e8de un flux de prix distinct, \u00e9galement connu sous le nom d&rsquo;Agr\u00e9gateur, qui se pr\u00e9sente en r\u00e9alit\u00e9 sous la forme d&rsquo;un AggregatorProxy.<\/p>\n<p>Enfin, cet article a \u00e9t\u00e9 r\u00e9dig\u00e9 par <strong>XiG<\/strong> (compte X) de l&rsquo;\u00e9quipe ZAN (compte X).<\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Introduction aux Oracles dans la Blockchain Dans le domaine de la blockchain, un oracle est un syst\u00e8me capable de fournir des informations externes aux contrats intelligents sur la cha\u00eene. En tant que middleware reliant les contrats intelligents au monde ext\u00e9rieur, l&rsquo;oracle joue un r\u00f4le d&rsquo;infrastructure critique. Sa fonction principale est de fournir des donn\u00e9es aux contrats intelligents sur la blockchain. Par exemple, lorsque nous cr\u00e9ons un contrat intelligent sur le r\u00e9seau Ethereum qui a besoin d&rsquo;acc\u00e9der aux donn\u00e9es du volume commercial du p\u00e9trole brut \u00e0 une certaine date, le contrat intelligent lui-m\u00eame ne peut pas r\u00e9cup\u00e9rer ce type de donn\u00e9es<\/p>\n","protected":false},"author":3,"featured_media":3185,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[169,13],"class_list":["post-3186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethereum","tag-chainlink","tag-ethereum"],"yoast_description":"D\u00e9couvrez le r\u00f4le des oracles Chainlink dans la technologie blockchain, qui fournissent des donn\u00e9es essentielles du monde r\u00e9el aux contrats intelligents de mani\u00e8re s\u00e9curis\u00e9e et efficace.","_links":{"self":[{"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/posts\/3186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/comments?post=3186"}],"version-history":[{"count":0,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/posts\/3186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/media\/3185"}],"wp:attachment":[{"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/media?parent=3186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/categories?post=3186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/satoshibrother.com\/fr\/wp-json\/wp\/v2\/tags?post=3186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}