Przejdź do głównej zawartości
Change page

Rozkręć swój własny węzeł Ethereum

Strona ostatnio zaktualizowana: 22 października 2025

Uruchomienie własnego węzła zapewnia różne korzyści, otwiera nowe możliwości i pomaga wspierać ekosystem. Ta strona poprowadzi Cię przez proces tworzenia własnego węzła i udziału w walidacji transakcji Ethereum.

Należy pamiętać, że po The Merge do uruchomienia węzła Ethereum wymagane są dwa klienty: klient warstwy wykonawczej (EL) i klient warstwy konsensusu (CL). Ta strona pokaże, jak zainstalować, skonfigurować i połączyć te dwa klienty w celu uruchomienia węzła Ethereum.

Wymagania wstępne

Wymagana jest wiedza na temat tego, czym jest węzeł Ethereum i dlaczego możesz chcieć uruchomić klienta. Jest to omówione w Węzły i klienci.

Jeśli jesteś nowy w temacie uruchamiania węzła lub szukasz mniej technicznej ścieżki, zalecamy najpierw sprawdzenie naszego przyjaznego dla użytkownika wprowadzenia na temat uruchamiania węzła Ethereum.

Wybór podejścia

Pierwszym krokiem w stworzeniu swojego węzła jest wybranie podejścia. Na podstawie wymagań i różnych możliwości należy wybrać implementację klienta (zarówno klienta wykonawczego, jak i klienta konsensusu), środowisko (sprzęt, system) oraz parametry ustawień klienta.

Ta strona poprowadzi Cię przez te decyzje i pomoże Ci znaleźć najbardziej odpowiedni sposób na uruchomienie instancji Ethereum.

Aby wybrać spośród implementacji klientów, zobacz wszystkich dostępnych gotowych na sieć główną klientów wykonawczych, klientów konsensusu i dowiedz się o różnorodności klientów.

Zdecyduj, czy uruchomić oprogramowanie na własnym sprzęcie, czy w chmurze, biorąc pod uwagę wymagania klientów.

Po przygotowaniu środowiska zainstaluj wybrane klienty za pomocą przyjaznego dla początkujących interfejsu lub ręcznie za pomocą terminala z zaawansowanymi opcjami.

Gdy węzeł jest uruchomiony i synchronizuje się, jesteś gotowy, aby go używać, ale pamiętaj, aby mieć oko na jego konserwację.

Konfiguracja klienta

Środowisko i sprzęt

Lokalnie czy w chmurze

Klienci Ethereum mogą działać na komputerach klasy konsumenckiej i nie wymagają żadnego specjalnego sprzętu, takiego jak na przykład maszyny górnicze. W związku z tym dostępne są różne opcje wdrażania węzła w zależności od Twoich potrzeb. Dla uproszczenia pomyślmy o uruchomieniu węzła zarówno na lokalnej maszynie fizycznej, jak i na serwerze w chmurze:

  • Chmura
    • Dostawcy oferują wysoki czas pracy serwerów i statyczne publiczne adresy IP
    • Uzyskanie dedykowanego lub wirtualnego serwera może być wygodniejsze niż budowanie własnego
    • Kompromisem jest zaufanie stronie trzeciej — dostawcy serwera
    • Ze względu na wymagany rozmiar pamięci dla pełnego węzła, cena wynajmowanego serwera może być wysoka
  • Własny sprzęt
    • Bardziej zaufane i niezależne podejście
    • Jednorazowa inwestycja
    • Opcja zakupu wstępnie skonfigurowanych maszyn
    • Musisz fizycznie przygotować, konserwować i potencjalnie rozwiązywać problemy z maszyną i siecią

Obydwie opcje mają różne zalety podsumowane powyżej. Jeśli szukasz rozwiązania w chmurze, oprócz wielu tradycyjnych dostawców chmury obliczeniowej, istnieją również usługi skoncentrowane na wdrażaniu węzłów. Sprawdź węzły jako usługa, aby poznać więcej opcji dotyczących hostowanych węzłów.

Sprzęt

Jednakże odporna na cenzurę, zdecentralizowana sieć nie powinna polegać na dostawcach usług w chmurze. Zamiast tego uruchomienie węzła na własnym lokalnym sprzęcie jest korzystniejsze dla ekosystemu. Szacunkiopens in a new tab pokazują, że duża część węzłów działa w chmurze, co może stać się pojedynczym punktem awarii.

Klienci Ethereum mogą działać na komputerze, laptopie, serwerze, a nawet komputerze jednopłytkowym. Chociaż uruchamianie klientów na komputerze osobistym jest możliwe, posiadanie dedykowanej maszyny tylko dla węzła może znacznie zwiększyć jego wydajność i bezpieczeństwo, jednocześnie minimalizując wpływ na Twój główny komputer.

Używanie własnego sprzętu może być bardzo proste. Istnieje wiele prostych opcji, a także zaawansowanych konfiguracji dla bardziej technicznych osób. Zatem przyjrzyjmy się wymaganiom i sposobom uruchamiania klientów Ethereum na Twojej maszynie.

Wymagania

