跳转至主要内容

帮助更新此页面

🌏

本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。

翻译页面
查看英文

没有错误!🐛

此页面未翻译,因此特意以英文显示。

网络地址

上次编辑: , Invalid DateTime
编辑页面

以太坊节点必须用一些基本信息来表明身份,才能连接到其他节点。 为了确保任何潜在对等点能够解析这些信息,它以任何以太坊节点能够理解的三种标准化格式之一进行传递:multiadder、enode 或以太坊节点记录 (ENR)。 以太坊节点记录是以太坊网络地址的现行标准。

前提条件

要理解此页,建议首先了解以太坊的网络层

Multiaddr

原始以太坊节点地址格式为“multiaddr”(“多地址”的缩写)。 Multiaddr 是一种通用格式,用于对等网络。 地址以键值对表示,键与值之间用正斜杠隔开。 例如,使用 IPv4 地址 192.168.22.27 监听 TCP 端口 33000 的节点可能具有以下类似的 multiaddr:

/ip4/192.168.22.27/tcp/33000

对于以太坊节点,multiaddr 包含节点 ID(其公钥的哈希值):

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

Enode

Enode 使用 URL 地址格式来识别以太坊节点。 十六进制节点 ID 编码为 URL 的用户名部分,采用 @ 符号与主机分隔开来。 主机名只能作为 IP 地址给出;不允许给出 DNS 名称。 主机名部分中的端口是 TCP 监听端口。 如果传输控制协议和用户数据报协议(发现)端口不同,用户数据报协议端口将被指定为查询参数“disposport”

在下面的例子中,节点 URL 描述了一个 IP 地址为 10.3.58.6、TCP 端口为 30303、UDP 发现端口为 30301 的节点。

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

以太坊节点记录 (ENR)

以太坊节点记录 (ENR) 是以太坊网络地址的标准格式。 这种地址取代了 multiaddr 和 enode。 由于它们使节点之间能够进行更多的信息交流,因而尤其实用。 以太坊节点记录包含一个签名、序列号和字段,详细说明了用于生成和验证签名的身份识别方案。 以太坊节点记录还可以填充为采用键值对格式的任意数据。 这些键值对包含节点的 IP 地址和节点能够使用的子协议的信息。 共识客户端使用特定的以太坊节点记录结构来识别引导节点,并包括一个 eth2 字段,其中包含有关当前以太坊分叉和认证信息传播子网的信息。上述子网将节点连接至证明被整合在一起的特定对等点集。

延伸阅读

EIP-778:以太坊节点记录 以太坊中的网络地址 LibP2P:Multiaddr-Enode-ENR?!

本文对您有帮助吗?

网站最后更新: 2023年3月19日

使用以太坊

  • 查找钱包
  • 获取 ETH
  • 去中心化应用 (dapps)
  • 第二层
  • 运行一个节点
  • 稳定币
  • Stake ETH

生态系统

  • 社区中心
  • 以太坊基金会
  • 以太坊基金会博客
  • 生态系统支持方案
  • 以太坊漏洞悬赏计划
  • 生态系统资助计划
  • 以太坊品牌资产
  • Devcon