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

Мережеві адреси

Останні оновлення сторінки: 26 лютого 2026 р.

Вузли Ethereum повинні ідентифікувати себе за допомогою базової інформації для підключення до пірів. Щоб гарантувати, що будь-який потенційний пір зможе інтерпретувати цю інформацію, вона передається в одному з трьох стандартизованих форматів, які може зрозуміти будь-який вузол Ethereum: multiaddr, enode або Ethereum Node Records (ENR). ENR є поточним стандартом для мережевих адрес Ethereum.

Передумови

Для розуміння цієї сторінки потрібне певне розуміння мережевого шару Ethereum.

Multiaddr

Оригінальним форматом адреси вузла Ethereum був 'multiaddr' (скорочення від 'multi-addresses' — мультиадреси). Multiaddr — це універсальний формат, розроблений для пірингових мереж. Адреси представлені у вигляді пар «ключ-значення», де ключі та значення розділені скісною рискою. Наприклад, мультиадреса для вузла з IPv4-адресою 192.168.22.27, що прослуховує TCP-порт 33000, має такий вигляд:

/ip4/192.168.22.27/tcp/33000

Для вузла Ethereum мультиадреса містить ідентифікатор вузла (node-ID) (хеш його відкритого ключа):

/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br

Enode

Enode — це спосіб ідентифікації вузла Ethereum з використанням формату URL-адреси. Шістнадцятковий ідентифікатор вузла кодується в частині URL-адреси, що відповідає за ім'я користувача, і відокремлюється від хоста символом @. Ім’я хоста можна вказувати лише як IP-адресу; DNS-імена не допускаються. Порт у розділі імені хоста — це TCP-порт для прослуховування. Якщо порти TCP і UDP (для виявлення) відрізняються, порт UDP вказується як параметр запиту "discport".

У наведеному нижче прикладі URL-адреса вузла описує вузол з IP-адресою 10.3.58.6, TCP-портом 30303 і UDP-портом виявлення 30301.

enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301

Записи вузлів Ethereum (ENR)

Записи вузлів Ethereum (ENR) є стандартизованим форматом для мережевих адрес в Ethereum. Вони замінюють multiaddr і enode. Вони особливо корисні, оскільки дозволяють більш розширений обмін інформацією між вузлами. ENR містить підпис, порядковий номер і поля, що деталізують схему ідентифікації, яка використовується для створення та перевірки підписів. ENR також може бути заповнений довільними даними, організованими у вигляді пар «ключ-значення». Ці пари «ключ-значення» містять IP-адресу вузла та інформацію про субпротоколи, які вузол може використовувати. Клієнти консенсусу використовують специфічну структуру ENR (opens in a new tab) для ідентифікації завантажувальних вузлів, а також містять поле eth2, що містить інформацію про поточний форк Ethereum і підмережу поширення атестацій (це підключає вузол до певного набору пірів, атестації яких агрегуються разом).

Додаткові матеріали

Чи була ця стаття корисною?