Network

為什麼java乙太坊使用UDP?- 不只是 devp2p TCP

  • December 16, 2017

查看 java ethereum 的原始碼,我看到*UDPListenerorg.ethereum.net.rlpx.discover*包的一部分,這似乎使用 NioDatagramChannel(Netty 處理 UDP 數據報的方式)來處理 Ping、Pong、FindNode 和 Neighbors 消息做 kademia DHT 的事情。然而,Devp2p 規範說它只是 TCP,一旦發現節點,實際上 TCP 用於通信。

所以我有點困惑;UDP 是否正式用於節點發現,然後 TCP 用於通信,如果是,該節點發現協議在哪裡記錄?

Q : UDP 正式用於節點發現,然後 TCP 用於通信嗎?

是的。

您可以看到 30301 UDP 發現埠的 enode URL 格式(來自enode url format):

enode://6f8a...d92a0@10.3.58.6:30303?discport=30301

:如果是這樣,這個節點發現協議在哪裡記錄?

https://github.com/ethereum/devp2p/blob/master/rlpx.md

引用自:https://ethereum.stackexchange.com/questions/3945