Crypto Prices

Chainlink Oracle-Serie (Teil 1)

vor 2 weeks
2 minuten gelesen
2 ansichten

Einführung in Oracles in der Blockchain

Im Bereich der Blockchain ist ein Oracle ein System, das externe Informationen für Smart Contracts bereitstellt. Als Middleware, die Smart Contracts mit der Welt außerhalb der Blockchain verbindet, spielt das Oracle eine äußerst wichtige Rolle in der Infrastruktur. Die Hauptaufgabe besteht darin, Daten für Smart Contracts bereitzustellen.

Zum Beispiel, wenn wir einen Smart Contract im Ethereum-Netzwerk erstellen, der Handelsvolumendaten von Rohöl an einem bestimmten Tag abrufen muss. Der Smart Contract selbst kann jedoch keine solchen Daten aus der realen Welt außerhalb der Blockchain erhalten; daher muss dies durch ein Oracle umgesetzt werden. In diesem Fall wird der Smart Contract das Handelsvolumen von Rohöl am erforderlichen Datum in das Ereignisprotokoll schreiben, woraufhin ein Prozess außerhalb der Blockchain gestartet wird, um dieses Ereignisprotokoll zu überwachen und darauf zu reagieren. Sobald eine Anfrage überwacht wird, wird der Prozess die Handelsvolumeninformationen von Rohöl am angegebenen Datum an den Smart Contract hochladen, indem eine On-Chain-Transaktion eingereicht und die entsprechende Methode des Vertrags aufgerufen wird.

Chainlink und die Oracle-Glaubwürdigkeit

In der Blockchain hat das Chainlink Oracle den größten Marktanteil. Chainlink ist ein dezentrales Oracle-Projekt, das reale Daten auf die sicherste Weise in die Blockchain integriert. Chainlink hat ein positives Kreislaufsystem um den LINK-Token herum etabliert, das auf wirtschaftlichen Anreizen beruht, die die Umsetzung des grundlegenden Oracle-Prinzips fördern.

Das Chainlink Oracle muss durch die Übertragung von LINK-Token aktiviert werden. LINK ist ein ERC-677-Vertrag im Ethereum-Netzwerk. Die auf dem LINK ERC-677-Token basierende Oracle-Funktion gehört zum Anfrage-/Antwortmodus.

Implementierung der transferAndCall-Funktion

Die transferAndCall-Funktion im ERC-677-Token ist im Wesentlichen die Partei, die den Dienst bereitstellt. Als Chainlink das Oracle-Framework entworfen hat, war das erste, woran es gedacht hat, wie die Oracle-Nutzer dem Oracle für den Dienst bezahlen könnten. Da der Standard für homogene Token-Verträge, ERC-20, jedoch nicht die Anforderungen erfüllen konnte, um Dienstleistungen nach der Zahlung bereitzustellen, schlug Chainlink einen Standard vor, der für Oracle-Dienstszenarien geeignet ist: ERC-677.

Wie aus dem obigen Code zu erkennen ist, fügt ERC-677 tatsächlich nur eine transferAndCall-Methode zum ERC-20-Standard hinzu. Diese Methode kombiniert Zahlung und Dienstanforderung, um den Bedürfnissen von Oracle-Geschäftsszenarien gerecht zu werden.

Oracle-Services und deren Funktionsweise

Wenn ein Benutzer einen transferAndCall durchführt, wird zusätzlich zu den ERC-20-Übertragungen überprüft, ob die Adresse, an die gesendet wird, eine Vertragsadresse ist. Falls ja, wird die onTokenTransfer-Methode der Adresse aufgerufen. Wir können auch Etherscan besuchen, um den Quellcode des LINK-Tokens zu sehen.

Hinweis: Bevor Sie den Oracle-Dienst anfordern, müssen Sie zuerst feststellen, ob das Oracle vertrauenswürdig ist, da das Oracle vor der Bereitstellung von Dienstleistungen für Verbraucher bezahlt werden muss.

Beispiel für ein OracleRequest-Ereignis

Aus diesem Ereignis können wir sehen, dass der ETH/USD-Preisaggregator 0xF79D6aFBb6dA890132F9D7c355e3015f15F3406F eine Preisdatenanfrage an das Oracle gesendet hat: 0x7e94a8a23687d8c7058ba5625db2ce358bcbd244.

Off-Chain-Knotenreaktion und Callback-Funktion

Wenn all diese Überprüfungen vorhanden sind, wird die Callback-Funktion des Anfragevertrags formell in Form eines Aufrufs aufgerufen. Die Antwort auf die Anfrage sollte so schnell wie möglich erfolgen.

Der oben beschriebene Prozess ist der vollständige Ablauf eines allgemeinen Oracle-Dienstes.

Optional können Entwickler die bestehenden Währungspaarpreise verwenden, ohne diese URLs selbst angeben zu müssen. Jeder Handelspaar hat einen separaten Preisfeed oder Aggregator.

Dieser Artikel wurde von XiG (X-Konto) des ZAN-Teams (X-Konto) verfasst.

Beliebt