Wymagania sprzętowe różnią się w zależności od klienta, ale zazwyczaj nie są wysokie, ponieważ węzeł musi po prostu pozostać zsynchronizowany. Nie należy mylić tego z kopaniem, które wymaga dużo większej mocy obliczeniowej. Jednak czas synchronizacji i wydajność poprawiają się dzięki mocniejszemu sprzętowi.

Przed zainstalowaniem klienta upewnij się, że komputer ma wystarczającą ilość zasobów, aby go uruchomić. Poniżej możesz znaleźć minimalne i zalecane wymagania.

Przeszkodą dla Twojego sprzętu jest najczęściej pamięć dyskowa. Synchronizacja blockchainu Ethereum jest bardzo intensywna na dane wejściowe/wyjściowe i wymaga dużo miejsca. Najlepiej mieć dysk półprzewodnikowy (SSD) z setkami GB wolnego miejsca, nawet po synchronizacji.

Rozmiar bazy danych i szybkość początkowej synchronizacji zależy od wybranego klienta, jego konfiguracji i strategii synchronizacji.

Upewnij się również, że twoje połączenie internetowe nie jest ograniczone przez limit przepustowościopens in a new tab. Zaleca się korzystanie z połączenia nielimitowanego, ponieważ początkowa synchronizacja i dane transmitowane do sieci mogą przekroczyć Twój limit.

System operacyjny

Wszystkie klienty obsługują główne systemy operacyjne — Linux, MacOS, Windows. Oznacza to, że możesz uruchamiać węzły na zwykłych komputerach stacjonarnych lub serwerach z systemem operacyjnym (OS), który najbardziej Ci odpowiada. Upewnij się, że Twój system operacyjny jest aktualny, aby uniknąć potencjalnych problemów i luk w zabezpieczeniach.

Wymagania minimalne
  • Procesor z co najmniej 2 rdzeniami
  • 8 GB RAM
  • 2 TB SSD
  • Przepustowość ponad 10MBit/s
Zalecane specyfikacje
  • Szybki procesor z ponad 4 rdzeniami
  • 16 GB+ RAM
  • Szybki dysk SSD o pojemności ponad 2 TB
  • Przepustowość ponad 25MBit/s

Wybrany tryb synchronizacji i klient będą miały wpływ na wymagania pamięciowe, ale poniżej oszacowaliśmy przestrzeń dyskową potrzebną dla każdego klienta.

KlientRozmiar dysku (synchronizacja snap)Rozmiar dysku (pełne archiwum)
BesuPonad 800 GBPonad 12 TB
Erigonnd.Ponad 2,5 TB
GethPonad 500 GBPonad 12 TB
NethermindPonad 500 GBPonad 12 TB
Rethnd.Ponad 2,2 TB
  • Uwaga: Erigon i Reth nie oferują synchronizacji snap, ale możliwe jest pełne przycinanie (około 2 TB dla Erigon i około 1,2 TB dla Reth)

W przypadku klientów konsensusu zapotrzebowanie na miejsce również zależy od implementacji klienta i włączonych funkcji (np. slasher walidatora), ale ogólnie należy liczyć się z kolejnymi 200 GB potrzebnymi na dane beacon. Przy dużej liczbie walidatorów rośnie również obciążenie przepustowości. Możesz znaleźć szczegóły dotyczące wymagań klienta konsensusu w tej analizieopens in a new tab.

Rozwiązania plug-and-play

Najłatwiejszą opcją uruchomienia węzła z własnym sprzętem jest użycie skrzynek typu Plug and Play. Wstępnie skonfigurowane maszyny od dostawców oferują najprostsze doświadczenie: zamów, podłącz, uruchom. Wszystko jest wstępnie skonfigurowane i działa automatycznie z intuicyjnym przewodnikiem i pulpitem nawigacyjnym do monitorowania i kontrolowania oprogramowania.

Ethereum na komputerze jednopłytkowym

Łatwym i tanim sposobem na uruchomienie węzła Ethereum jest użycie komputera jednopłytkowego, nawet z architekturą ARM jak Raspberry Pi. Ethereum on ARMopens in a new tab zapewnia łatwe do uruchomienia obrazy wielu klientów wykonawczych i konsensusu dla Raspberry Pi i innych płyt ARM.

Małe, opłacalne i wydajne urządzenia tego typu są idealne do uruchomienia węzła w domu, ale należy pamiętać o ich ograniczonej wydajności.

Uruchamianie węzła

Rzeczywistą konfigurację klienta można przeprowadzić za pomocą automatycznych launcherów lub ręcznie, bezpośrednio konfigurując oprogramowanie klienta.

Dla mniej doświadczonych użytkowników zalecanym podejściem jest użycie launchera, oprogramowania, które prowadzi użytkownika przez instalację i automatyzuje proces konfiguracji klienta. Jeśli jednak masz pewne doświadczenie w korzystaniu z terminala, kroki ręcznej konfiguracji powinny być łatwe do wykonania.

Instalacja z przewodnikiem

Wiele łatwych w obsłudze projektów ma na celu poprawę doświadczenia związanego z konfiguracją klienta. Te launchery zapewniają automatyczną instalację i konfigurację klienta, a niektóre oferują nawet interfejs graficzny z przewodnikiem konfiguracji i monitorowania klientów.

