Ugrás a fő tartalomra
Change page

Pörgesse fel saját Ethereum-csomópontját

Utolsó módosítás: @Satglow(opens in a new tab), 2024. július 23.

A saját csomópont működtetése számos előnnyel jár, új lehetőségeket nyit meg, és emellett támogatja az ökoszisztémát. Ez az áttekintés a saját csomópont felpörgetéséről szól, illetve arról, hogyan vegyen részt az Ethereum tranzakciók validálásában.

Fontos megérteni, hogy az egyesítés (Merge) után két kliensre van szükség egy Ethereum-csomópont működtetéséhez: egy végrehajtási réteg (EL) és egy konszenzusréteg (CL) kliensre. Itt azt mutatjuk be, hogy ezt a két klienst hogyan kell telepíteni, konfigurálni és összekapcsolni az Ethereum-csomópont futtatásához.

Előfeltételek

Először is tisztában kell lennie azzal, hogy mi az az Ethereum-csomópont, és mi a lényege annak, hogy klienst futtasson. Ezt megtalálja a Csomópontok és kliensek című leírásban.

Ha Önnek újdonság a csomópontok témaköre, vagy egy kevésbé technikai megközelítést szeretne, akkor azt javasoljuk, először tekintse meg az Ethereum-csomópont futtatása című felhasználóbarát ismertetőnket.

A megközelítés kiválasztása

A csomópont felpörgetésének első lépése a megközelítés kiválasztása. Az igények és lehetőségek alapján el kell dönteni a klienstelepítést (a végrehajtási és a konszenzusos kliensre is), a környezetet (hardver, rendszer) és a kliensbeállítás paramétereit.

A jelen leírás végigvezeti Önt ezeken a döntéseken, hogy megtalálja a leginkább Önnek való módot a saját Ethereum-példányának működtetésére.

A klienstelepítés eldöntéséhez nézze meg a főhálózaton elérhető végrehajtási klienseket, konszenzusos klienseket és tudjon meg többet a kliensdiverzitásról.

El kell döntenie, hogy a szoftvert inkább a saját hardverén vagy inkább a felhőben futtatja, figyelembe véve a kliensek igényeit.

A környezet kialakítása után telepítse a kiválasztott klienseket egy kezdőknek is könnyen használható felülettel vagy manuálisan egy terminállal, ahol haladó opciókkal élhet.

Amikor a csomópont már működik és szinkronizál, akkor Ön elkezdheti használni, de ne feledkezzen meg a karbantartásról sem.

Kliensfelállítás

Környezet és hardver

Helyi gépen vagy felhőben

Az Ethereum-klienseket általános számítógépeken is lehet futtatni, nincs szükség hozzá speciális hardverre, mint amilyenek a bányászathoz való gépek. Ennélfogva számos lehetőség adódik egy csomópont telepítésére a felhasználó igényei szerint. Nézzük meg mindkét opciót, amikor egy helyi, fizikai gépen, és amikor egy felhőszerveren vannak a kliensek:

  • Felhő
    • A szolgáltatók szinte állandó szerverműködést és statikus nyilvános IP-címeket ajánlanak
    • A dedikált vagy virtuális szerver kényelmesebb lehet, mint sajátot építeni
    • Ugyanakkor meg kell bízni egy harmadik félben – a szerverszolgáltatóban
    • A teljes csomópont nagyobb tárhelyet igényel, ezért a bérelt szerver ára is magasabb lesz
  • Saját hardver
    • Bizalomigény-mentesebb és önállóbb megközelítés
    • Egyszeri befektetés
    • Lehetőség van előre konfigurált gépeket vásárolni
    • Fizikailag össze kell rakni, karban kell tartani, és valószínűleg meg kell oldania a géppel és a hálózattal kapcsolatban felmerülő problémákat is

Mindkét opció más előnyökkel jár. Ha felhőalapú megoldás mellett dönt, akkor a hagyományos felhőalapú szolgáltatók mellett léteznek speciális szolgáltatások a csomópontok telepítésére. Tekintse meg a Csomópontok mint szolgáltatás című oldalt a csomópont-szolgáltatókról szóló információkért.

Hardver

Ugyanakkor egy cenzúrának ellenálló, decentralizált hálózat nem függhet a felhő alapú szolgáltatóktól. Ehelyett az ökoszisztémának egészségesebb, ha a felhasználó a saját csomópontját a saját helyi hardverén üzemelteti. A becslések(opens in a new tab) szerint a csomópontok nagy aránya fut felhőn, ami felveti az egyetlen hibaforrás lehetőségét.

Az Ethereum-klienseket a saját számítógépén, laptopján, szerverén vagy akár egy egykártyás számítógépen is üzemeltetheti. Miközben lehetséges a személyi számítógépen működtetni a klienseket, egy csomópont számára dedikált gép jelentősen növeli a teljesítményt és biztonságot, és minimalizálja az Ön elsődleges számítógépére tett hatást is.

A saját hardver használata igen könnyű is lehet. Vannak egyszerű opciók, de a műszaki területen jártasabb embereknek fejlettebb összeállítások is elérhetők. Tekintsük át az Ethereum-kliensek számítógépen való futtatásához szükséges feltételeket és eszközöket.

Követelmények

A hardverkövetelmények kliensenként eltérők, de általánosságban nem magasak, mivel a csomópontnak csak szinkronizálva kell lennie. Nem összekeverendő a bányászattal, amelynek sokkal magasabb számításiteljesítmény-igénye van. Ugyanakkor a szinkronizációs idő és a teljesítmény javul egy erősebb hardverrel.

Mielőtt telepítene egy klienst, győződjön meg arról, hogy a számítógépe rendelkezik elegendő erőforrással. A minimális és az ajánlott követelményeket alább találja.

A hardver szűk keresztmetszete leginkább a lemezterület. Az Ethereum blokklánccal való szinkronizálás igen bemenet/kimenet-intenzív folyamat, és sok helyet igényel. A legjobb a tartós állapotú meghajtó (SSD), melyen még a szinkronizálás után is marad sok száz GB-nyi szabad tárhely.

Az adatbázis mérete és a kezdeti szinkronizálás sebessége függ a kiválasztott klienstől, annak konfigurációjától és a szinkronizálási stratégiától.

Emellett arról is meg kell győződnie, hogy az internetkapcsolatát nem korlátozza egy sávszélességi maximum(opens in a new tab). A korlátlan kapcsolódás az ajánlott, mert a kezdeti szinkronizálás és az adat nyilvánossá tétele a hálózaton meg fogja haladni a határt.

Operációs rendszer

Minden kliens támogatja a legnagyobb operációs rendszereket, mint a Linux, ,macOS, Windows. Tehát a csomópontok működtetéséhez a számítógépén vagy a szerverén olyan operációs rendszert (OS) használ, amilyet szeretne. Biztosítsa, hogy az operációs rendszer frissítve van, hogy ezzel elkerülje a lehetséges hibákat és biztonsági gyengeségeket.

Minimális követelmények
  • Processzor (CPU) 2+ maggal
  • 8 GB RAM
  • 2 TB SSD
  • 10+ MBit/másodperc sávszélesség
Ajánlott követelmények
  • Gyors processzor (CPU) 4+ maggal
  • 16 GB+ RAM
  • Gyors SSD 2+ TB kapacitással
  • 25+ MBit/másodperc sávszélesség

A szinkronizálási mód és a kiválasztott kliens befolyásolja a lemezterület-igényt, alább a kliensek szerinti becslést láthatja.

KliensLemezterület (snap szinkronizálás)Lemezterület (teljes archívum)
Geth500 GB+12 TB+
Nethermind500 GB+12 TB+
Besu800 GB+12 TB+
ErigonN.a.2,5 TB+
  • Megjegyzés: az Erigon nem ajánl snap szinkronizálási módot, de lehetséges a teljes adatmegvágás (kb. 500 GB)

A konszenzusos kliens esetében a lemezterület szintén függ a telepítéstől és a beállított jellemzőktől (pl. validátor büntető/kizáró funkció), de általánosságban egy újabb 200 GB-ra van szükség a beacon-adathoz. Sok validátorral a sávszélesség terhelése is növekszik. Ebben az elemzésben megtalálja a konszenzuskliens követelmények részleteit(opens in a new tab).

Plug-and-play megoldások

A saját csomópont futtatása saját hardverrel úgy a legegyszerűbb, ha plug and play csomagot használunk. Az előre beállított gépeknél nem kell mást tenni, mint megrendelni, csatlakoztatni és használni. Minden előre be van konfigurálva és magától fut egy intuitív útmutatóval és a szoftver felügyeletére és irányítására szolgáló irányítópulttal.

Ethereum egy egykártyás számítógépen

Egyszerű és olcsó módja egy Ethereum-csomópont futtatásának ha egykártyás számítógépet használunk, akár ARM architektúrával, mint a Raspberry Pi. Az Ethereum az ARM-on(opens in a new tab) több végrehajtási és konszenzusos kliens egyszerűen futtatását teszi lehetővé a Raspberry Pi és más ARM-kártyák számára.

Ezek a kicsi, pénztárcabarát és hatékony eszközök ideálisak a csomópont otthoni futtatására, de a teljesítményük korlátozott lehet.

A csomópont felpörgetése

Az aktuális kliensfelállítás végezhető automata telepítőkkel vagy manuálisan, közvetlenül telepítve a kliensszoftvert.

A kevésbé szakértő felhasználók számára az automatikus telepítés a legjobb megoldás, mivel ez a szoftver végigvezeti őket az telepítésen, a kliensbeállításokat pedig magától intézi. Ugyanakkor, akinek van már tapasztalata a terminál használatában, az a manuális beállítás lépéseit is követheti.

Vezetett felállítás

Számos felhasználóbarát projekt arra törekszik, hogy leegyszerűsítse a kliens felállítását. Ezek a bevezetők automatikus klienstelepítést és -konfigurálást kínálnak, emellett néha grafikus felületet is biztosítanak a vezetett beállításhoz és a felügyelethez.

Több ilyen projektet is találhat alább, melyek segítenek néhány kattintással telepíteni és felügyelni a klienseket:

  • DappNode(opens in a new tab) - A DappNode nem csak a gyártótól származó géppel kapható. A szoftvert, a csomópont-telepítőt és a számos jellemzővel bíró irányítási központot tetszőleges hardveren is használhatja.
  • eth-docker(opens in a new tab) – Az automatikus beállítás a Docker használatával arra fókuszál, hogy egyszerű és biztonságos legyen a letétbe helyezés – egy alapvető terminál és Docker-ismeret szükséges hozzá, ezért a haladóbb felhasználóknak ajánlott.
  • Stereum(opens in a new tab) – Telepítő a kliens távoli szerveren, SSH-kapcsolódáson keresztüli telepítéséhez egy GUI beállítási útmutatóval, irányítási központtal és számos egyéb jellemzővel.
  • NiceNode(opens in a new tab) – Telepítő az egyértelmű felhasználói élményért, amely leírja, hogyan futtasson csomópontot saját számítógépén. Csak válassza ki a klienseket, és néhány kattintással indítsa el azokat. Még fejlesztés alatt áll.
  • Sedge(opens in a new tab) – Csomópont-felállítási eszköz, amely automatikusan generál egy Docker-konfigurációt a CLI-varázslót használva. Go nyelven írta a Nethermind.

Manuális kliensfelállítás

Ez a másik lehetőség, hogy a kliensszoftvert manuális letöltse, ellenőrizze és konfigurálja. Még ha bizonyos kliensek ajánlanak is grafikus felületet, a manuális beállításhoz szükség van alapvető terminálismeretekre, de közben nagy mértékű rugalmasságot tesznek lehetővé.

Ahogy említettük, az Ethereum-csomópont működtetéséhez egy konszenzusos kliens és egy végrehajtási kliens szükséges. Néhány kliens tartalmazhat másik típusú könnyű klienst és előfordulhat, hogy a szinkronizáláshoz sem kell más szoftver. Ugyanakkor a teljes, bizalomigény-mentes ellenőrzéshez mindkét klienst telepíteni kell.

A kliensszoftver megszerzése

Először meg kell szerezni a kiválasztott végrehajtási kliens és konszenzusos kliens szoftverét.

Egyszerűen töltsön le egy végrehajtható alkalmazást vagy egy telepítőcsomagot, ami megfelel az operációs rendszernek és az architektúrának. Mindig ellenőrizze az aláírásokat és a letöltött csomagok ellenőrző összegét. Néhány kliens mappákat vagy Docker képeket is ajánl az egyszerűbb telepítés és frissítések érdekében. Minden kliens nyílt forráskódú, tehát Ön is építhet egyet a forrásból. Ez egy sokkal haladóbb módszer, de néhány esetben szükség lehet rá.

A telepítési utasításokat megtalálja a klienshez kapcsolódó dokumentációban.

Ezek a kliensek kiadási oldalai, ahol az előre megépített binárisok vagy instrukciók találhatók:

Végrehajtási kliensek

Fontos tisztában lenni azzal is, hogy a kliensdiverzitás problémát jelent a végrehajtási rétegen. Önnek is azt javasoljuk, hogy futtasson kisebbségi végrehajtási klienst.

Konszenzusos kliensek

A kliensdiverzitás kritikus a konszenzus-csomópontok esetén, melyek validátort működtetnek. Ha a validátorok többsége egyetlen kliensverziót használ, akkor a hálózat biztonsága veszélybe kerül. Ezért Ön is használjon kisebbségi klienst.

Tekintse meg a legfrissebb klienshasználatot(opens in a new tab), és tudjon meg többet a kliensdiverzitásról.

A szoftver ellenőrzése

A szoftver letöltése után érdemes ellenőrizni annak integritását. Ez opcionális, de ilyen fontos infrastrukturális elemeknél, mint amilyen az Ethereum-kliens, fontos tisztában lenni a támadó vektorokkal és elkerülni azokat. Ha egy előre megépített binárist tölt le, akkor meg kell abban bíznia és kockáztatja, hogy egy támadó kicseréli a végrehajthatót egy ártalmasra.

A fejlesztők aláírják a kiadott binárisokat a PGP-kulcsokkal, így kriptográfiailag ellenőrizheti, hogy tényleg az a szoftver fut-e, amit ők hoztak létre. Ehhez a fejlesztők által használt publikus kulcsokra van szükség, melyeket a kliens kiadási oldalán vagy a dokumentációban megtalál. Miután letöltötte a kliensprogramot és az aláírást, használjon egy PGP-implementációt, pl. GnuPG(opens in a new tab), hogy könnyedén ellenőrizze ezeket. Tekintse meg ezt az útmutatót a nyílt forráskódú szoftver ellenőrzéséről a gpg használatával kapcsolatban linux(opens in a new tab) vagy Windows/MacOS(opens in a new tab) operációs rendszeren.

Egy másik ellenőrzési lehetőség az, hogy a letöltött szoftver hashe, vagyis egyedi kriptográfiai ujjlenyomata egyezik a fejlesztő által adottal. Ez még a PGP-nél is egyszerűbb, és néhány kliensnél csak ez a lehetőség érhető el. Csak futtassa le a hash funkciót a letöltött szoftverre, és hasonlítsa össze azzal, amit a kiadási oldalon talál. For example:

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

Kliensfelállítás

Miután telepítette, letöltötte vagy összeállította a kliensszoftvert, készen áll a használatra. Ennek lényege, hogy a megfelelő konfigurációkkal kell elindítani. A kliensek bőven kínálnak konfigurációs lehetőségeket, melyek különféle jellemzőket tesznek elérhetővé.

Kezdjük azokkal az opciókkal, melyek jelentősen befolyásolják a kliens teljesítményét és adathasználatát. A szinkronizációs módok a blokkláncadat letöltésére és validálására ajánlanak különféle módszereket. A csomópont elindítása előtt el kell dönteni, hogy milyen hálózati és szinkronizálási módokat használjon. A legfontosabb a lemezterület és a szinkronizálási idő, amire a kliensnek szüksége lesz. Nézze meg a kliens dokumentációjában, hogy melyik szinkronizálási mód az alapbeállítás. Ha ez nem felel meg Önnek, akkor válasszon egy másikat a biztonsági szint, az elérhető adatok és a költségek alapján. A szinkronizálási algoritmus mellett a korábbi adatok különféle megvágását is be lehet állítani. Ez a megvágás eltávolítja a nem releváns adatokat, pl. azokat a státuszfaszinteket, melyek a közelmúlt blokkjaiból elérhetetlenek.

Másik alapvető konfigurációs lehetőség például a hálózat kiválasztása (főhálózat vagy teszthálózat), HTTP-végpont az RPC vagy a WebSockets részére stb. A kliens dokumentációja tartalmaz minden jellemzőt és opciót. Különféle klienskonfigurációkat lehet beállítani azáltal, hogy a klienst a megfelelő jelöléssel futtatják közvetlenül a CLI-ben vagy a konfigurációs fájlban. Minden kliens egy kicsit más, ezért mindig a hivatalos dokumentációból vagy a támogatást nyújtó oldalról szerezze be a konfigurációs lehetőségek részleteit.

Teszteléshez futtathatja a klienst a teszthálózatok egyikén. Bővebben a támogatott hálózatokról.

A végrehajtási kliensek alapvető konfigurációit a következő részben találja.

A végrehajtási kliens elindítása

Mielőtt elindítaná az Ethereum-kliensszoftvert, ellenőrizze, hogy a környezet készen áll. Például:

  • Elég lemezterület áll rendelkezésre a kiválasztott hálózati és szinkronizálási mód szerint.
  • A memóriát és a CPU-t nem akasztotta meg más program.
  • Az operációs rendszer frissítve van a legutóbbi verzióra.
  • A rendszerben a helyes idő és dátum szerepel.
  • A router és a tűzfal elfogad kapcsolódásokat a hallgató (listening) portokon keresztül. Alapvetően az Ethereum-kliensek hallgató (TCP) és felfedező (UDP) portot használnak, melynek alapbeállítása 30303.

Futtassa először teszthálózaton a kliensét, hogy biztosan minden jól működik.

Minden olyan kliensbeállítást tisztázni kell, mely a kezdőpontban nincs alapból beállítva. A választott konfigurációt a jelölőkkel vagy a konfigurációs fájlban tudja rögzíteni. Minden kliensnél különböznek az elérhető jellemzők és a konfigurációs szintaxisok. A specifikációhoz nézze meg a kliens dokumentációját.

A végrehajtási és konszenzusos kliensek egy hitelesített végponton keresztül kommunikálnak, mely az Engine API-ban(opens in a new tab) van specifikálva. A konszenzusos klienshez való kapcsolódáshoz a végrehajtási kliensnek generálnia kell egy jwtsecret(opens in a new tab) kódot egy ismert útvonalon. Biztonsági és stabilitási okokból a klienseket ugyanazon a gépen kell működtetni, és mindkettőnek ismernie kell ezt az útvonalat, mert ez hitelesíti a helyi RPC-kapcsolódást közöttük. A végrehajtási kliensnek meg kell határoznia egy hallgató (listening) portot a hitelesített API-khoz.

Ezt a tokent a kliensszoftver automatikusan létrehozza, de ezt néha manuálisan kell megtenni. Az OpenSSL(opens in a new tab) révén Ön is létre tudja hozni:

1openssl rand -hex 32 > jwtsecret

A végrehajtási kliens futtatása

Ez a rész a végrehajtási kliensek elindítását mutatja be. Csak példaként szolgál az alapszintű konfigurációkra, ami a következő beállításokkal indítja el a klienst:

  • Meghatározza a hálózatot, amihez kapcsolódik a kliens; példánkban ez a főhálózat
  • Meghatározza az adatkönyvtárat, ahol az összes adat, beleértve a blokkláncot is, le lesz tárolva
    • Írja át az útvonalat egy valódira, pl. ami a külső meghajtójára mutat
  • Lehetővé teszi, hogy az interfészek kommunikáljanak a klienssel
    • Beleértve a JSON RPC-t és az Engine API-t a konszenzusos klienssel való kommunikációhoz
  • Meghatározza a jwtsecret kódhoz tartozó útvonalat a hitelesített API-hoz
    • Cserélje le a példát egy valódi útvonallal, amit elérnek a kliensek, pl. /tmp/jwtsecret

Ne feledje, hogy ez csak alappélda, az összes beállítás a kezdőértéken marad. Tekintse át a kliensek dokumentációit, hogy megismerje a kezdeti értékeket, beállításokat és jellemzőket. A további jellemzőkért, mint a validátorok futtatása, felügyelete stb. tekintse át az adott kliens dokumentációját.

Vegye figyelembe, hogy a perjelek \ a példákban csak formázásra szolgálnak, a konfigurációs jeleket egy sorban is meg lehet határozni.

A Besu futtatása

Ez a példa a Besut a főhálózaton indítja el, a blokkláncadatokat az alapértelmezett formátumban tárolja a /data/ethereum alatt, engedélyezi a JSON RPC-t és Engine RPC-t a konszenzusos klienssel való kapcsolódáshoz. Az Engine API-t a jwtsecret token hitelesíti, és csak a localhostból jövő hívások vannak megengedve.

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

A Besu egy telepítő opcióval bír, mely egy sor kérdést tesz fel, majd legenerálja a konfigurációs fájlt. Indítsa el az interaktív telepítőt a következővel:

1besu --Xlauncher

A Besu dokumentációja(opens in a new tab) további opciókat és konfigurációs részleteket tartalmaz.

Az Erigon futtatása

Ez a példa az Erigont a főhálózaton indítja el, a blokkláncadatot a /data/ethereum alatt tárolja, engedélyezi a JSON RPC-t, meghatározza a namespace-eket, és engedélyezi a hitelesítést a konszenzusos klienssel való kapcsolódáshoz, amit a jwtsecret útvonal határoz meg.

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

Az Erigon alapból teljes szinkronizálást végez 8 GB HDD-vel, ami több mint 2 TB archív adatot eredményez. Biztosítsa, hogy a datadir egy olyan lemezre mutat, ahol elég szabad hely van, vagy állítsa be a --prune jelölőt, ami megvágja a különféle adatokat. További információért nézze meg az Erigon --help oldalát.

A Geth futtatása

Ez a példa a Gethet a főhálózaton indítja el, a blokkláncadatokat a /data/ethereum alatt tárolja, engedélyezi a JSON RPC-t, és meghatározza a namespace-eket. Engedélyezi a hitelesítést, hogy a konszenzusos klienssel lehessen kapcsolódni, amihez a jwtsecret útvonal szükséges, és azt is megadja, hogy milyen kapcsolódások lehetségesek, jelen példánkban csak a localhosttól érkezők.

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

Tekintse meg a dokumentációt az összes konfigurálási opcióhoz(opens in a new tab), és tudjon meg többet aGeth futtatása konszenzusos klienssel(opens in a new tab) témáról.

A Nethermind futtatása

A Nethermind különféle telepítési opciókat(opens in a new tab) kínál. A csomag számos binárist tartalmaz, beleértve egy Telepítőt, ami egy vezetett felállítást tesz lehetővé, így a konfigurációt interaktív módon lehet létrehozni. Másik megoldásként használhatja a Runner-t is, ami a végrehajtási program maga, és konfigurációs jelölőkkel futtathatja. A JSON RPC alapból engedélyezve van.

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

A Nethermind dokumentációk egy teljeskörű útmutatót(opens in a new tab) adnak arról, hogyan lehet a Nethermind-ot konszenzusos klienssel működtetni.

A végrehajtási kliens elindítja a fő funkcióit, a kiválasztott végpontokat, és társakat keres. Miután sikeresen felfedezte a társait, elkezd szinkronizálni. A végrehajtási kliens kapcsolódásra vár a konszenzusos klienstől. A jelenlegi blokkláncadatok elérhetők lesznek, amint a kliens sikeresen szinkronizál a jelen státuszhoz.

A konszenzusos kliens elindítása

A konszenzusos klienst a megfelelő portkonfigurációval kell indítani, hogy egy lokális RPC-kapcsolatot hozzon létre a végrehajtási klienssel. A konszenzusos klienst a felfedett végrehajtási kliens portjával kell futtatni, mint konfigurációs argumentum.

A konszenzusos kliensnek szüksége van a végrehajtási kliens jwt-secret kódjához vezető útvonalra, hogy hitelesíteni tudja az RPC-kapcsolódást közöttük. A fenti példákhoz hasonlóan, minden konszenzusos kliensnek van egy konfigurációs jelölője, ami argumentumként felveszi a jwt token útvonalát. Ennek konzisztensnek kell lennie a jwtsecret útvonallal, melyet a végrehajtási kliens kapott.

Ha Ön validátort tervez majd futtatni, akkor be kell tennie egy konfigurációs jelölőt a validációs díj címzettjének Ethereum-címét megadva. Ezt az ether jutalmat gyűjti a validátor. Minden konszenzusos kliensnek van egy opciója, pl. --suggested-fee-recipient=0xabcd1, hogy az Ethereum címet argumentumként vegye fel.

Amikor egy Beacon-csomópontot indít a teszthálózaton, jelentős szinkronizálási időt takaríthat meg, ha egy publikus végpontot használ a Checkpoint sync-re(opens in a new tab).

Konszenzusos kliens futtatása

A Lighthouse futtatása

Mielőtt a Lighthouse-t futtatná, ismerje meg, hogyan kell telepíteni és konfigurálni azt a Lighthouse Könyvből(opens 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
A Lodestar futtatása

Telepítse a Lodestar szoftvert összeállítva vagy a Docker-kép letöltésével. Tudjon meg többet a dokumentációból(opens in a new tab) és a még részletesebb felállítási útmutatóból(opens in a new tab).

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

A Nimbus egyaránt tartalmaz konszenzusos és végrehajtási klienst. Különféle eszközökön lehet futtatni igen szerény számítási kapacitással. Miután installálta a hozzá tartozó dolgokat és magát a Nimbust(opens in a new tab), futtathatja a konszenzusos kliensét:

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

A Prysm egy szkripttel együtt elérhető, amely egyszerű, automatikus telepítést tesz lehetővé. A részleteket a Prysm dokumentációban(opens in a new tab) találja.

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

Amikor egy konszenzusos kliens kapcsolódik egy végrehajtási klienshez, hogy beolvassa a letéti szerződést és azonosítsa a validátorokat, szintén kapcsolódik más Beacon-csomóponttársakhoz, és elkezdi szinkronizálni a konszenzus-slotokat a genezistől kezdve. Amint a Beacon-csomópont eléri a jelenlegi korszakot (epoch), a Beacon API használhatóvá válik a validátor számára. Bővebben a Beacon-csomópont API-król(opens in a new tab).

Validátorok hozzáadása

A konszenzusos kliens Beacon-csomópontként működik a validátoroknak, hogy azok kapcsolódni tudjanak. Minden konszenzusos kliensnek saját validátorszoftvere van, melyről a releváns dokumentáció részleteiben beszél.

A saját validátor futtatása lehetővé teszi az önálló letétbe helyezést, a leginkább hatásos és bizalomigény nélküli módszert, mely az Ethereum hálózatát támogatja. Ehhez azonban szükség van 32 ETH letétre. Ha szeretne validátort futtatni a saját csomópontján egy kisebb összeggel, akkor Önt érdekelheti az engedélyhez nem kötött csomópontműködtetőkből álló decentralizált alapok, mint amilyen a Rocket Pool(opens in a new tab).

A letétbe helyezéssel és a validátorkulcs-generálásával a legkönnyebben a Goerli Testnet Staking Launchpad(opens in a new tab) segítségével kezdhet foglalkozni, amellyel tesztelheti a beállítását a csomópont futtatása a Goerli-n(opens in a new tab) útmutatóval. Amikor készen áll a főhálózatra, akkor ugyanezeket a lépéseket kell megismételnie a Mainnet Staking Launchpad(opens in a new tab) segítségével.

Tekintse át a letétbe helyezési oldalt, hogy a letéti opciókról tájékozódjon.

A csomópont használata

A végrehajtási kliensek RPC API végpontokat kínálnak, mellyel tranzakciókat lehet beküldeni, valamint okosszerződésekkel interakcióba lépni vagy telepíteni azokat különféle módokon az Ethereum hálózaton:

  • Manuálisan meghívni azokat egy megfelelő protokollal (pl. a curl kódot használva)
  • Egy megadott konzolt csatolva (pl. geth attach)
  • Alkalmazásokban implementálva azokat a web3-könyvtárak segítségével, pl. web3.py(opens in a new tab), ethers(opens in a new tab)

A különféle klienseknél eltér az RPC-végpontok telepítése. De van egy standard JSON-RPC, melyet minden klienssel lehet használni. Az áttekintésért nézze meg a JSON-RPC dokumentációt. Az alkalmazások, melyeknek információra van szükségük az Ethereum hálózatáról, ezt az RPC-t használhatják. Például a népszerű MetaMask tárca megengedi, hogy Ön kapcsolódjon a saját RPC végpontjához(opens in a new tab), ami erős adatvédelmet és biztonsági előnyöket ad.

A konszenzusos kliensek mind felfednek egy Beacon API-t(opens in a new tab), amit a kliens státuszának ellenőrzésére vagy a blokkok és konszenzusadatok letöltésére lehet használni, lekérdezéseket küldve olyan eszközökkel, mint amilyen a Curl(opens in a new tab). Bővebben a konszenzusos kliensek dokumentációiban olvashat erről.

RPC elérése

Az alapértelmezett port a végrehajtási kliens JSON-RPC számára a 8545, de a konfigurációban módosítani lehet a lokális végpontok portjait. Alapból az RPC-interfész csak a számítógépének localhost-ján érhető el. A távoli eléréshez fel kell azt fednie nyilvánosan úgy, hogy a címet 0.0.0.0 kódra változtatja. Ettől elérhetővé válik a helyi hálózat és a nyilvános IP-címek számára. A legtöbb esetben porttovábbítást is be kell állítani a routeren.

Az interneten való port felfedéssel vigyázzon, mert ez bárki számára lehetővé teszi a csomópontjának irányítását. A támadók elérhetik a csomópontot, hogy leállítsák a rendszert vagy ellopják a pénzeszközöket, ha a klienst tárcaként használja.

Ennek elkerülésére a potenciálisan ártó RPC-módokat megakadályozhatja úgy, hogy azok nem módosíthatók. Például a Geth-tel a módosítható módokat egy jelölővel láthatja el: --http.api web3,eth,txpool.

Az RPC-interfészhez való hozzáférést kiterjesztheti edge layer API-k vagy webszerver-alkalmazások fejlesztésével, mint amilyen a Nginx, és ezeket a kliens lokális címéhez és portjához kapcsolhatja. Egy köztes réteg használata segíthet a fejlesztőknek, hogy hitelesítést állítsanak fel a biztonságos https kapcsolódásokhoz az RPC-interfészhez.

A webszerver, a proxy vagy a kifelé néző Rest API nem az egyedüli módszer arra, hogy a csomópontjának az RPC-végpontjához hozzáférést adjon. Egy nyilvánosan elérhető végpont adatbiztonságot megőrző módja az, hogy a csomópontot a saját Tor(opens in a new tab) onion szolgáltatásán hosztolja. Így az RPC elérhető a lokális hálózaton kívül, statikus, nyilvános IP-cím vagy egy nyitott port nélkül is. Ugyanakkor ez a beállítás az RPC-végpontot talán csak a Tor hálózaton keresztül teszi elérhetővé, amit nem támogat minden alkalmazást, és ezért kapcsolódási problémákat okozhat.

Ehhez létre kell hoznia a saját onion szolgáltatását(opens in a new tab). Tekintse meg a dokumentációt(opens in a new tab) az onion szolgáltatás felállításáról ahhoz, hogy a sajátját hosztolja. Ezt egy webszerverhez kapcsolhatja egy proxy-val az RPC-porthoz vagy közvetlenül az RPC-hez.

Végül az egyik legnépszerűbb mód a belső hálózathoz való hozzáférés-biztosításra a VPN-en keresztüli kapcsolat. Attól függően, hogy Ön mire használja és mennyi felhasználónak akar hozzáférést biztosítani a csomópontjához, a biztonságos VPN-kapcsolat jó opció lehet. Az OpenVPN(opens in a new tab) egy teljes körű SSL VPN, amely OSI layer 2 vagy 3 biztonságos hálózati kiterjesztést implementál az iparági standard SSL/TLS-protokollt használva, támogatja a rugalmas klienshitelesítési módokat bizonyítványok, okoskártyák és/vagy felhasználói név és jelszó alapján, és engedi a felhasználó vagy csoport specifikus hozzáférés-kezelési szabályzatok használatát a tűzfalszabályokat alkalmazva a VPN virtuális interfészére.

A csomópont üzemeltetése

A csomópontot rendszeresen felügyelni kell, hogy az megfelelően működik-e. Emellett esetenként karbantartást kell végezni.

A csomópont online tartása

A csomópontnak nem kell mindig online lennie, de érdemes minél többet online tartani, hogy szinkronban legyen a hálózattal. Le lehet állítani azért, hogy újra legyen indítva, de érdemes figyelni arra, hogy:

  • A leállítás eltarthat néhány percig, ha a jelenlegi státusz még íródik a lemezre.
  • A kényszerített leállítás következtében sérülhet az adatbázis, ami miatt akár az egész csomópontot újra kell szinkronizálni.
  • A kliens nem lesz szinkronban a hálózattal, így az újraindításnál újra kell szinkronizálni. Miközben a csomópont képes onnan szinkronizálni, ahol legutóbb tartott, ez eltarthat egy darabig attól függően, hogy mennyit volt offline.

Ez nem vonatkozik a konszenzusréteg validátor-csomópontjaira. Ekkor a csomópont offline állapota minden olyan szolgáltatást érint, amely ettől függ. Ha letétbe helyezési célból üzemeltet csomópontot, akkor minimalizálni kell a kiesett időt.

Kliensszolgáltatások létrehozása

Fontolja meg, hogy létrehoz egy szolgáltatást, hogy a klienseket automatikusan futtassa a bekapcsoláskor. Például a Linux szervereken érdemes lehet létrehozni egy szolgáltatást például a systemd kóddal, amely elindítja a klienst a megfelelő konfigurációval egy korlátozott privilégiumokkal bíró felhasználó alatt és automatikusan újraindítja azt.

A kliensek frissítése

Tartsa a kliensszoftverét naprakészen a legutóbbi biztonsági javításokkal, funkciókkal és EIP-ekkel. Főleg a végleges elágazás (hard fork) esetén legyen biztos abban, hogy a megfelelő kliensverziót használja.

A fontos hálózati frissítések előtt az Ethereum Alapítvány publikál egy cikket a blogon(opens in a new tab). Ön is feliratkozhat ezekre a bejelentésekre(opens in a new tab), hogy e-mailes figyelmeztetést kapjon, amikor a csomópontot frissíteni kell.

A kliensek frissítése igen egyszerű. Minden kliens dokumentációjában specifikus instrukciókat talál, de az általános eljárás az, hogy le kell tölteni a legújabb verziót és újra kell indítani a klienst az új végrehajtási programmal. A kliens ott folytatja, ahol abbahagyta, de már a frissítésekkel együtt.

Minden kliensimplementáció rendelkezik egy ember által olvasható verziójelöléssel, melyet a peer-to-peer protokollban használnak, de a parancssorból is elérhető. Ez a verziójelölés megmutatja a felhasználóknak, hogy a megfelelő verziót használják-e, illetve a blokkfelfedezők és más elemzési eszközök számára, hogy megvizsgálják a kliensek megoszlását a hálózaton keresztül. A verziójelöléssel kapcsolatos további információkért tekintse át az adott kliens dokumentációját.

Hozzáadott szolgáltatások futtatása

A saját csomópont futtatása megengedi olyan szolgáltatások használatát, melyhez hozzáférés szükséges az Ethereum-kliens RPC-hez. Ezek olyan, Ethereumra épített szolgáltatások, mint a 2. blokkláncréteg által nyújtott megoldások, a tárcák biztonsági mentése, blokkfelfedezők, fejlesztői eszközök és más Ethereum infrastruktúrák.

A csomópont felügyelete

A csomópont megfelelő felügyeletéhez érdemes a mérőszámokat gyűjteni. A kliensek képesek mérőszámokat biztosítani a végpontokról, így átfogó képet ad a csomóponttal kapcsolatban. Használjon olyan eszközöket, mint az InfluxDB(opens in a new tab) vagy a Prometheus(opens in a new tab), hogy adatbázist hozzon létre, amelyből vizualizációt és diagrammokat készíthet olyan szoftverekkel, mint a Grafana(opens in a new tab). Különféle beállítások és Grafana-irányítópultok léteznek a csomópont és az egész hálózat vizualizációjára. Nézze meg például a Geth felügyeletéről szóló útmutatót.

A felügyelet részeként figyeljen a gép teljesítményére is. A csomópont kezdeti szinkronizálásakor a kliensszoftver nagyobb terhet helyezhet a CPU-ra és RAM-ra. A Grafana mellett olyan eszközt is használhat, amit az operációs rendszere ajánl, mint a htop vagy az uptime.

További olvasnivaló

Hasznosnak találta a cikket?