以太坊的RLPx有什么用途?它们如何在以太坊生态系统中使用它

时间:2018-02-28 12:12:31

标签: network-programming blockchain network-protocols tcp-ip ethereum

据我所知,RLPx是一个基于Kademlia DHT的协议,但有一点我不确定这个协议需要什么,或者它试图解决的问题是什么?

此外它说它的目标是允许多个协议通过单一连接这是什么意思?

以及这部分意味着什么

  

RLPx是一种加密的点对点网络和协议套件,为应用程序通过p2p网络提供通用传输和接口。

1 个答案:

答案 0 :(得分:0)

我正在努力理解同样的事情,我会解释到目前为止我所理解的事情(希望如果我错了,有人会纠正我):

首先,RLPx是协议套件,而不是单一协议。 一方面,它使用kademlia节点发现协议的修改版本(使用UDP消息)来维护p2p覆盖网络。我们可以将其命名为RLPx节点发现协议。

两个对等体第一次相遇,它们应该执行两阶段握手(即两次不同的握手)。 在第一次握手中,他们交换了一些加密秘密(详细说明here (in the rlpx specification)),用于它们之间的后续通信。因此,后续消息将被加密和验证。

在第二次握手中,他们交换了他们的能力,即他们支持的devp2p子协议(对等体可以支持多种协议)。第二次握手可以被视为devp2p wire protocol(Hello消息)的一部分。文档说:

  

ÐΞVp2p节点通过使用RLPx发送消息进行通信

(这次使用TCP消息)。 我列出了一些广泛使用的devp2p wire子协议:

因此,RLPx消息经过加密和验证,在它们之上,您可以使用不同的协议进行通信。 我们可以说RLPx是传输层协议,devp2p及其子协议是应用层协议。