---
title: "Сетевые адреса"
description: "Введение в сетевые адреса."
lang: ru
sidebarDepth: 2
---

Узлы [Эфириума](/) должны идентифицировать себя с помощью некоторой базовой информации для подключения к пирам. Чтобы любой потенциальный пир мог интерпретировать эту информацию, она передается в одном из трех стандартизированных форматов, которые может понять любой узел Эфириума: multiaddr, enode или Ethereum Node Records (ENR). ENR — это текущий стандарт для сетевых адресов Эфириума.

## Предварительные требования {#prerequisites}

Для понимания этой страницы требуется некоторое понимание [сетевого уровня](/developers/docs/networking-layer/) Эфириума.

## Multiaddr {#multiaddr}

Первоначальным форматом адреса узла Эфириума был «multiaddr» (сокращение от «multi-addresses»). Multiaddr — это универсальный формат, разработанный для одноранговых сетей. Адреса представлены в виде пар «ключ-значение», где ключи и значения разделены прямым слешем. Например, multiaddr для узла с IPv4-адресом `192.168.22.27`, прослушивающего TCP-порт `33000`, выглядит так:

`/ip4/192.168.22.27/tcp/33000`

Для узла Эфириума multiaddr содержит ID узла (хеш его открытого ключа):

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

## Enode

Enode — это способ идентификации узла Эфириума с использованием формата URL-адреса. Шестнадцатеричный ID узла кодируется в части имени пользователя URL-адреса, отделенной от хоста знаком @. Спецификация определяет имя хоста только как IP-адрес; однако большинство клиентов (таких как Geth и Бесу) также принимают здесь DNS-имя и преобразуют его в IP-адрес при запуске. Это специфичное для клиента поведение, а не часть стандарта. Порт в разделе имени хоста — это 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) {#enr}

Ethereum Node Records (ENR) — это стандартизированный формат сетевых адресов в Эфириуме. Они заменяют multiaddr и enode. Они особенно полезны, поскольку обеспечивают более широкий обмен информацией между узлами. ENR содержит подпись, порядковый номер и поля, детализирующие схему идентификации, используемую для генерации и проверки подписей. ENR также может быть заполнен произвольными данными, организованными в виде пар «ключ-значение». Эти пары «ключ-значение» содержат IP-адрес узла и информацию о подпротоколах, которые узел может использовать. Клиенты консенсуса используют [специальную структуру ENR](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/p2p-interface.md#enr-structure) для идентификации загрузочных узлов (boot nodes), а также включают поле `eth2`, содержащее информацию о текущем форке Эфириума и подсети сплетен (gossip subnet) для аттестации (это подключает узел к определенному набору пиров, чьи аттестации агрегируются вместе).

## Дополнительная литература {#further-reading}

- [EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778)
- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/)