Poniżej jest kilka projektów, które mogą pomóc Ci w instalacji i kontroli klientów za pomocą kilku kliknięć:

  • DappNodeopens in a new tab – DappNode to nie tylko maszyna od dostawcy. Oprogramowanie, rzeczywisty launcher węzła i centrum sterowania z wieloma funkcjami mogą być używane na dowolnym sprzęcie.
  • EthPillaropens in a new tab – najszybszy i najłatwiejszy sposób na skonfigurowanie pełnego węzła. Narzędzie do konfiguracji za pomocą jednej linijki i TUI do zarządzania węzłem. Bezpłatne. Otwarte źródło. Dobra publiczne dla Ethereum od solo stakerów. Wsparcie dla ARM64 i AMD64.
  • eth-dockeropens in a new tab – zautomatyzowana konfiguracja przy użyciu Dockera, skoncentrowana na łatwym i bezpiecznym stakingu, wymaga podstawowej znajomości terminala i Dockera, zalecana dla nieco bardziej zaawansowanych użytkowników.
  • Stereumopens in a new tab – launcher do instalowania klientów na zdalnym serwerze przez połączenie SSH, z graficznym przewodnikiem konfiguracji, centrum sterowania i wieloma innymi funkcjami.
  • NiceNodeopens in a new tab – launcher z prostym interfejsem użytkownika do uruchamiania węzła na komputerze. Po prostu wybierz klientów i uruchom je za pomocą kilku kliknięć. Wciąż w fazie rozwoju.
  • Sedgeopens in a new tab – narzędzie do konfiguracji węzła, które automatycznie generuje konfigurację Dockera za pomocą kreatora CLI. Napisane w Go przez Nethermind.

Ręczna konfiguracja klientów

Inną opcją jest ręczne pobranie, zweryfikowanie i skonfigurowanie oprogramowania klienta. Nawet jeśli niektóre klienty oferują interfejs graficzny, ręczna konfiguracja nadal wymaga podstawowych umiejętności obsługi terminala, ale oferuje znacznie większą uniwersalność.

Jak wyjaśniono wcześniej, skonfigurowanie własnego węzła Ethereum będzie wymagało uruchomienia pary klientów konsensusu i wykonawczego. Niektóre klienty mogą zawierać lekkiego klienta innego rodzaju i synchronizować się bez potrzeby innego oprogramowania. Jednak pełna weryfikacja niewymagająca zaufania wymaga obu implementacji.

Pobieranie oprogramowania klienta

Najpierw musisz pobrać preferowane oprogramowanie klienta wykonawczego i klienta konsensusu.

Możesz pobrać po prostu wykonywalną aplikację lub pakiet instalacyjny, który pasuje do Twojego systemu operacyjnego i architektury. Zawsze weryfikuj podpisy i sumy kontrolne pobranych pakietów. Niektóre klienty oferują również repozytoria lub obrazy Docker w celu łatwiejszej instalacji i aktualizacji. Wszystkie klienty są open source, więc możesz je również zbudować ze źródeł. Jest to bardziej zaawansowana metoda, ale w niektórych przypadkach może być wymagana.

Instrukcje dotyczące instalacji każdego klienta znajdują się w dokumentacji powiązanej z powyższymi listami klientów.

Oto strony wydań klientów, na których możesz znaleźć ich wstępnie zbudowane pliki binarne lub instrukcje dotyczące instalacji:

Klienty wykonawcze

Warto również zauważyć, że różnorodność klientów jest problemem na warstwie wykonawczej. Zaleca się, aby czytelnicy rozważyli uruchomienie mniejszościowego klienta wykonawczego.

Klienty konsensusu

Różnorodność klientów jest kluczowa dla węzłów konsensusu uruchamiających walidatorów. Jeśli większość walidatorów korzysta z pojedynczej implementacji klienta, bezpieczeństwo sieci jest zagrożone. Dlatego zaleca się rozważenie wyboru klienta mniejszościowego.

Zobacz najnowsze wykorzystanie klientów sieciowychopens in a new tab i dowiedz się więcej o różnorodności klientów.

Weryfikowanie oprogramowania

Podczas pobierania oprogramowania z Internetu zaleca się sprawdzenie jego autentyczności. Ten krok jest opcjonalny, ale szczególnie w przypadku kluczowego elementu infrastruktury, takiego jak klient Ethereum, ważne jest, aby być świadomym potencjalnych możliwości ataku i unikać ich. Jeśli pobrałeś wstępnie zbudowany plik binarny, musisz mu zaufać i ryzykować tym, że atakujący może podmienić plik wykonywalny na złośliwy.

Deweloperzy podpisują wydane pliki binarne swoimi kluczami PGP, dzięki czemu można kryptograficznie zweryfikować, że uruchamiasz dokładnie to oprogramowanie, które stworzyli. Wystarczy uzyskać klucze publiczne używane przez deweloperów, które można znaleźć na stronach wydania klienta lub w dokumentacji. Po pobraniu wydania klienta i jego podpisu można użyć implementacji PGP, np. GnuPGopens in a new tab, aby łatwo je zweryfikować. Sprawdź samouczek dotyczący weryfikacji oprogramowania open-source za pomocą gpg w systemie Linuxopens in a new tab lub Windows/MacOSopens in a new tab.

