move protocol layers to status spec

This commit is contained in:
Oskar Thoren 2019-08-27 15:10:28 +02:00
parent f7ed3b650a
commit 7f71045dec
No known key found for this signature in database
GPG Key ID: B2ECCFD3BC2EF77E
2 changed files with 13 additions and 15 deletions

View File

@ -42,6 +42,18 @@ in a command line client <sup>2</sup> and a mobile app <sup>3</sup>.
This document consists of two parts. The first outlines the specifications that
have to be implemented in order to be a full Status client. The second gives a design rationale and answers some common questions.
## Protocol layers
Implementing a Status clients means implementing the following layers. Additionally, there are separate specifications for things like key management and account lifecycle.
| Layer | Purpose | Technology |
|-------------------|---------------------------------|------------------------------|
| Data and payloads | End user functionality | 1:1, group chat, public chat |
| Data sync | Data consistency | MVDS Ratchet |
| Secure transport | Confidentiality, PFS, etc | Double Ratchet |
| Transport privacy | Routing, Metadata protection | Whisper |
| P2P Overlay | Overlay routing, NAT traversal | devp2p |
## P2P Overlay
Status clients run on the public Ethereum network, as specified by the devP2P

16
x4.md
View File

@ -1,19 +1,5 @@
# Protocol Layers
The Status Protocol stack consists of multiple protocols. In this document, we give a brief overview of each layer and what they provide. We also note any specific considerations when it comes to using these components together.
| Layer | Purpose | Technology |
|-------------------|---------------------------------|------------------------------|
| Data | End user functionality | 1:1, group chat, public chat |
| Security | Confidentiality, PFS | Double Ratchet |
| Privacy | Metadata protection | Whisper |
| P2P | Overlay routing, NAT traversal | devp2p |
> Note that the Status Protocol was documented after the fact, which might lead to some inconsistencies or questionable design choices.
# Data Sync Clients
Data Sync Clients
Data Sync Clients specify a format of payloads exchanged between clients communicating using the Status Protocol. The robust and well-defined format is required in order to provide some security guarantees, for example, clients should not display messages that do not conform to the format, and allow the clients to upgrade the protocol safely in the future.