风险提示:理性看待区块链,提高风险意识!
以太坊中的网络地址
首页 > 币界资讯 > 矿业前瞻 2020-04-30 17:00:05
币界网报道:

作者:Dean Eigenmann

编译:Unitimes_David

本文将概述多地址ENRenode 这三类网络地址。

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

多地址 (Multiaddr)

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

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

/ip4/127.0.0.1/udp/1234

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

enode

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

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

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

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

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

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

Eth 2.0

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

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

  1. 多地址可从ENR导出
  2. 由于ENR能够添加任意键,多地址能被包含在ENR中。

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

原文链接:

https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/

上一篇: Ethereum Core Devs Meeting #84 以太坊核心开发者会议
下一篇: 吴忌寒炮轰詹克团,比特大陆“权游”第二季上演
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
比特币
61223.99 USDT
¥445,024.94
-0.02%
Solana
138.89 USDT
¥1,009.56
+1.87%
Filecoin
4.3864 USDT
¥31.88
-0.36%
Curve
0.2912 USDT
¥2.12
-5.61%
Terra Classic
8.2E-5 USDT
¥0.00
+0.6%
Conflux
0.1583 USDT
¥1.15
+0.83%
柚子
0.5808 USDT
¥4.22
+0.78%
狗狗币
0.1226 USDT
¥0.89
-1.53%
Shiba Inu
1.715E-5 USDT
¥0.00
-1.89%
Livepeer Token
16.4791 USDT
¥119.78
-3.3%
Arweave
26.778 USDT
¥194.64
-3.99%
波场
0.1229 USDT
¥0.89
-1.29%
最新快讯
更多
摩根大通:Mt.Gox债权人预计将在下个月出售部分比特币应收款项
2024-06-27 18:41:34
Bitlayer头矿节二期活动正式上线,用户可登陆OKXCryptopedia参与活动
2024-06-27 18:41:11
Ripple首席法务官:法院裁定SEC撤销代理顾问公司规则违反程序法
2024-06-27 18:36:59
DMMBitcoin黑客地址已将500BTC转移到新地址
2024-06-27 18:33:53
DMMBitcoin黑客再次将500枚BTC转至新地址
2024-06-27 18:32:23
初创公司Stability.AI获得LightspeedVentures投资
2024-06-27 18:26:57
首尔高等法院判定Fantom基金会对SikSin胜诉,认定AC领导了Fatom的开发
2024-06-27 18:24:39
下载币界网APP