Ugrás a fő tartalomra
Change page

Csomópont-architektúra

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

Egy Ethereum-csomópont két kliensből áll: egy végrehajtási kliensből és egy konszenzusos kliensből.

Amikor az Ethereum a proof-of-work (munkaigazolás) mechanizmusát használta, akkor a végrehajtási kliens elegendő volt egy teljes Ethereum-csomópont futtatásához. A proof-of-stake (letétigazolás) mechanizmusának bevezetésétől a végrehajtási kliens egy másik szoftverrel együtt kell működtetni, amely a konszenzusos kliens.

Ez az ábra a két Ethereum-kliens kapcsolatát mutatja. A két kliens a saját megfelelő peer-to-peer (P2P), azaz társak közötti hálózatához kapcsolódik. Külön P2P hálózatra van szükségük, mert a végrehajtási kliens a saját hálózatán terjeszti a „pletykát” a tranzakciókról, hogy azok a kliensek helyi tranzakciógyűjtőjébe kerülhessenek, miközben a konszenzusos kliens a saját hálózatán a blokkokról „pletykál”, mellyel konszenzust és láncnövekedést ér el.

Ahhoz, hogy ez a két kliensből álló struktúra működni tudjon, a konszenzusos klienseknek tranzakciókötegeket kell átadni a végrehajtási kliensnek. Ahogy a kliens ezeket a tranzakciókat lokálisan végrehajtja, le tudja ellenőrizni, hogy nem sértenek-e semmilyen Ethereum szabályt, illetve a javasolt Ethereum státusz korrekt-e. Ehhez hasonlóan, amikor az adott csomópont válik a blokképítővé, akkor a konszenzusos kliensnek tranzakciókötegeket kell kérnie a Geth-től, hogy azokat az új blokkba betegye és végrehajtsa, hogy frissíteni tudja a globális státuszt. Ez a kliensek közötti kommunikáció egy helyi RPC-kapcsolaton keresztül megy végbe az motor API-t(opens in a new tab) használva.

Mit csinál a végrehajtási kliens?

A végrehajtási kliens feladata a tranzakciók kezelése, a tranzakciókról való pletykálás, a státusz kezelése és az Ethereum virtuális gép (EVM) támogatása. Ugyanakkor nem felel a blokképítésért, a blokkról való pletykáért vagy a konszenzuslogika kezeléséért. Ezek a konszenzusos kliens feladatai.

A végrehajtási kliens végrehajtási csomagokat készít, melynek része a tranzakciók listája, a frissített státuszfa és más végrehajtással kapcsolatos adatok. A konszenzusos kliens a végrehajtási csomagot teszi bele a blokkba. A végrehajtási kliens azért is felel, hogy az új blokkok tranzakcióit újrafuttatva biztosítsa azok érvényességét. A tranzakciók újrafuttatása a végrehajtási kliens beépített számítógépén történik, melyet Ethereum virtuális gépként (EVM) ismerünk.

A végrehajtási kliens emellett egy felhasználói felületet is ajánl az Ethereumnak az RPC-módszerek révén, mellyel a felhasználók adatokhoz juthatnak az Ethereum-blokkláncról, tranzakciókat küldhetnek be és okosszerződéseket hozhatnak létre. Az RPC-kapcsolatot általában egy olyan könyvtár kezeli, mint a Web3js(opens in a new tab), Web3py(opens in a new tab), vagy egy olyan felhasználói felület, mint egy böngészőbővítménnyel rendelkező tárca.

Összefoglalva a végrehajtási kliens:

  • az Ethereumhoz való hozzáférés a felhasználók számára
  • az Ethereum virtuális gép, az Ethereum státusz és a tranzakciógyűjtő helye.

Mit csinál a konszenzusos kliens?

A konszenzusos kliens azokat a logikákat kezeli, amellyel a csomópont szinkronban marad az Ethereum-hálózattal. Ebbe beletartozik az, hogy blokkokat kap a társaitól és futtatja az elágazási algoritmust, hogy biztosítsa, a csomópont mindig a láncot követi a tanúsítások lehető legnagyobb hányadát összegyűjtve (melyet a validátor aktuális egyenlege súlyoz). A végrehajtási klienshez hasonlóan a konszenzusos klienseknek is saját P2P hálózata van, melyen keresztül megosztják a blokkokat és a tanúsításokat.

A konszenzusos kliens nem vesz részt a tanúsításban vagy a blokkelőterjesztésben, mivel ezt a validátor teszi, ami egy opcionális, hozzáadott program a konszenzusos klienshez. A konszenzusos kliens validátor nélkül csak azzal foglalkozik, hogy fenntartsa a lánc elejét, vagyis legutóbbi állapotát, hogy a csomópont szinkronizálva maradjon. Ennélfogva a felhasználó képes az Ethereummal a végrehajtási kliensen keresztül kapcsolódni, és biztos lehet abban, hogy azt a megfelelő láncon teszi.

Validátorok

A csomópont működtetői hozzáadhatnak egy validátort a konszenzusos klienseikhez azzal, hogy 32 ETH-t letétbe helyeznek a letéti szerződésben. A validátorkliens a konszenzusos klienssel van összecsomagolva, és bármikor hozzá lehet adni egy csomóponthoz. A validátor kezeli a tanúsításokat és a blokkelőterjesztéseket. Lehetővé teszik, hogy a csomópont jutalmakat szerezzen vagy ETH-t veszítsen a büntetések és kizárások révén. A validátorszoftver futtatása megengedi, hogy a csomópont új blokkot is javasolhasson.

Bővebben a letétbe helyezésről.

A csomópontösszehasonlítás elemei

Végrehajtási kliensKonszenzusos kliensValidátor
A tranzakciókról pletykál a saját P2P hálózatánA blokkokról és tanúsításokról pletykál a saját P2P hálózatánBlokkot javasol
Végrehajt vagy újra végrehajt tranzakciókatAz elágazási algoritmust futtatjaJutalmakat/büntetéseket szerez
Ellenőrzi a bejövő státuszváltozásokatA lánc elejét, vagyis legfrissebb állapotát követiTanúsításokat végez
Kezeli a státuszhoz és a visszaigazolásokhoz tartozó fastruktúrákatA Beacon-státuszt kezeli (ami konszenzusos és végrehajtási infókat tartalmaz)32 ETH letétbe helyezése szükséges hozzá
Végrehajtási csomagokat készítA felhalmozott véletlenszerűséget trekkeli a RANDAO-banSúlyos és kizárással járó büntetést kaphat
JSON-RPC API-t ad az Ethereummal való kapcsolódáshozAz ellenőrzést és véglegesedést trekkeli

További olvasnivaló

  • Proof-of-stake
  • Blokkjavaslat
  • A validátor jutalmai és büntetései

Hasznosnak találta a cikket?