devp2p

以太坊点对点网络协议

devp2p的Github Repo包含以太坊所使用的点对点网络协议规范。

目标

devp2p是构建以太坊点对点网络的网络协议集合。此处“以太坊网络”'的含义十分广泛,即devp2p并非仅适用于特定的区块链,而是服务于以太坊相关的任何应用。

devp2p的目标是在多种编程环境中实现由正交组件构成的集合系统。该系统不仅能够发现整个网络中的其他参与者,还能保证参与者之间的互相沟通。

在仅在给出规范的情况下,devp2p中的网络协议也应该易于从头实现,并且即使是在消费者级网络连接存在限制的情况下,也必须能够运行。团队通常在设计协议时采取以“规范为本”的方式,但是规范必须随附有效的原型或是能够在合理时间内实现。

devp2p vs. libp2p

libp2p与devp2p项目几乎同时启动,旨在以模块化组件构成点对点网络,而libp2p就是这一系列组件的集合。有一个问题经常被问及:devp2p和libp2p之间是什么关系?

其实很难去比较这两个项目,因为它们有着不同的范围和目标。devp2p是一个集成化的系统定义,其目标是尽力满足以太坊的需求(也可能十分适用于其他应用程序),而libp2p是由编程库构成的集合,不服务于单个特定应用。

也就是说,这两个项目在本质上高度相似,随着libp2p越来越成熟,devp2p会逐渐采用其中的部分内容。

实现

devp2p is part of most Ethereum clients. Implementations include:

大多数以太坊客户端都采用了devp2p,包括: