BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

科普:以太坊中的網絡地址

Unitimes
特邀专栏作者
本文約1502字,閱讀全文需要約3分鐘
本文將概述多地址,ENR 和enode 這三類網絡地址。
AI總結
本文將概述多地址,ENR 和enode 這三類網絡地址。

編者按:本文來自Unitimes(ID:Uni-times)編者按:本文來自

二級標題

二級標題

多地址(Multiaddr)

二級標題

/ip4/127.0.0.1/udp/1234

多地址(Multiaddr), })。二進製表示也是相同的——有一個字節數組表示鍵,還有一個用於表示值。鍵可以通過協議表[2]從可讀形式映射為代碼形式。

enode

二級標題

enode://6f8a80d6ad92a0@10.3.58.6: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地址。

該格式是面向未來的,新鍵即使在部分客戶端不能解析的情況下仍能被添加,以及新的身份認證機制可被添加以檢驗簽名。

Eth 2.0

二級標題

二級標題

  1. 二級標題

  2. 現在,讓我們來看看Eth2.0。在Eth2.0 之前,以太坊中從未使用過多地址,而其現在變得非常重要。為什麼?因為Eth2.0 使用libp2p,而libp2p 又使用多地址來識別節點。

那麼,我們該怎麼處理這種情況呢? Eth2.0 的P2P規範[6] 展示了2種方案:

ETH
歡迎加入Odaily官方社群