Speichert Chainlink die Oracle-Antwort für eine Transaktion irgendwo in der Blockchain?

Betrachten wir ein Beispiel für den Transaktionslebenszyklus, bei dem ein Smart Contract Oracle verwendet, um externe Daten zum ETH/USD-Preis-Feed zu erhalten, die sich in Echtzeit ändern.

Die Transaktion wird während des Minings ausgeführt, sodass eine Anfrage an Chainlink-Orakel erstellt wird, die Price1 zurückgeben. Wird Price1 irgendwo in der Blockchain gespeichert/gecacht?

Sobald der Block abgebaut ist, sendet der Mining-Knoten ihn zur Validierung an andere Ethereum-Knoten.

Validierende Nodes führen diesen Smart Contract auch aus. Was passiert mit nachfolgenden Anrufen beim Oracle, um den ETH/USD-Preis zu erhalten? Würde Oracle während der Blockvalidierung die „gecachte“ Antwort Price1 zurückgeben, oder wir würden Price2 erhalten. Bedeutet dies, dass die Blockvalidierung fehlschlägt, wenn wir Price2 erhalten?

Antworten (1)

Kurze Antwort auf Ihre Frage: Ja, Oracle-Antworten werden in der Kette gespeichert.

Lange Antwort: Sie können mehr darüber lesen, wie das anfordernde Modell für Chainlink funktioniert und wie es Daten on-Chain erhält, aber hier ist das Wesentliche, das bei der Beantwortung dieser Frage helfen wird. Der einfachste Weg, die Architektur zu verstehen, besteht darin, zu verstehen, wie Runlog-Initiatoren funktionieren.

  1. Ein On-Chain-Vertrag stellt eine Anfrage an ein Off-Chain-Chainlink-Orakel, indem er ein Ereignis an das Blockchain-Protokoll sendet. Dieses Ereignis enthält die Anweisungen, welche Art von Daten abgerufen und wie sie zurückgegeben werden sollen. Die Chainlink-Knoten suchen nach diesen Ereignissen.

  2. Der Knoten folgt dann den Anweisungen und in einer Transaktion, die der Chainlink-Knoten durchführt, platziert er dann die Daten in der Kette, definiert durch das Ereignis. Das Ereignis gibt an, welche Funktion die Daten durchlaufen wird.

Sie können sich die Chainlink-Preis-Feeds- Seite ansehen und On-Chain-Daten sehen. Sie haben sogar einen Link zu Etherscan, um Ihnen zu zeigen, wo der Vertrag und die Daten gespeichert sind.

Ihre Frage ist sehr gut, denn aus diesem Grund ist es nicht möglich, ein Orakelsystem in eine Blockchain zu integrieren, wenn das Abrufen externer Daten Teil des Validierungsprozesses wäre, könnten keine Knoten einen Konsens erzielen. Stattdessen platziert ein Chainlink-Orakel die Daten in einer Transaktion in der Kette und durchläuft dann denselben Validierungsprozess, den jede andere Transaktion durchläuft.