add Discovery and basic faq

This commit is contained in:
Oskar Thoren 2019-08-27 13:12:28 +02:00
parent b6fb4f45ff
commit ef49fe98aa
No known key found for this signature in database
GPG Key ID: B2ECCFD3BC2EF77E
1 changed files with 22 additions and 1 deletions

View File

@ -68,7 +68,18 @@ run these provided they are connected to the rest of the Whisper network.
### Discovery ### Discovery
<!-- TODO: Add a link to Discovery v5 / Rendezvous spec --> To implement a Status client you need to discover peers to connect to. We use a
light discovery mechanism based on a combination of [Discovery
v5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md) and
[Rendezvous Protocol](https://github.com/libp2p/specs/tree/master/rendezvous),
(with some
[modifications](https://github.com/status-im/rendezvous#differences-with-original-rendezvous)).
Additionally, some static nodes MAY also be used.
This part of the system is currently underspecified and requires further detail.
<!-- TODO: This section is way too vague, amend with concrete spec for how to do discovery of Status nodes. -->
<!-- TODO: Add info on peer list, Discover v5 timespan, static nodes etc - should be enough to discover nodes from a different stack -->
### Mailservers ### Mailservers
@ -142,6 +153,16 @@ which is a prime target for Status clients.
This means the network is currently vulnerable to DDoS attacks. Alternative This means the network is currently vulnerable to DDoS attacks. Alternative
methods of spam protection are currently being researched. methods of spam protection are currently being researched.
#### Why do you not use Discovery v5 for node discovery?
At the time we implemented dynamic node discovery, Discovery v5 wasn't completed
yet. Additionally, running a DHT on a mobile leads to slow node discovery, bad
battery and poor bandwidth usage. Instead, each client can choose to turn on
Discovery v5 for a short period of time until their peer list is populated.
For some further investigation, see
[here](https://github.com/status-im/swarms/blob/master/ideas/092-disc-v5-research.md).
## Footnotes ## Footnotes
1. <https://github.com/status-im/status-protocol-go/> 1. <https://github.com/status-im/status-protocol-go/>