Inną formą weryfikacji jest upewnienie się, że hash, czyli unikalny kryptograficzny ślad, pobranego oprogramowania jest zgodny z tym podanym przez deweloperów. Jest to nawet prostsze niż korzystanie z PGP, a niektóre klienty oferują tylko tę opcję. Wystarczy uruchomić funkcję haszującą na pobranym oprogramowaniu i porównać ją z tą ze strony wydań. Na przykład:

1sha256sum teku-22.6.1.tar.gz
2
39b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde

Konfiguracja klienta

Po zainstalowaniu, pobraniu lub skompilowaniu oprogramowania klienta, można je uruchomić. Oznacza to tylko, że musi zostać wykonywane z odpowiednią konfiguracją. Klienty oferują bogate opcje konfiguracji, które mogą włączać różne funkcje.

Zacznijmy od opcji, które mogą znacząco wpłynąć na wydajność klienta i wykorzystanie danych. Tryby synchronizacji reprezentują różne metody pobierania i walidacji danych blockchain. Przed uruchomieniem węzła musisz zdecydować, jakiej sieci i trybu synchronizacji będziesz używać. Najważniejszymi rzeczami, które należy wziąć pod uwagę, są przestrzeń dyskowa i czas synchronizacji potrzebny klientowi. Zwróć uwagę na dokumentację klienta, aby określić, który tryb synchronizacji jest domyślny. Jeśli Ci nie odpowiada, wybierz inny na podstawie poziomu bezpieczeństwa, dostępnych danych i kosztów. Oprócz algorytmu synchronizacji możesz również ustawić przycinanie różnych rodzajów starych danych. Przycinanie (pruning) umożliwia usuwanie przestarzałych danych, tj. usuwanie węzłów trie stanu, które są nieosiągalne z ostatnich bloków.

Inne podstawowe opcje konfiguracji to np. wybór sieci – sieć główna lub sieci testowe, włączenie punktu końcowego HTTP dla RPC lub WebSockets itp. Wszystkie funkcje i opcje można znaleźć w dokumentacji klienta. Różne konfiguracje klienta można ustawić, uruchamiając klienta z odpowiednimi znacznikami bezpośrednio w CLI lub pliku konfiguracyjnym. Każdy klient jest trochę inny; zawsze należy zapoznać się z jego oficjalną dokumentacją lub stroną pomocy po opcje konfiguracji.

Do celów testowych możesz chcieć uruchomić klienta w jednej z sieci testowych. Zobacz przegląd obsługiwanych sieci.

Przykłady uruchomionych klientów wykonawczych z podstawową konfiguracją można znaleźć w następnej sekcji.

Uruchamianie klienta wykonawczego

Przed uruchomieniem oprogramowania klienta Ethereum wykonaj ostatnie sprawdzenie, czy Twoje środowisko jest gotowe. Na przykład, upewnij się, że:

  • Ilość miejsca na dysku jest wystarczająca, biorąc pod uwagę wybraną sieć i tryb synchronizacji.
  • Pamięć i procesor nie są blokowane przez inne programy.
  • System operacyjny jest zaktualizowany do najnowszej wersji.
  • System ma ustawioną poprawną godzinę i datę.
  • Twój router i zapora sieciowa akceptują połączenia na portach nasłuchujących. Domyślnie klienci Ethereum używają portu nasłuchiwania (TCP) i portu odkrywania (UDP), oba domyślnie na 30303.

Najpierw uruchom swojego klienta w sieci testowej, aby upewnić się, że wszystko działa poprawnie.

Na początku należy zadeklarować wszystkie ustawienia klienta, które nie są domyślne. Możesz użyć znaczników lub pliku konfiguracyjnego, aby zadeklarować preferowaną konfigurację. Zestaw funkcji i składnia konfiguracji każdego klienta jest inna. Szczegółowe specyfikacje można znaleźć w dokumentacji klienta.

Klienci wykonawczy i klienci konsensusu komunikują się za pośrednictwem uwierzytelnionego punktu końcowego określonego w Engine APIopens in a new tab. Aby połączyć się z klientem konsensusu, klient wykonawczy musi wygenerować jwtsecretopens in a new tab w znanej ścieżce. Ze względów bezpieczeństwa i stabilności klienty powinni działać na tej samej maszynie i obaj klienci muszą znać tę ścieżkę, ponieważ jest ona używana do uwierzytelniania lokalnego połączenia RPC między nimi. Klient wykonawczy musi również określić port nasłuchiwania dla uwierzytelnionych interfejsów API.

Ten token generowany jest automatycznie przez oprogramowanie klienta, ale w niektórych przypadkach może być konieczne zrobienie tego samodzielnie. Można go wygenerować za pomocą OpenSSLopens in a new tab:

1openssl rand -hex 32 > jwtsecret

Uruchamianie klienta wykonawczego

