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

Nov 28 2022
Czym jest wyrocznia w blockchainie?
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.
Oryginalny obraz z Shubham Dhage

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.

Pulpit nawigacyjny DigitalOcean

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

Przykład dla sieci głównej Ethereum

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.

Ceny alchemii

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

Okno tworzenia aplikacji w Alchemy

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.

Deska rozdzielcza alchemii

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=disablena 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.

Interfejs logowania operatora Chainlink

Świetnie, wszystko pomyślnie skonfigurowane!

Interfejs operatora Chainlink

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: