Портал Нетворк
Етеріум — це мережа, що складається з комп'ютерів, які запускають клієнтське програмне забезпечення Етеріуму. Кожен із цих комп'ютерів називається «вузлом». Клієнтське програмне забезпечення дозволяє вузлу надсилати та отримувати дані в мережі Етеріум, а також перевіряє дані відповідно до правил протоколу Етеріум. Вузли зберігають багато історичних даних на своїх дисках і додають до них нові пакети інформації, відомі як блоки, коли отримують їх від інших вузлів у мережі. Це необхідно для постійної перевірки того, що вузол має інформацію, узгоджену з рештою мережі. Це означає, що запуск вузла може вимагати багато дискового простору. Деякі операції вузла також можуть потребувати багато оперативної пам'яті.
Щоб обійти цю проблему з дисковим простором, були розроблені «легкі» вузли, які запитують інформацію у повних вузлів замість того, щоб зберігати її самостійно. Однак це означає, що легкий вузол не перевіряє інформацію незалежно, а натомість довіряє іншому вузлу. Це також означає, що повні вузли повинні виконувати додаткову роботу для обслуговування цих легких вузлів.
Портал Нетворк — це новий дизайн мережі для Етеріуму, який має на меті вирішити проблему доступності даних для «легких» вузлів без необхідності довіряти повним вузлам або створювати для них додаткове навантаження, шляхом розподілу необхідних даних невеликими частинами по всій мережі.
Більше про вузли та клієнти
Навіщо нам потрібен Портал Нетворк
Вузли Етеріуму зберігають власну повну або часткову копію блокчейну Етеріум. Ця локальна копія використовується для перевірки транзакцій і забезпечення того, що вузол слідує правильному ланцюгу. Ці локально збережені дані дозволяють вузлам незалежно перевіряти, що вхідні дані є дійсними та правильними, без необхідності довіряти будь-якій іншій сутності.
Ця локальна копія блокчейну та пов'язані з нею дані стану і квитанцій займають багато місця на жорсткому диску вузла. Наприклад, для запуску вузла за допомогою Geth (opens in a new tab) у парі з клієнтом консенсусу рекомендується жорсткий диск об'ємом 2 ТБ. Використовуючи snap-синхронізацію, яка зберігає дані ланцюга лише з відносно недавнього набору блоків, Geth зазвичай займає близько 650 ГБ дискового простору, але зростає приблизно на 14 ГБ на тиждень (ви можете періодично очищати вузол до 650 ГБ).
Це означає, що запуск вузлів може бути дорогим, оскільки великий обсяг дискового простору має бути виділений для Етеріуму. У дорожній карті Етеріуму є кілька рішень цієї проблеми, включаючи експірацію історії, експірацію стану та безстановість. Однак до їх впровадження, ймовірно, ще кілька років. Існують також легкі вузли, які не зберігають власну копію даних ланцюга, вони запитують необхідні їм дані у повних вузлів. Однак це означає, що легкі вузли повинні довіряти повним вузлам у наданні чесних даних, а також створює навантаження на повні вузли, які повинні надавати дані, необхідні легким вузлам.
Портал Нетворк має на меті надати альтернативний спосіб для легких вузлів отримувати свої дані, який не вимагає довіри або значного збільшення обсягу роботи, яку повинні виконувати повні вузли. Це буде зроблено шляхом впровадження нового способу обміну даними між вузлами Етеріуму в мережі.
Як працює Портал Нетворк?
Вузли Етеріуму мають суворі протоколи, які визначають, як вони спілкуються один з одним. Клієнти виконання спілкуються за допомогою набору підпротоколів, відомих як devp2p, тоді як клієнти консенсусу використовують інший стек підпротоколів під назвою libp2p. Вони визначають типи даних, які можуть передаватися між вузлами.
Вузли також можуть надавати певні дані через JSON-RPC API, саме так застосунки та гаманці здійснюють обмін інформацією з вузлами Етеріуму. Однак жоден із них не є ідеальним протоколом для надання даних легким клієнтам.
Легкі клієнти наразі не можуть запитувати конкретні частини даних ланцюга через devp2p або libp2p, оскільки ці протоколи розроблені лише для забезпечення синхронізації ланцюга та поширення блоків і транзакцій. Легкі клієнти не хочуть завантажувати цю інформацію, оскільки це позбавило б їх статусу «легких».
JSON-RPC API також не є ідеальним вибором для запитів даних легкими клієнтами, оскільки він покладається на підключення до певного повного вузла або централізованого провайдера RPC, який може надати дані. Це означає, що легкий клієнт повинен довіряти цьому конкретному вузлу/провайдеру, а також повному вузлу, можливо, доведеться обробляти багато запитів від багатьох легких клієнтів, що збільшує вимоги до їхньої пропускної здатності.
Суть Портал Нетворк полягає в тому, щоб переосмислити весь дизайн, створюючи його спеціально для легкості, поза межами конструктивних обмежень існуючих клієнтів Етеріуму.
Основна ідея Портал Нетворк полягає в тому, щоб взяти найкращі частини поточного мережевого стека, дозволивши надавати інформацію, необхідну легким клієнтам, таку як історичні дані та ідентифікатор поточної голови ланцюга, через легку однорангову децентралізовану мережу в стилі devp2p з використанням DHT (opens in a new tab) (подібно до Bittorrent).
Ідея полягає в тому, щоб додати невеликі частини загальних історичних даних Етеріуму та деякі специфічні обов'язки вузла до кожного вузла. Потім запити обслуговуються шляхом пошуку вузлів, що зберігають конкретні запитані дані, та їх отримання від них.
Це перевертає звичайну модель, коли легкі вузли знаходять один вузол і просять його відфільтрувати та надати великі обсяги даних; натомість вони швидко фільтрують велику мережу вузлів, кожен з яких обробляє невеликі обсяги даних.
Мета полягає в тому, щоб дозволити децентралізованій мережі легких клієнтів Portal:
- відстежувати голову ланцюга
- синхронізувати недавні та історичні дані ланцюга
- отримувати дані стану
- транслювати транзакції
- виконувати транзакції за допомогою EVM
Переваги цього дизайну мережі:
- зменшення залежності від централізованих провайдерів
- зменшення використання пропускної здатності Інтернету
- мінімізована або нульова синхронізація
- доступність для пристроїв з обмеженими ресурсами (<1 ГБ оперативної пам'яті, <100 МБ дискового простору, 1 ЦП)
У таблиці нижче показані функції існуючих клієнтів, які можуть бути надані через Портал Нетворк, що дозволяє користувачам отримувати доступ до цих функцій на пристроях з дуже низьким рівнем ресурсів.
Мережі Портал Нетворк
| Легкий клієнт Beacon | Мережа стану | Поширення транзакцій | Мережа історії | Канонічний індекс транзакцій |
|---|---|---|---|---|
| Легкий ланцюг Beacon | Сховище акаунтів і контрактів | Легкий мемпул | Заголовки | TxHash > Хеш, Індекс |
| Дані протоколу | Тіла блоків | |||
| Квитанції |
Різноманітність клієнтів за замовчуванням
Розробники Портал Нетворк також прийняли дизайнерське рішення створити чотири окремі клієнти Портал Нетворк з першого дня.
Клієнти Портал Нетворк:
- Trin (opens in a new tab): написаний на Rust
- Fluffy (opens in a new tab): написаний на Nim
- Ultralight (opens in a new tab): написаний на TypeScript
- Shisui (opens in a new tab): написаний на Go
Наявність кількох незалежних реалізацій клієнтів підвищує стійкість та децентралізацію мережі Етеріум.
Якщо один клієнт стикається з проблемами або вразливостями, інші клієнти можуть продовжувати безперебійно працювати, запобігаючи єдиній точці відмови. Крім того, різноманітні реалізації клієнтів сприяють інноваціям та конкуренції, стимулюючи вдосконалення та зменшуючи ризик монокультури в екосистемі.