Ta sekcja poprowadzi Cię przez proces uruchamiania klientów wykonawczych. Służy ona jedynie jako przykład podstawowej konfiguracji, która uruchomi klienta z tymi ustawieniami:

  • Określa sieć, z którą ma się łączyć, w naszych przykładach jest to sieć główna
  • Określa katalog danych, w którym przechowywane będą wszystkie dane, w tym blockchain
    • Upewnij się, że zastąpiłeś ścieżkę prawdziwą, np. wskazującą na dysk zewnętrzny
  • Zapewnia interfejsy do komunikacji z klientem
    • W tym JSON-RPC i Engine API do komunikacji z klientem konsensusu
  • Definiuje ścieżkę do jwtsecret dla uwierzytelnionego API
    • Upewnij się, że przykładowa ścieżka została zastąpiona rzeczywistą, do której klienci mają dostęp, np. /tmp/jwtsecret

Należy pamiętać, że jest to tylko podstawowy przykład, wszystkie inne ustawienia zostaną ustawione na domyślne. Zwróć uwagę na dokumentację każdego klienta, aby dowiedzieć się o domyślnych wartościach, ustawieniach i funkcjach. Po więcej funkcji, na przykład do uruchamiania walidatorów, monitorowania itp., należy zapoznać się z dokumentacją konkretnego klienta.

Zwróć uwagę, że ukośniki wsteczne `` w przykładach służą jedynie do celów formatowania; flagi konfiguracyjne można zdefiniować w jednej linii.

Uruchamianie Besu

Ten przykład uruchamia Besu w sieci głównej, przechowuje dane blockchainu w domyślnym formacie w /data/ethereum, włącza JSON-RPC i Engine RPC do łączenia klienta konsensusu. Engine API jest uwierzytelniane za pomocą tokena jwtsecret i dozwolone są tylko wywołania z localhost.

1besu --network=mainnet \
2 --data-path=/data/ethereum \
3 --rpc-http-enabled=true \
4 --engine-rpc-enabled=true \
5 --engine-host-allowlist="*" \
6 --engine-jwt-enabled=true \
7 --engine-jwt-secret=/path/to/jwtsecret

Besu posiada również opcję launchera, który zada serię pytań i wygeneruje plik konfiguracyjny. Uruchom interaktywny launcher za pomocą:

1besu --Xlauncher

Dokumentacja Besuopens in a new tab zawiera dodatkowe opcje i szczegóły konfiguracji.

Uruchamianie Erigon

Ten przykład uruchamia Erigon w sieci głównej, przechowuje dane blockchainu w /data/ethereum, włącza JSON-RPC, definiuje dozwolone przestrzenie nazw i włącza uwierzytelnianie do łączenia klienta konsensusu, który jest zdefiniowany przez ścieżkę jwtsecret.

1erigon --chain mainnet \
2 --datadir /data/ethereum \
3 --http --http.api=engine,eth,web3,net \
4 --authrpc.jwtsecret=/path/to/jwtsecret

Erigon domyślnie wykonuje pełną synchronizację z dyskiem HDD o pojemności 8 GB, co stworzy ponad 2 TB danych archiwalnych. Upewnij się, że datadir wskazuje dysk z wystarczającą ilością wolnego miejsca lub zapoznaj się z flagą --prune, która może przycinać różne rodzaje danych. Sprawdź --help Erigona, aby dowiedzieć się więcej.

Uruchamianie Geth

Ten przykład uruchamia Geth w sieci głównej, przechowuje dane blockchainu w /data/ethereum, włącza JSON-RPC i definiuje dozwolone przestrzenie nazw. Umożliwia również uwierzytelnianie do łączenia klienta konsensusu, co wymaga ścieżki do jwtsecret, a także opcji definiującej, które połączenia są dozwolone, w naszym przykładzie tylko z localhost.

1geth --mainnet \
2 --datadir "/data/ethereum" \
3 --http --authrpc.addr localhost \
4 --authrpc.vhosts="localhost" \
5 --authrpc.port 8551
6 --authrpc.jwtsecret=/path/to/jwtsecret

Sprawdź dokumentację wszystkich opcji konfiguracyjnychopens in a new tab i dowiedz się więcej o uruchamianiu Geth z klientem konsensusuopens in a new tab.

Uruchamianie Nethermind

Nethermind oferuje różne opcje instalacjiopens in a new tab. Pakiet zawiera różne pliki binarne, w tym launcher z przewodnikiem konfiguracji, który pomoże ci interaktywnie utworzyć konfigurację. Alternatywnie możesz znaleźć Runner, który jest plikiem wykonywalnym i możesz go uruchomić ze znacznikami konfiguracyjnymi. JSON-RPC jest domyślnie włączony.

1Nethermind.Runner --config mainnet \
2 --datadir /data/ethereum \
3 --JsonRpc.JwtSecretFile=/path/to/jwtsecret

Dokumentacja Nethermind oferuje kompletny przewodnikopens in a new tab po uruchamianiu Nethermind z klientem konsensusu.

Klient wykonawczy zainicjuje swoje podstawowe funkcje, wybrane punkty końcowe i zacznie szukać rówieśników. Po pomyślnym wykryciu rówieśników klient rozpocznie synchronizację. Klient wykonawczy będzie oczekiwał na połączenie od klienta konsensusu. Obecne dane blockchain będą dostępne po pomyślnym zsynchronizowaniu klienta z bieżącym stanem.

