以太坊中的网络地址

科普:以太坊中的网络地址

在与 Felix Lange 讨论之后,我认为攥写这篇关于在以太坊生态中遇到的各类网络地址及其差异的文章是很有意义的。我自身对它们理解也存在着些误区,因而觉得对其进行阐述会很有价值。

多地址(Multiaddr)

让我们从最早或按 commit 时间来看最早被归档的多地址 (Multiaddr[1]) 开始。多地址是 Protocol Labs 的多格式项目(multiformats project)的一部分。多格式本质上是自描述值的各种规范。由于被广泛用于libp2p,IPFS 以及其它 Protocol Labs 的项目,你可能早就听说过它们。

多地址有两种表示形式:一种是存储或传输时使用的二进制表示;另一种是提供给用户的可读格式。

/ip4/127.0.0.1/udp/1234

上面展示了一个以可读格式表示的多地址。该多地址是一种以键值对来表示地址的可递归格式。(笔者注,地址可表达为{, })。二进制表示也是相同的——有一个字节数组表示键,还有一个用于表示值。键可以通过协议表[2]从可读形式映射为代码形式。

enode

接下来就是enode[3]。enode并不是真正的网络地址格式而是 url 格式。由于 enode 是 ENR 的前身,我们仍会介绍它。一个 enode URL 如下所示:

enode://[email protected]:30303?discport=30301

enode体系被用于表示URL。enode://后面跟着一个十六进制编码的节点ID。接下来,@符号后面表示的是主机,其必须为一个IP地址。主机后面列出了TCP端口,在我们的例子中为30303。若UDP和TCP的端口不同,UDP端口可通过在末尾添加discport参数来指定。

ENR

最后我们来介绍 ENR[4](以太坊节点记录)。ENR很有趣,原因在于其皆使用了前两种类型(多地址和enode URL)的特性,使得它变得十分通用。ENR的主要动机是允许转发过程中携带更多的信息,因而引入了节点记录。节点记录是自证的,而且节点可通过签名来鉴别身份。这些记录被表示为一个RLP列表[5]——此处我不会进行详细介绍,但稍微提及一下,RLP是以太坊使用的一种序列化格式。

节点记录包含了一个签名,序列号与一个表明用于创建和验证签名的身份认证机制所需的字段。最后,记录的其余部分包含了任意键值对,这些键值对可包含诸如连接信息之类的东西。EIP定义了一些具有预定义含义的键,如ip,其为4字节表示的节点IPv4地址。

签名被用于通过确保传递的公钥为创建签名所使用的公钥来验证记录。

如果同一个身份签发了2个不同的记录,那么序列号可用于解决冲突:规定使用序列号较大的记录。

需要注意的是,节点记录的RLP编码版本号不能超过300字节。

该格式是面向未来的,新键即使在部分客户端不能解析的情况下仍能被添加,以及新的身份认证机制可被添加以检验签名。

ETH 2.0

现在,让我们来看看 Eth2.0。在 Eth2.0 之前,以太坊中从未使用过多地址,而其现在变得非常重要。为什么?因为 Eth2.0 使用 libp2p,而 libp2p 又使用多地址来识别节点。

那么,我们该怎么处理这种情况呢?Eth2.0 的 P2P规范[6] 展示了2种方案:

1,多地址可从ENR导出

2,由于ENR能够添加任意键,多地址能被包含在ENR中。

希望本文能够给出一个关于不同的网络地址是什么,这些地址间的区别,工作方式以及用途的精简概要。

24小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun