Přejít na hlavní obsah
Change page

Architektura uzlu

Uzel Etherea se skládá ze dvou klientů: exekučního klienta a konsensuálního klienta. Aby mohl uzel navrhnout nový blok, musí také provozovat klienta validátoru.

Když Ethereum používalo důkaz prací (PoW), k provozování plného uzlu Etherea stačil exekuční klient. Od implementace důkazu podílem (PoS) však musí být exekuční klient používán společně s dalším softwarem zvaným konsensuální klient.

Níže uvedený diagram ukazuje vztah mezi těmito dvěma klienty Etherea. Oba klienti se připojují ke svým vlastním peer-to-peer (P2P) sítím. Oddělené P2P sítě jsou potřeba, protože exekuční klienti šíří transakce přes svou P2P síť, což jim umožňuje spravovat jejich lokální transakční pool, zatímco konsensuální klienti šíří bloky přes svou P2P síť, což umožňuje konsensus a růst řetězce.

Diagram of Ethereum node architecture showing execution and consensus layers

Existuje několik možností pro exekučního klienta, včetně Erigon, Nethermind a Besu.

Aby tato dvouklientová struktura fungovala, musí konsensuální klienti předávat balíčky transakcí exekučnímu klientovi. Exekuční klient provádí transakce lokálně, aby ověřil, že neporušují žádná pravidla Etherea a že navrhovaná aktualizace stavu Etherea je správná. Když je uzel vybrán jako producent bloku, jeho instance konsensuálního klienta si vyžádá balíčky transakcí od exekučního klienta, aby je zahrnula do nového bloku a provedla je za účelem aktualizace globálního stavu. Konsensuální klient řídí exekučního klienta prostřednictvím lokálního RPC připojení pomocí Engine API (opens in a new tab).

Co dělá exekuční klient?

Exekuční klient je zodpovědný za validaci, zpracování a šíření transakcí, spolu se správou stavu a podporou virtuálního stroje Etherea (EVM). Není zodpovědný za vytváření bloků, šíření bloků ani za zpracování logiky konsensu. Tyto úkoly spadají do kompetence konsensuálního klienta.

Exekuční klient vytváří exekuční payloady – seznam transakcí, aktualizovanou stavovou trii a další data související s exekucí. Konsensuální klienti zahrnují exekuční payload do každého bloku. Exekuční klient je také zodpovědný za opětovné provedení transakcí v nových blocích, aby se ujistil, že jsou platné. Provádění transakcí probíhá na vestavěném počítači exekučního klienta, známém jako virtuální stroj Etherea (EVM).

Exekuční klient také nabízí uživatelské rozhraní k Ethereu prostřednictvím RPC metod, které uživatelům umožňují dotazovat se na blockchain Etherea, odesílat transakce a nasazovat chytré kontrakty. Je běžné, že RPC volání jsou zpracovávána knihovnou jako Web3js (opens in a new tab), Web3py (opens in a new tab), nebo uživatelským rozhraním, jako je peněženka v prohlížeči.

Stručně řečeno, exekuční klient je:

  • uživatelská brána k Ethereu
  • domov pro virtuální stroj Etherea, stav Etherea a transakční pool.

Co dělá konsensuální klient?

Konsensuální klient se zabývá veškerou logikou, která umožňuje uzlu zůstat synchronizovaný se sítí Ethereum. To zahrnuje přijímání bloků od peerů a spouštění algoritmu volby forku, aby se zajistilo, že uzel vždy sleduje řetězec s největší akumulací atestací (váženo efektivními zůstatky validátorů). Podobně jako exekuční klient mají konsensuální klienti svou vlastní P2P síť, jejímž prostřednictvím sdílejí bloky a atestace.

Konsensuální klient se nepodílí na atestování ani navrhování bloků – to dělá validátor, volitelný doplněk konsensuálního klienta. Konsensuální klient bez validátoru pouze udržuje krok s vrcholem řetězce, což umožňuje uzlu zůstat synchronizovaný. To umožňuje uživateli provádět transakce s Ethereem pomocí svého exekučního klienta s jistotou, že se nachází na správném řetězci.

Validátory

Staking a provozování softwaru validátoru činí uzel způsobilým k tomu, aby byl vybrán k návrhu nového bloku. Operátoři uzlů mohou přidat validátor ke svým konsensuálním klientům vložením 32 ETH do depozitního kontraktu. Klient validátoru je dodáván v balíčku s konsensuálním klientem a může být k uzlu přidán kdykoli. Validátor zpracovává atestace a návrhy bloků. Umožňuje také uzlu shromažďovat odměny nebo ztrácet ETH prostřednictvím pokut nebo penalizace.

Více o stakingu.

Porovnání komponent uzlu

Exekuční klientKonsensuální klientValidátor
Šíří transakce přes svou P2P s흊íří bloky a atestace přes svou P2P síťNavrhuje bloky
Provádí/znovu provádí transakceSpouští algoritmus volby forkuShromažďuje odměny/pokuty
Ověřuje příchozí změny stavuSleduje vrchol řetězceProvádí atestace
Spravuje stavové trie a trie účtenekSpravuje stav Beaconu (obsahuje informace o konsensu a exekuci)Vyžaduje stake 32 ETH
Vytváří exekuční payloadSleduje akumulovanou náhodnost v RANDAO (algoritmus, který poskytuje ověřitelnou náhodnost pro výběr validátorů a další operace konsensu)Může být penalizován
Zpřístupňuje JSON-RPC API pro interakci s EthereemSleduje justifikaci a finalizaci

Další čtení