mirror of https://github.com/vacp2p/rfc.git
30-ADAPTIVE-NODES: Improve with split images (#456)
* 30: Improve with split images * Link to from main Waku spec * Mark as draft and fix typo
This commit is contained in:
parent
83ab13ef40
commit
0688ab8fc3
|
@ -71,6 +71,9 @@ For example:
|
|||
- Providing useful services to the network vs mostly using it
|
||||
- Stronger guarantees for spam protection vs economic registration cost
|
||||
|
||||
For more on the concept of adaptive nodes and what this means in practice,
|
||||
please see the [30/ADAPTIVE-NODES](/spec/30) spec.
|
||||
|
||||
## Network interaction domains
|
||||
|
||||
While Waku is best thought of as a single cohesive thing, there are three network interaction domains:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
slug: 30
|
||||
title: 30/ADAPTIVE-NODES
|
||||
name: Adaptive nodes
|
||||
status: raw
|
||||
status: draft
|
||||
editor: Oskar Thorén <oskar@status.im>
|
||||
contributors:
|
||||
---
|
||||
|
@ -13,17 +13,53 @@ This is an informational spec that show cases the concept of adaptive nodes.
|
|||
|
||||
We can look at node types as a continuum, from more restricted to less restricted, fewer resources to more resources.
|
||||
|
||||
![Node types - a continuum](../../../../rfcs/30/adaptive_node_continuum.jpg)
|
||||
![Node types - a continuum](../../../../rfcs/30/adaptive_node_continuum2.jpg)
|
||||
|
||||
**TODO: Bring this out from image**
|
||||
## Possible limitations
|
||||
|
||||
- Connectivity: Not publicly connectable vs static IP and DNS
|
||||
- Connectivity: Mostly offline to mostly online to always online
|
||||
- Resources: Storage, CPU, Memory, Bandwidth
|
||||
|
||||
## Accessibility and motivation
|
||||
|
||||
Some examples:
|
||||
|
||||
- Opening broser window: costs nothing, but contribute nothing
|
||||
- Desktop: download, leave in background, contribute somewhat
|
||||
- Cluster: expensive, upkeep, but can contribute a lot
|
||||
|
||||
These are also illustrative, so a node in a browser in certain environment might contribute similarly to Desktop.
|
||||
|
||||
## Adaptive nodes
|
||||
|
||||
We call these nodes *adaptive nodes* to highlights different modes of contributing, such as:
|
||||
|
||||
- Only leeching from the network
|
||||
- Relaying messages for one or more topics
|
||||
- Providing services for lighter nodes such as lightpush and filter
|
||||
- Storing historical messages to various degrees
|
||||
- Ensuring relay network can't be spammed with RLN
|
||||
|
||||
## Planned incentives
|
||||
|
||||
Incentives to run a node is currently planned around:
|
||||
|
||||
- SWAP for accounting and settlement of services provided
|
||||
- RLN RELAY for spam protection
|
||||
- Other incentivization schemes are likely to follow and is an area of active research
|
||||
|
||||
# Node protocol selection
|
||||
|
||||
Each node can choose which protocols to support, depending on its resources and goals.
|
||||
|
||||
![Protocol selection](../../../../rfcs/30/adaptive_protocol_selection.jpg)
|
||||
![Protocol selection](../../../../rfcs/30/adaptive_protocol_selection2.jpg)
|
||||
|
||||
**TODO: Bring this out from image**
|
||||
In the case of protocols like 11/WAKU2-RELAY etc (12, 13, 19, 21) these correspond to Libp2p protocols.
|
||||
|
||||
However, other protocols like 16/WAKU2-RPC (local HTTP JSON-RPC), 25/LIBP2P-DNS-DISCOVERY, Discovery v5 (DevP2P) or interfacing with distributed storage, are running on different network stacks.
|
||||
|
||||
This is in addition to protocols that specify payloads, such as 14/WAKU2-MESSAGE, 26/WAKU2-PAYLOAD, or application specific ones. As well as specs that act more as recommendations, such as 23/WAKU2-TOPICS or 27/WAKU2-PEERS.
|
||||
|
||||
# Waku network visualization
|
||||
|
||||
|
@ -33,18 +69,29 @@ We can better visualize the network with some illustrative examples.
|
|||
|
||||
The first one shows an example topology with different PubSub topics for the relay protocol.
|
||||
|
||||
![Waku Network visualization](../../../../rfcs/30/adaptive_network_topology_protocols.jpg)
|
||||
![Waku Network visualization](../../../../rfcs/30/adaptive_network_topology_protocols2.jpg)
|
||||
|
||||
**TODO: Split image up more**
|
||||
**TODO: Bring text out from image**
|
||||
## Legend
|
||||
|
||||
![Waku Network visualization legend](../../../../rfcs/30/adaptive_network_topology_protocols_legend.jpg)
|
||||
|
||||
The dotted box shows what content topics (application-specific) a node is interested in.
|
||||
|
||||
A node that is purely providing a service to the network might not care.
|
||||
|
||||
In this example, we see support for toy chat, a topic in Waku v1 (Status chat), WalletConnect, and SuperRare community).
|
||||
|
||||
## Auxiliary network
|
||||
|
||||
This is a separate component with its own topology.
|
||||
|
||||
Behavior and interaction with other protocols specified in Vac RFCs, e.g. 25/LIBP2P-DNS-DISCOVERY, 15/WAKU-BRIDGE, etc.
|
||||
|
||||
## Node Cross Section
|
||||
|
||||
This one shows a cross-section of nodes in different dimensions and shows how the connections look different for different protocols.
|
||||
|
||||
![Node Cross Section](../../../../rfcs/30/adaptive_node_cross_section.jpg)
|
||||
|
||||
**TODO: Split image up more**
|
||||
![Node Cross Section](../../../../rfcs/30/adaptive_node_cross_section2.jpg)
|
||||
|
||||
# Copyright
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ bookMenuLevels: 1
|
|||
- [24/STATUS-CURATION]({{< relref "/docs/rfcs/24/README.md" >}})
|
||||
- [25/LIBP2P-DNS-DISCOVERY]({{< relref "/docs/rfcs/25/README.md" >}})
|
||||
- [28/STATUS-FEATURING]({{< relref "/docs/rfcs/28/README.md" >}})
|
||||
- [30/ADAPTIVE-NODES]({{< relref "/docs/rfcs/30/README.md" >}})
|
||||
- Draft
|
||||
- [1/COSS]({{< relref "/docs/rfcs/1/README.md" >}})
|
||||
- [3/REMOTE-LOG]({{< relref "/docs/rfcs/3/README.md" >}})
|
||||
|
@ -28,6 +27,7 @@ bookMenuLevels: 1
|
|||
- [26/WAKU2-PAYLOAD]({{< relref "/docs/rfcs/26/README.md" >}})
|
||||
- [27/WAKU2-PEERS]({{< relref "/docs/rfcs/27/README.md" >}})
|
||||
- [29/WAKU2-CONFIG]({{< relref "/docs/rfcs/29/README.md" >}})
|
||||
- [30/ADAPTIVE-NODES]({{< relref "/docs/rfcs/30/README.md" >}})
|
||||
- Stable
|
||||
- [2/MVDS]({{< relref "/docs/rfcs/2/README.md" >}})
|
||||
- [6/WAKU1]({{< relref "/docs/rfcs/6/README.md" >}})
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Loading…
Reference in New Issue