Uruchamianie Reth

Ten przykład uruchamia Reth w sieci głównej przy użyciu podstawowej lokalizacji danych. Włącza uwierzytelnianie JSON-RPC i Engine RPC do łączenia klienta konsensusu, który jest zdefiniowany przez ścieżkę jwtsecret, przy czym dozwolone są tylko wywołania z localhost.

1reth node \
2 --authrpc.jwtsecret /path/to/jwtsecret \
3 --authrpc.addr 127.0.0.1 \
4 --authrpc.port 8551

Zobacz Konfiguracja Rethopens in a new tab, aby dowiedzieć się więcej o domyślnych katalogach danych. Dokumentacja Rethopens in a new tab zawiera dodatkowe opcje i szczegóły konfiguracji.

Uruchamianie klienta konsensusu

Klient konsensusu musi zostać uruchomiony z odpowiednią konfiguracją portu, aby ustanowić lokalne połączenie RPC z klientem wykonawczym. Klienci konsensusu muszą być uruchamiani z odsłoniętym portem klienta wykonawczego jako argumentem konfiguracyjnym.

Klient konsensusu potrzebuje również ścieżki do jwt-secret klienta wykonawczego w celu uwierzytelnienia połączenia RPC między nimi. Podobnie jak w powyższych przykładach wykonania, każdy klient konsensusu ma znacznik konfiguracyjny, który przyjmuje ścieżkę pliku tokena jwt jako argument. Musi być ona zgodna ze ścieżką jwtsecret podaną klientowi wykonawczemu.

Jeśli planujesz uruchomić walidator, pamiętaj o dodaniu znacznika konfiguracyjnego określającego adres Ethereum odbiorcy opłaty. Tam gromadzone są nagrody w postaci etheru Twojego walidatora. Każdy klient konsensusu ma opcję, np. --suggested-fee-recipient=0xabcd1, która przyjmuje adres Ethereum jako argument.

Uruchamiając węzeł Beacon w sieci testowej, możesz zaoszczędzić sporo czasu na synchronizacji, używając publicznego punktu końcowego do synchronizacji z punktu kontrolnegoopens in a new tab.

Uruchamianie klienta konsensusu

Uruchamianie Lighthouse

Przed uruchomieniem Lighthouse dowiedz się więcej o tym, jak go zainstalować i skonfigurować w Lighthouse Bookopens in a new tab.

1lighthouse beacon_node \
2 --network mainnet \
3 --datadir /data/ethereum \
4 --http \
5 --execution-endpoint http://127.0.0.1:8551 \
6 --execution-jwt /path/to/jwtsecret
Uruchamianie Lodestar

Zainstaluj oprogramowanie Lodestar, kompilując je lub pobierając obraz Dockera. Dowiedz się więcej w dokumentacjiopens in a new tab i bardziej kompleksowym przewodniku po konfiguracjiopens in a new tab.

1lodestar beacon \
2 --dataDir="/data/ethereum" \
3 --network=mainnet \
4 --eth1.enabled=true \
5 --execution.urls="http://127.0.0.1:8551" \
6 --jwt-secret="/path/to/jwtsecret"
Uruchamianie Nimbus

Nimbus jest dostępny zarówno z klientami konsensusu, jak i wykonawczymi. Może zostać uruchomiony na różnych urządzeniach, nawet o bardzo małej mocy obliczeniowej. Po zainstalowaniu zależności i samego Nimbusaopens in a new tab możesz uruchomić jego klienta konsensusu:

1nimbus_beacon_node \
2 --network=mainnet \
3 --web3-url=http://127.0.0.1:8551 \
4 --rest \
5 --jwt-secret="/path/to/jwtsecret"
Uruchamianie Prysm

Prysm jest dostępny ze skryptem, który umożliwia łatwą i automatyczną instalację. Szczegóły można znaleźć w dokumentacji Prysmopens in a new tab.

1./prysm.sh beacon-chain \
2 --mainnet \
3 --datadir /data/ethereum \
4 --execution-endpoint=http://localhost:8551 \
5 --jwt-secret=/path/to/jwtsecret
Uruchamianie Teku
1teku --network mainnet \
2 --data-path "/data/ethereum" \
3 --ee-endpoint http://localhost:8551 \
4 --ee-jwt-secret-file "/path/to/jwtsecret"

Kiedy klient konsensusu łączy się z klientem wykonawczym w celu odczytania kontraktu depozytowego i zidentyfikowania walidatorów, łączy się również z innymi równorzędnymi klientami konsensusu i rozpoczyna synchronizację slotów konsensusu z genezy. Po tym, jak klient konsensusu osiągnie bieżącą epokę, jego interfejs API staje się użyteczny dla walidatorów. Dowiedz się więcej o interfejsach API węzła Beaconopens in a new tab.

Dodawanie walidatorów

Klient konsensusu służy jako węzeł śledzący, z którym mogą łączyć się walidatory. Każdy klient konsensusu ma własne oprogramowanie walidatora opisane szczegółowo w swojej dokumentacji.

