“Kademlia Peer Selection” by James Ray

科普:理解以太坊的 P2P 网络

科普:理解以太坊的 P2P 网络

Vasilios Darlagiannis, (2010). P2P Systems and Overlay Networks, [PDF file] Retrieved from: https://www.iti.gr/iti/files/document/seminars/p2p_eketa_090610_v2.pdf

对等节点间通信

科普:理解以太坊的 P2P 网络

以太坊的 P2P 网络是如何工作的? Kademlia

科普:理解以太坊的 P2P 网络

科普:理解以太坊的 P2P 网络

“RLPx Node Discovery Protocol” by Felix Lange, Gustav-Simmonsson, and Roman Mandeleil

“Peer to Peer” by Felix Lange

什么是 P2P网络?

科普:理解以太坊的 P2P 网络

当某个客户端第一次启动时,它的 db 是空的,只知道 6 个硬编码的引导节点。随后,当客户端开始发现对等节点,客户端依据上面描述的机制,将节点加入 db 和 table。

Geth 客户端用两种数据结构存储其他节点的信息。第一种是称作 db 的长期数据库,它存储在磁盘内,客户端重启之后数据也是持久存在的。db 中包含客户端交互过的每个节点信息。db 的每条记录包含节点 ID,IP 地址,TCP 端口,UDP 端口,(此客户端)最后一次向(记录中)节点发送 ping 的时间,最后一次从节点收到 pong 的时间,节点响应 findnode 消息的失败次数。如果最后一次从一个节点收到 pong 消息的时间超过了一天,此节点将会被移出 db。