作者:Dean Eigenmann 编译:Unitimes_David
本文将概述多地址,ENR 和 enode 这三类网络地址。
在与 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://6f8a80d6ad92a0@10.3.58.6:30303?