mirror of
https://github.com/vacp2p/rfc-index.git
synced 2026-01-07 23:04:09 -05:00
@@ -4,7 +4,8 @@ title: 33/WAKU2-DISCV5
|
|||||||
name: Waku v2 Discv5 Ambient Peer Discovery
|
name: Waku v2 Discv5 Ambient Peer Discovery
|
||||||
status: draft
|
status: draft
|
||||||
editor: Daniel Kaiser <danielkaiser@status.im>
|
editor: Daniel Kaiser <danielkaiser@status.im>
|
||||||
contributors:
|
contributors:
|
||||||
|
- Filip Dimitrijevic <filip@status.im>
|
||||||
---
|
---
|
||||||
|
|
||||||
## Abstract
|
## Abstract
|
||||||
@@ -12,7 +13,7 @@ contributors:
|
|||||||
`33/WAKU2-DISCV5` specifies a modified version of
|
`33/WAKU2-DISCV5` specifies a modified version of
|
||||||
[Ethereum's Node Discovery Protocol v5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
|
[Ethereum's Node Discovery Protocol v5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
|
||||||
as a means for ambient node discovery.
|
as a means for ambient node discovery.
|
||||||
[10/WAKU2](../10/waku2.md) uses the `33/WAKU2-DISCV5` ambient node discovery network
|
[10/WAKU2](/waku/standards/core/10/waku2.md) uses the `33/WAKU2-DISCV5` ambient node discovery network
|
||||||
for establishing a decentralized network of interconnected Waku2 nodes.
|
for establishing a decentralized network of interconnected Waku2 nodes.
|
||||||
In its current version,
|
In its current version,
|
||||||
the `33/WAKU2-DISCV5` discovery network
|
the `33/WAKU2-DISCV5` discovery network
|
||||||
@@ -24,7 +25,7 @@ compared to the total number of Ethereum nodes.
|
|||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
This version of `33/WAKU2-DISCV5` has a focus on timely deployment
|
This version of `33/WAKU2-DISCV5` has a focus on timely deployment
|
||||||
of an efficient discovery method for [10/WAKU2](../10/waku2.md).
|
of an efficient discovery method for [10/WAKU2](/waku/standards/core/10/waku2.md).
|
||||||
Establishing a separate discovery network is in line with this focus.
|
Establishing a separate discovery network is in line with this focus.
|
||||||
However, we are aware of potential resilience problems
|
However, we are aware of potential resilience problems
|
||||||
(see section on security considerations) and
|
(see section on security considerations) and
|
||||||
@@ -33,11 +34,11 @@ and researching hybrid approaches.
|
|||||||
|
|
||||||
## Background and Rationale
|
## Background and Rationale
|
||||||
|
|
||||||
[11/WAKU2-RELAY](../11/relay.md) assumes the existence of a network of Waku2 nodes.
|
[11/WAKU2-RELAY](/waku/standards/core/11/relay.md) assumes the existence of a network of Waku2 nodes.
|
||||||
For establishing and growing this network,
|
For establishing and growing this network,
|
||||||
new nodes trying to join the Waku2 network need a means of discovering nodes
|
new nodes trying to join the Waku2 network
|
||||||
within the network.
|
need a means of discovering nodes within the network.
|
||||||
[10/WAKU2](../10/waku2.md) supports the following discovery methods
|
[10/WAKU2](/waku/standards/core/10/waku2.md) supports the following discovery methods
|
||||||
in order of increasing decentralization
|
in order of increasing decentralization
|
||||||
|
|
||||||
* hard coded bootstrap nodes
|
* hard coded bootstrap nodes
|
||||||
@@ -45,7 +46,7 @@ in order of increasing decentralization
|
|||||||
* [`34/WAKU2-PEER-EXCHANGE`](/waku/standards/core/34/peer-exchange.md)
|
* [`34/WAKU2-PEER-EXCHANGE`](/waku/standards/core/34/peer-exchange.md)
|
||||||
* `33/WAKU2-DISCV5` (specified in this document)
|
* `33/WAKU2-DISCV5` (specified in this document)
|
||||||
|
|
||||||
The purpose of ambient node discovery within [10/WAKU2](../10/waku2.md)
|
The purpose of ambient node discovery within [10/WAKU2](/waku/standards/core/10/waku2.md)
|
||||||
is discovering Waku2 nodes in a decentralized way.
|
is discovering Waku2 nodes in a decentralized way.
|
||||||
The unique selling point of `33/WAKU2-DISCV5` is its holistic view of the network,
|
The unique selling point of `33/WAKU2-DISCV5` is its holistic view of the network,
|
||||||
which allows avoiding hotspots and allows merging the network after a split.
|
which allows avoiding hotspots and allows merging the network after a split.
|
||||||
@@ -62,7 +63,7 @@ during which the querying node was offline.
|
|||||||
|
|
||||||
`33/WAKU2-DISCV5` spans an overlay network separate from the
|
`33/WAKU2-DISCV5` spans an overlay network separate from the
|
||||||
[GossipSub](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/README.md)
|
[GossipSub](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/README.md)
|
||||||
network [11/WAKU2-RELAY](../11/relay.md) builds on.
|
network [11/WAKU2-RELAY](/waku/standards/core/11/relay.md) builds on.
|
||||||
Because it is a P2P network on its own, it also depends on bootstrap nodes.
|
Because it is a P2P network on its own, it also depends on bootstrap nodes.
|
||||||
Having a separate discovery network reduces load on the bootstrap nodes,
|
Having a separate discovery network reduces load on the bootstrap nodes,
|
||||||
because the actual work is done by randomly discovered nodes.
|
because the actual work is done by randomly discovered nodes.
|
||||||
@@ -204,9 +205,9 @@ raises research questions that we will address in future stages of our discv5 ro
|
|||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
1. [10/WAKU2](../10/waku2.md)
|
1. [10/WAKU2](/waku/standards/core/10/waku2.md)
|
||||||
2. [`34/WAKU2-PEER-EXCHANGE`](/waku/standards/core/34/peer-exchange.md)
|
2. [`34/WAKU2-PEER-EXCHANGE`](/waku/standards/core/34/peer-exchange.md)
|
||||||
3. [11/WAKU2-RELAY](../11/relay.md)
|
3. [11/WAKU2-RELAY](/waku/standards/core/11/relay.md)
|
||||||
4. [WAKU2-ENR](https://github.com/waku-org/specs/blob/master/standards/core/enr.md)
|
4. [WAKU2-ENR](https://github.com/waku-org/specs/blob/master/standards/core/enr.md)
|
||||||
5. [Node Discovery Protocol v5 (`discv5`)](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
|
5. [Node Discovery Protocol v5 (`discv5`)](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
|
||||||
6. [`discv5` semantics](https://github.com/ethereum/devp2p/blob/master/discv5/discv5-theory.md).
|
6. [`discv5` semantics](https://github.com/ethereum/devp2p/blob/master/discv5/discv5-theory.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user