Перейти до основного вмісту
Change page

Архітектура вузла

Вузол Етеріуму складається з двох клієнтів: клієнта виконання та клієнта консенсусу. Щоб вузол міг запропонувати новий блок, він також повинен запускати клієнт валідатора.

Коли Етеріум використовував доказ виконання роботи (PoW), клієнта виконання було достатньо для запуску повного вузла Етеріуму. Однак після впровадження доказу частки (PoS), клієнт виконання повинен використовуватися разом з іншим програмним забезпеченням, яке називається клієнтом консенсусу.

На діаграмі нижче показано зв'язок між двома клієнтами Етеріуму. Обидва клієнти підключаються до своїх відповідних однорангових (P2P) мереж. Окремі P2P-мережі потрібні, оскільки клієнти виконання поширюють транзакції у своїй P2P-мережі, що дозволяє їм керувати своїм локальним пулом транзакцій, тоді як клієнти консенсусу поширюють блоки у своїй P2P-мережі, забезпечуючи консенсус і зростання ланцюга.

Diagram of Ethereum node architecture showing execution and consensus layers

Існує кілька варіантів клієнта виконання, зокрема Ерігон, Незермайнд та Besu.

Щоб ця двокомпонентна структура працювала, клієнти консенсусу повинні передавати пакети транзакцій клієнту виконання. Клієнт виконання виконує транзакції локально, щоб перевірити, чи не порушують вони жодних правил Етеріуму та чи є запропоноване оновлення стану Етеріуму правильним. Коли вузол обирається виробником блоку, його екземпляр клієнта консенсусу запитує пакети транзакцій у клієнта виконання, щоб включити їх у новий блок і виконати для оновлення глобального стану. Клієнт консенсусу керує клієнтом виконання через локальне RPC-з'єднання за допомогою Engine API (opens in a new tab).

Що робить клієнт виконання?

Клієнт виконання відповідає за перевірку, обробку та поширення транзакцій, а також за управління станом і підтримку Віртуальної машини Етеріуму (EVM). Він не відповідає за створення блоків, їх поширення або обробку логіки консенсусу. Це входить до компетенції клієнта консенсусу.

Клієнт виконання створює корисне навантаження виконання — список транзакцій, оновлене дерево стану та інші дані, пов'язані з виконанням. Клієнти консенсусу включають корисне навантаження виконання в кожен блок. Клієнт виконання також відповідає за повторне виконання транзакцій у нових блоках, щоб переконатися в їхній дійсності. Виконання транзакцій здійснюється на вбудованому комп'ютері клієнта виконання, відомому як Віртуальна машина Етеріуму (EVM).

Клієнт виконання також пропонує користувацький інтерфейс до Етеріуму через методи RPC, які дозволяють користувачам робити запити до блокчейну Етеріуму, надсилати транзакції та розгортати смарт-контракти. Зазвичай RPC-виклики обробляються бібліотекою, такою як Web3js (opens in a new tab), Web3py (opens in a new tab), або користувацьким інтерфейсом, наприклад, браузерним гаманцем.

Підсумовуючи, клієнт виконання — це:

  • користувацький шлюз до Етеріуму;
  • середовище для Віртуальної машини Етеріуму, стану Етеріуму та пулу транзакцій.

Що робить клієнт консенсусу?

Клієнт консенсусу обробляє всю логіку, яка дозволяє вузлу залишатися синхронізованим з мережею Етеріуму. Це включає отримання блоків від однорангових вузлів і запуск алгоритму вибору форка, щоб гарантувати, що вузол завжди слідує за ланцюгом з найбільшим накопиченням атестацій (зважених за ефективними балансами валідаторів). Подібно до клієнта виконання, клієнти консенсусу мають власну P2P-мережу, через яку вони обмінюються блоками та атестаціями.

Клієнт консенсусу не бере участі в атестації або пропозиції блоків — це робить валідатор, додатковий компонент клієнта консенсусу. Клієнт консенсусу без валідатора лише відстежує вершину ланцюга, дозволяючи вузлу залишатися синхронізованим. Це дає змогу користувачеві здійснювати транзакції в Етеріумі за допомогою свого клієнта виконання, будучи впевненим, що він знаходиться в правильному ланцюзі.

Валідатори

Стейкінг і запуск програмного забезпечення валідатора роблять вузол придатним для вибору з метою пропозиції нового блоку. Оператори вузлів можуть додати валідатор до своїх клієнтів консенсусу, внісши 32 ETH у депозитний контракт. Клієнт валідатора постачається в комплекті з клієнтом консенсусу і може бути доданий до вузла в будь-який час. Валідатор обробляє атестації та пропозиції блоків. Він також дозволяє вузлу накопичувати винагороди або втрачати ETH через штрафи чи слешинг.

Більше про стейкінг.

Порівняння компонентів вузла

Клієнт виконанняКлієнт консенсусуВалідатор
Поширює транзакції у своїй P2P-мережіПоширює блоки та атестації у своїй P2P-мережіПропонує блоки
Виконує/повторно виконує транзакціїЗапускає алгоритм вибору форкаНакопичує винагороди/штрафи
Перевіряє вхідні зміни стануВідстежує вершину ланцюгаСтворює атестації
Керує деревами стану та квитанційКерує станом Beacon (містить інформацію про консенсус і виконання)Вимагає 32 ETH для стейкінгу
Створює корисне навантаження виконанняВідстежує накопичену випадковість у RANDAO (алгоритм, що забезпечує перевірену випадковість для вибору валідатора та інших операцій консенсусу)Може бути підданий слешингу
Надає JSON-RPC API для взаємодії з ЕтеріумомВідстежує обґрунтування та фіналізацію

Подальше читання