Krótki przewodnik, jak uruchomić węzeł Chainlink

Wyrocznie to źródła danych, które dostarczają dane ze źródeł danych spoza łańcucha bloków (poza łańcuchem) i umieszczają je w łańcuchu bloków (w łańcuchu) w celu wykorzystania inteligentnych kontraktów. Jest to konieczne, ponieważ inteligentne kontrakty działające na Ethereum nie mogą uzyskać dostępu do informacji przechowywanych poza siecią blockchain.
Dobra, jakie są tam wyrocznie?
Wyrocznie mogą być scentralizowane i zdecentralizowane. Scentralizowane wyrocznie są kontrolowane przez jedną osobę i najczęściej mogą znajdować się na jednym serwerze. Zdecentralizowane wyrocznie składają się z kilku serwerów kontrolowanych przez różne organizacje, które z kolei podejmują ogólną decyzję wyroczni na podstawie konsensusu.
Najpopularniejszą siecią wyroczni jest Chainlink . Powiem ci, jak wdrożyć wyrocznię. Zacznijmy od zainstalowania węzła w tym artykule.
Zdecentralizowane sieci wyroczni Chainlink zapewniają odporne na manipulacje dane wejściowe, wyjściowe i obliczenia w celu obsługi zaawansowanych inteligentnych kontraktów na dowolnym łańcuchu bloków.
Aby uruchomić węzeł, możesz użyć go na swoim komputerze do lokalnych testów lub uruchomić wersję produkcyjną na serwerze w chmurze. W tym przewodniku rozważę opcję uruchomienia węzła na VPS.
Stworzyłem na droplecie DigitalOcean i Database Cluster dla PostgreSQL.

W przypadku węzła Chainlink zaleca następujące wymagania systemowe:
- Minimum: aby rozpocząć korzystanie z węzła Chainlink, potrzebujesz komputera z co najmniej 2 rdzeniami i 4 GB pamięci RAM.
- Zalecane: wymagania dotyczące uruchamiania węzła Chainlink są skalowane w zależności od liczby zadań, które skalują również usługi węzła. W przypadku węzłów z ponad 100 zadaniami potrzebne będą co najmniej 4 rdzenie i 8 GB pamięci RAM.
- Minimum: co najmniej 2 rdzenie, 4 GB pamięci RAM i 100 GB przestrzeni dyskowej.
- Zalecane: Aby obsłużyć ponad 100 zadań, serwer bazy danych będzie potrzebował co najmniej 4 rdzeni, 16 GB pamięci RAM i 100 GB przestrzeni dyskowej.
curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again
mkdir ~/.chainlink
Będę uruchamiał węzeł dla sieci głównej Ethereum. Dlatego określę parametr ETH_CHAIN_ID=1 . Aby dowiedzieć się, czyj identyfikator znajduje się w Twoim przypadku, musisz go znaleźć na stronie chainlist.org

Stwórzmy plik środowiska i określmy wszystkie wymagane zmienne:
echo "ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink/.env
Ponadto potrzebujemy klienta Ethereum, możemy go uruchomić lokalnie lub skorzystać z usług firm trzecich, takich jak Alchemy , Infura , QuikNode , Chainstack , Moralis .
Wolę używać Alchemy ze względu na wygodne opłaty taryfowe z wysokimi limitami, szybką reakcję węzła i informacyjny pulpit nawigacyjny.

Aby pracować z Alchemy, musisz utworzyć nową aplikację, wybierając łańcuch i sieć.

Gdy aplikacja została utworzona, dane analityczne będą dostępne na pulpicie nawigacyjnym. Aby wejść w interakcję z węzłem, będziemy musieli wyeksportować link do połączenia przez WebSockets.

W ustawieniach musisz znaleźć link: wss://<URL>
Dodajmy połączenie do węzła Ethereum do konfiguracji Chainlink:
echo "ETH_URL=wss://<URL>" >> ~/.chainlink/.env
Jeśli testujesz, możesz dodać ?sslmode=disable
na końcu adresu URL. Jednak nigdy nie należy tego robić w węźle produkcyjnym.
Szablon parametrów połączenia:
postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE
echo "DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE" >> ~/.chainlink/.env
Aktualna wersja w chwili pisania tego tekstu to 1.10.0. Zobacz najnowsza aktualna wersja jest dostępna pod linkiem .
Jeśli węzeł jest uruchamiany z konta użytkownika root, należy wybrać tylko wersje roota obrazów.
Aby zmienić wersję, zastąp parametr żądaną wersją:
inteligentna umowa/łańcuch:<wersja>
W moim przypadku na przykład uruchomię wersję root. Aby to zrobić, użyję następującego polecenia:
cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n
Następnie węzeł poprosi o podanie adresu e-mail i hasła operatora. Jeśli wszystko przebiegło pomyślnie, węzeł uruchomi się i zobaczymy dużą liczbę komunikatów w terminalu.
Aby później uruchomić węzeł, musimy zapisać klucze, w tym celu zatrzymamy węzeł i wykonamy następujące czynności:
Zapisz e-mail operatora:
echo "[email protected]" > ~/.chainlink/.api
echo "password" >> ~/.chainlink/.api
echo "my_wallet_password" > ~/.chainlink/.password
cd ~/.chainlink && docker run --restart=always -p 6688:6688 -d --name chainlink -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n -p /chainlink/.password
Świetnie, węzeł działa, teraz chcielibyśmy połączyć się z nim z urządzenia lokalnego. Aby to zrobić, musisz utworzyć tunel SSH do serwera z węzłem.
ssh <USERNAME>@<IP> -L 6688:localhost:6688 -N
Zostawmy kartę terminala otwartą i otwórzmy i kliknij link w przeglądarce:http://localhost:6688/
Wprowadź e-mail operatora i hasło podane powyżej.

Świetnie, wszystko pomyślnie skonfigurowane!

Teraz możesz tworzyć dla nich swoje wyrocznie i zadania.
W następnym artykule stworzyłem przewodnik dotyczący wdrażania wyroczni i łączenia jej z węzłem.
Aby uzyskać bardziej szczegółową konfigurację z bezpiecznym dostępem do interfejsu operatora i wykonaniem pracy wyroczni, polecam przeczytanie poniższych linków: