Stwórz wyrocznię Chainlink na Ethereum
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.

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 .

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";

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”]

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