Stwórz wyrocznię Chainlink na Ethereum

Nov 28 2022
W poprzednim artykule stworzyłem przewodnik dotyczący instalacji węzła Chainlink, użyj go, jeśli nie masz działającego węzła, ponieważ jest to wymagane do wdrożenia wyroczni. Następnym krokiem będzie wdrożenie kontraktu wyroczni i połączenie go z węzłem.
Zdjęcie fabio na Unsplash

W poprzednim artykule stworzyłem przewodnik dotyczący instalacji węzła Chainlink, użyj go, jeśli nie masz działającego węzła, ponieważ jest to wymagane do wdrożenia wyroczni.

Następnym krokiem będzie wdrożenie kontraktu wyroczni i połączenie go z węzłem.

Kontrakt wyroczni jest komponentem łańcucha usługi wyroczni: nasłuchuje żądań danych z innych kontraktów, przekazuje zapytania do węzłów wyroczni i rozgłasza zwrócone dane do kontraktów klientów. Ta umowa może również wykonać pewne obliczenia na zwróconych punktach danych w celu wygenerowania zagregowanej wartości, którą wysyła do umowy żądającej.

Musimy wdrożyć jeden z kontraktów, takich jak Oracle.sol lub Operator.sol na blockchainie.

Oracle.sol to stary typ kontraktu, który nie obsługuje „dużych odpowiedzi”, a zatem nie obsługuje odpowiedzi wielowyrazowych. Operator.sol to nowy typ, który obsługuje duże odpowiedzi, ale zużywa więcej gazu.

Wybierz rodzaj umowy w zależności od zadania: jeśli potrzebujesz krótkiej odpowiedzi z pojedynczą zmienną, wybierz — Oracle.sol , a jeśli chcesz zwrócić kilka wartości do umowy — Operator.sol.

Pokażę ci przykład konfiguracji obu opcji. Zacznijmy od Oracle.sol .

Do wdrożenia kontraktu użyjemy Remix , tak, możesz również użyć narzędzi takich jak Hardhat lub Truffle , ale w poradniku przyjrzę się przykładowi Remix .

Aby wdrożyć umowę Oracle.sol , skopiuj następujący kod:

// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";

Następnie przejdź do zakładki wdrożenie i wybierz żądane środowisko, na przykład: Dostawca wstrzyknięty — Metamask . Połącz się z kontem, które będzie używane do wdrożenia, i określ wymaganą sieć.

Aby go wdrożyć, wybierz kontrakt Oracle i ustaw parametr — adres kontraktu LINK w określonej sieci ( znajdź go w dokumentacji Chainlink ) i kliknij przycisk transakcji.

Wdrożenie kontraktu Oracle.sol w Remix IDE

Następnie musimy nadać portfelowi naszego węzła uprawnienia do zapisywania wyników funkcji wyroczni. Adres portfela węzła znajduje się w GUI operatora Chainlink w prawym górnym rogu strony głównej. Skopiuj go, wywołaj funkcję kontraktu Oracle setFulfillmentPermission , wklej go do argumentów i ustaw wartość na true .

Nadanie węzłowi uprawnień do rejestrowania wyników

To wszystko, na tym etapie wdrożyłeś swoją wyrocznię, wystarczy połączyć interakcję z nią z innym inteligentnym kontraktem.

A co z umową Operator.sol , jak ją wdrożyć?

OK, aby to zrobić, skopiuj następujący kod:

// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";

Wdrażanie kontraktu Operator.sol w Remix IDE

Po wdrożeniu kontraktu, tak jak wcześniej w kontrakcie Oracle.sol , musimy dodać adres portfela węzłów. W tym celu wywołaj funkcję setAuthorizedSenders i wstaw do argumentów adres w następującym formacie: [„address”]

Nadanie węzłowi uprawnień do rejestrowania wyników

Doskonale wdrożyłeś swój kontrakt wyroczni, w następnym artykule napiszę o tym, jak inteligentne kontrakty mogą wchodzić w interakcje z wyrocznią.