This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dido:public:ra:xapend:xapend.a_glossary:r:rlpx [2022/01/08 19:04] nick |
dido:public:ra:xapend:xapend.a_glossary:r:rlpx [2022/01/09 14:10] (current) nick |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] | [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] | ||
| - | **RLPx** is a [[dido:public:ra:xapend:xapend.a_glossary:p:start]] suite and not a single protocol. On the one hand it maintains the [[dido:public:ra:xapend:xapend.a_glossary:p:p2p]] overlay network with the means of a modified version of the kademlia node discovery protocol (using [[dido:public:ra:xapend:xapend.a_glossary:u:udp]] messages). We could name it RLPx **Node Discovery Protocol**. | + | **RLPx** is a [[dido:public:ra:xapend:xapend.a_glossary:p:start]] suite and not a single protocol. On the one hand it maintains the [[dido:public:ra:xapend:xapend.a_glossary:p:p2p]] overlay network with the means of a modified version of the [[dido:public:ra:xapend:xapend.a_glossary:k:kademlia]] node discovery protocol (using [[dido:public:ra:xapend:xapend.a_glossary:u:udp]] messages). We could name it **RLPx** **Node Discovery Protocol**. |
| - | The first time two [[dido:public:ra:xapend:xapend.a_glossary:p:peer | Peers]] meet each other, they should perform a two-phase handshake (i.e. two different handshakes). In the first handshake, they exchange some [[dido:public:ra:xapend:xapend.a_glossary:c:cryptographic_algorithm | ryptographic]] secrets (the details are explained here (in the RLPx specification)) that are used for the subsequent communications between them. The subsequent messages are therefore [[ dido:public:ra:xapend:xapend.a_glossary:e:encryption | encrypted]] and [[dido:public:ra:xapend:xapend.a_glossary:a:authentication | authenticated]]. | + | The first time two [[dido:public:ra:xapend:xapend.a_glossary:p:peer | Peers]] meet each other, they should perform a two-phase handshake (i.e. two different handshakes). In the first handshake, they exchange some [[dido:public:ra:xapend:xapend.a_glossary:c:cryptographic_algorithm | ryptographic]] secrets (the details are explained here (in the **RLPx** specification)) that are used for the subsequent communications between them. The subsequent messages are therefore [[ dido:public:ra:xapend:xapend.a_glossary:e:encryption | encrypted]] and [[dido:public:ra:xapend:xapend.a_glossary:a:authentication | authenticated]]. |
| In the second handshake, they exchange their capabilities, i.e. which **''devp2p''** subprotocols they support (the peers can support multiple protocols). This second handshake could be considered already part of **''devp2p''** wire protocol (the **''Hello''** message). The documentation says that: | In the second handshake, they exchange their capabilities, i.e. which **''devp2p''** subprotocols they support (the peers can support multiple protocols). This second handshake could be considered already part of **''devp2p''** wire protocol (the **''Hello''** message). The documentation says that: | ||
| Line 14: | Line 14: | ||
| * [[dido:public:ra:xapend:xapend.a_glossary:e:eth]], the Ethereum wire subprotocol used to exchange the information about the blockchain | * [[dido:public:ra:xapend:xapend.a_glossary:e:eth]], the Ethereum wire subprotocol used to exchange the information about the blockchain | ||
| * [[dido:public:ra:xapend:xapend.a_glossary:w:whisper]] | * [[dido:public:ra:xapend:xapend.a_glossary:w:whisper]] | ||
| - | * les the light ethereum subprotocol is the protocol designed for the light clients | + | * [[dido:public:ra:xapend:xapend.a_glossary:l:les]] the light Ethereum subprotocol is the protocol designed for the light clients |
| ...If you want you can write your own subprotocol https://github.com/ethereum/go-ethereum/wiki/Peer-to-Peer. | ...If you want you can write your own subprotocol https://github.com/ethereum/go-ethereum/wiki/Peer-to-Peer. | ||
| - | Therefore, RLPx messages are encrypted and authenticated and on top of them you can communicate with different protocols. We can say that RLPx is the transport layer protocol and **''devp2p''** and its subprotocols are the application level protocols. | + | Therefore, **RLPx** messages are encrypted and authenticated and on top of them you can communicate with different protocols. We can say that **RLPx** is the transport layer protocol and **''devp2p''** and its subprotocols are the application level protocols. |
| Source: [[https://stackoverflow.com/questions/49029311/what-is-the-use-of-ethereums-rlpx-and-how-do-they-use-it-in-ethereum-ecosystem ]] | Source: [[https://stackoverflow.com/questions/49029311/what-is-the-use-of-ethereums-rlpx-and-how-do-they-use-it-in-ethereum-ecosystem ]] | ||