Uruchomienie własnego walidatora pozwala na solo staking, najbardziej wpływową i niewymagającą zaufania metodę wspierania sieci Ethereum. Wymaga to jednak depozytu 32 ETH. Aby uruchomić walidatora na własnym węźle z mniejszą kwotą, może Cię zainteresować zdecentralizowana pula z niewymagającymi uprawnień operatorami węzłów, taka jak Rocket Poolopens in a new tab.

Najłatwiejszym sposobem na rozpoczęcie stakingu i generowania kluczy walidatora jest użycie platformy startowej do stakingu w sieci testowej Hoodiopens in a new tab, która pozwala przetestować konfigurację poprzez uruchomienie węzłów na Hoodiopens in a new tab. Gdy będziesz gotowy na sieć główną, możesz powtórzyć te kroki za pomocą Mainnet Staking Launchpadopens in a new tab.

Zajrzyj na stronę stakingu, aby zapoznać się z opcjami stakingu.

Korzystanie z węzła

Klienci wykonawczy oferują punkty końcowe API RPC, których można używać do przesyłania transakcji, interakcji lub wdrażania smart kontraktów w sieci Ethereum na różne sposoby:

  • Ręczne wywoływanie ich za pomocą odpowiedniego protokołu (np. używając curl)
  • Dołączanie dostarczonej konsoli (np. geth attach)
  • Implementowanie ich w aplikacjach przy użyciu bibliotek web3, np. web3.pyopens in a new tab, ethersopens in a new tab

Różne klienty mają różne implementacje punktów końcowych RPC. Istnieje jednak standardowy JSON-RPC, którego można używać z każdym klientem. Aby zapoznać się z omówieniem, przeczytaj dokumentację JSON-RPC. Aplikacje, które potrzebują informacji z sieci Ethereum, mogą korzystać z tego RPC. Na przykład popularny portfel MetaMask pozwala połączyć się z własnym punktem końcowym RPCopens in a new tab, co ma duże zalety w zakresie prywatności i bezpieczeństwa.

Wszystkie klienci konsensusu udostępniają API Beaconopens in a new tab, które można wykorzystać do sprawdzania statusu klienta konsensusu lub pobierania bloków i danych konsensusu, wysyłając żądania za pomocą narzędzi takich jak Curlopens in a new tab. Więcej informacji na ten temat możesz znaleźć w dokumentacji każdego klienta konsensusu.

Dostęp do RPC

Domyślnym portem dla JSON-RPC klienta wykonawczego jest 8545, ale można modyfikować porty lokalnych punktów końcowych w konfiguracji. Domyślnie interfejs RPC jest dostępny tylko na lokalnym hoście komputera. Aby udostępnić go zdalnie, możesz chcieć wystawić go publicznie, zmieniając adres na 0.0.0.0. Dzięki temu będzie on osiągalny przez sieć lokalną i publiczne adresy IP. W większości przypadków konieczne będzie również skonfigurowanie przekierowania portów na Twoim routerze.

Do udostępniania portów do Internetu należy podchodzić ostrożnie, ponieważ pozwoli to każdemu w Internecie kontrolować węzeł. Złośliwe podmioty mogą uzyskać dostęp do Twojego węzła w celu wyłączenia systemu lub kradzieży Twoich środków, jeśli używasz klienta jako portfela.

Sposobem na obejście tego problemu jest uniemożliwienie dokonywania potencjalnie szkodliwych metod RPC. Na przykład w Geth można zadeklarować modyfikowalne metody za pomocą flagi: --http.api web3,eth,txpool.

Dostęp do interfejsu RPC można rozszerzyć poprzez opracowanie interfejsów API warstwy brzegowej lub aplikacji serwera internetowego, takich jak Nginx, i podłączenie ich do Twojego lokalnego adresu i portu klienta. Wykorzystanie warstwy pośredniej może również umożliwić deweloperom skonfigurowanie certyfikatu dla bezpiecznych połączeń https z interfejsem RPC.

Konfiguracja serwera internetowego, serwera proxy lub zewnętrznego interfejsu API Rest nie jest jedynym sposobem zapewnienia dostępu do punktu końcowego RPC Twojego węzła. Innym sposobem na skonfigurowanie publicznie dostępnego punktu końcowego z zachowaniem prywatności jest hostowanie węzła we własnej usłudze onion Toropens in a new tab. Umożliwi Ci to dostęp do RPC poza siecią lokalną bez statycznego publicznego adresu IP lub otwartych portów. Jednak użycie tej konfiguracji może pozwolić na dostęp do punktu końcowego RPC tylko za pośrednictwem sieci Tor, która nie jest obsługiwana przez wszystkie aplikacje i może powodować problemy z połączeniem.

Aby to zrobić, musisz utworzyć własną usługę onionopens in a new tab. Sprawdź dokumentacjęopens in a new tab dotyczącą konfiguracji usługi onion, aby hostować własną. Możesz skierować go na serwer WWW przy użyciu proxy na port RPC lub bezpośrednio do RPC.

Ostatnią i jedną z najpopularniejszych metod zapewnienia dostępu do sieci wewnętrznych jest połączenie VPN. W zależności od przypadku użycia i liczby użytkowników potrzebujących dostępu do Twojego węzła, bezpieczne połączenie VPN może być opcją. OpenVPNopens in a new tab to w pełni funkcjonalny SSL VPN, który implementuje bezpieczne rozszerzenie sieci warstwy 2 lub 3 OSI przy użyciu standardowego protokołu SSL/TLS, obsługuje elastyczne metody uwierzytelniania klienta oparte na certyfikatach, kartach inteligentnych i/lub poświadczeniach nazwy użytkownika/hasła oraz umożliwia zasady kontroli dostępu specyficzne dla użytkownika lub grupy przy użyciu reguł zapory sieciowej stosowanych do wirtualnego interfejsu VPN.

Obsługa węzła

Należy regularnie monitorować węzeł, aby upewnić się, że działa on prawidłowo. Może być konieczna sporadyczna konserwacja.

Utrzymywanie węzła online

Twój węzeł nie musi być cały czas online, ale powinno się utrzymywać go online tak długo, jak to tylko możliwe, aby był zsynchronizowany z siecią. Możesz go wyłączyć, aby go zrestartować, ale pamiętaj o tym, że:

  • Wyłączanie może potrwać kilka minut, jeśli ostatni stan jest nadal zapisywany na dysku.
  • Wymuszone zamknięcie może uszkodzić bazę danych, wymagając ponownej synchronizacji całego węzła.
  • Twój klient nie będzie zsynchronizowany z siecią i będzie musiał zostać ponownie zsynchronizowany po zrestartowaniu. Podczas gdy węzeł może rozpocząć synchronizację od miejsca, w którym był przed ostatnim wyłączeniem, proces ten może zająć trochę czasu w zależności od tego, jak długo był offline.

Nie dotyczy to węzłów walidatorów warstwy konsensusu. Przełączenie węzła w tryb offline wpłynie na wszystkie zależne od niego usługi. Jeśli uruchamiasz węzeł w celach stakingu, powinieneś starać się minimalizować przestoje tak bardzo, jak to możliwe.

Tworzenie usług klienta

Rozważ utworzenie usługi do automatycznego uruchamiania klientów podczas startu. Na przykład na serwerach z systemem Linux dobrą praktyką jest utworzenie usługi, np. za pomocą systemd, która uruchamia klienta z odpowiednią konfiguracją, pod użytkownikiem z ograniczonymi uprawnieniami i automatycznie go restartuje.

Aktualizowanie klientów

Musisz utrzymywać oprogramowanie klienta w aktualnej wersji z najnowszymi poprawkami bezpieczeństwa, funkcjami i EIP. Szczególnie przed hard forkami upewnij się, że używasz poprawnych wersji klienta.

Przed ważnymi aktualizacjami sieci EF publikuje post na swoim bloguopens in a new tab. Możesz zasubskrybować te ogłoszeniaopens in a new tab, aby otrzymywać powiadomienia na maila, gdy Twój węzeł będzie wymagał aktualizacji.

Aktualizowanie klientów jest bardzo proste. Każdy klient ma szczegółowe instrukcje w swojej dokumentacji, ale proces ten polega na pobraniu najnowszej wersji i zrestartowaniu klienta nowym plikiem wykonywalnym. Klient powinien powrócić do miejsca, w którym zakończył, ale z zastosowanymi aktualizacjami.

Każda implementacja klienta ma czytelny dla człowieka numer wersji używany w protokole peer-to-peer, ale jest również dostępny z wiersza poleceń. Ten numer wersji pozwala użytkownikom sprawdzić, czy używają poprawnej wersji i umożliwia eksploratorom bloków i innym narzędziom analitycznym zainteresowanym ilościowym podziałem określonych klientów w sieci. Więcej informacji na temat numeru wersji można znaleźć w dokumentacji poszczególnych klientów.

Uruchamianie dodatkowych usług

Uruchomienie własnego węzła umożliwia korzystanie z usług wymagających bezpośredniego dostępu do RPC klienta Ethereum. Są to usługi zbudowane na Ethereum, takie jak rozwiązania warstwy 2, backend dla portfeli, eksploratory bloków, narzędzia deweloperskie i inna infrastruktura Ethereum.

Monitorowanie węzła

Aby poprawnie monitorować swój węzeł, rozważ zbieranie pomiarów. Klienty zapewniają punkty końcowe pomiarów, dzięki czemu możesz uzyskać szczegółowe dane o węźle. Użyj narzędzi takich jak InfluxDBopens in a new tab lub Prometheusopens in a new tab, aby tworzyć bazy danych, które można przekształcić w wizualizacje i wykresy w oprogramowaniu takim jak Grafanaopens in a new tab. Istnieje wiele konfiguracji korzystania z tych oprogramowań i różnych pulpitów nawigacyjnych Grafana do wizualizacji węzła i sieci jako całości. Na przykład, sprawdź samouczek dotyczący monitorowania Geth.

W ramach monitorowania należy mieć oko na wydajność maszyny. Podczas początkowej synchronizacji węzła oprogramowanie klienta może bardzo obciążać procesor i RAM. Oprócz Grafany można do tego celu użyć narzędzi oferowanych przez system operacyjny, takich jak htop czy uptime.

Dalsza lektura

Czy ten artykuł był pomocny?