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

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

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

Передумови

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

Multiaddr

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

/ip4/192.168.22.27/tcp/33000

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

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

Enode

Enode — це спосіб ідентифікації вузла Етеріуму за допомогою формату URL-адреси. Шістнадцятковий ідентифікатор вузла (node-ID) кодується в частині імені користувача 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 Node Records (ENR)

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

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