Skip to content
This repository has been archived by the owner on Aug 10, 2024. It is now read-only.

Commit

Permalink
minor adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
fryorcraken committed Nov 16, 2023
1 parent ec9e5dc commit 1fdbfa2
Showing 1 changed file with 31 additions and 29 deletions.
60 changes: 31 additions & 29 deletions posts/2023-11-20-the-waku.roadmap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ A comprehensive review of the Waku roadmap for H2 2023

To understand why Waku exists, you need only to consider the centralised internet. Technology giants can dictate what we see and with whom we can communicate. The centralised platforms we regularly use to communicate have privileged access to outlandish realms of personal data that powerful commercial and political institutions can leverage. In contrast, [Waku](https://waku.org/) empowers internet users to circumvent these actions, offering a decentralised, open-source suite of privacy-preserving, peer-to-peer messaging protocols. The protocols are designed to flourish in resource-restricted environments to be accessible to people across the globe and can run on phones, servers, or browsers. Waku can be used for general messaging with humans, machines, or a hybrid situation.

We apply [Waku Relay](https://hackmd.io/@vac/main/%2FYYlZYBCURFyO_ZG1EiteWg#11WAKU2-RELAY-gossipsub) on top of the gossip protocol [GossipSub](https://docs.libp2p.io/concepts/pubsub/overview/) from libp2p to route messages and information with a subset of connected peers, increasing security and privacy. A gossip protocol is a peer-to-peer protocol in which nodes periodically exchange information about themselves and other associated nodes. Currently, it is possible to use the Waku Network and join a public gossipsub network in a permissionless manner. Some projects using Waku that opt to do this include [Status Desktop and Mobile](https://status.im/), [Railgun](https://docs.railgun.org/wiki/learn/privacy-system/community-relayers), and [TheGraph](https://docs.graphops.xyz/graphcast/design-principles).
We apply [Waku Relay](https://hackmd.io/@vac/main/%2FYYlZYBCURFyO_ZG1EiteWg#11WAKU2-RELAY-gossipsub) on top of the gossip protocol [GossipSub](https://docs.libp2p.io/concepts/pubsub/overview/) from libp2p to route messages and information with a subset of connected peers, increasing security and privacy. A gossip protocol is a peer-to-peer protocol in which nodes periodically exchange information about themselves and other associated nodes. Currently, it is possible to use the Waku Network and join a public gossipsub network in a permissionless manner. Some projects using Waku that opt to do this include [Status Desktop and Mobile](https://status.app/), [Railgun](https://docs.railgun.org/wiki/learn/privacy-system/community-relayers), and [TheGraph](https://docs.graphops.xyz/graphcast/design-principles).


## Achievements in H1 2023

One of the critical limitations of Waku is its reliance on a single GossipSub network for all users, which necessitates that each user relay traffic for all applications. As the adoption of Waku continues to grow, the bandwidth consumption skyrockets. Users with limited bandwidth capabilities are marginalised and unable to participate fully in the Waku Relay network. The key focus of the Waku development team in the first half of this year was to resolve some of these limitations around scaling to support the Status app’s goal of serving one million users.

We met our milestone of providing a Waku network that can scale to approximately ten thousand active users within a [Status Community](https://status.im/), primarily thanks to implementing static sharding. Instead of having one relay network, we split the Waku Network into several relay (gossipsub) networks so that the application user is not required to relay all of the application’s traffic, but rather just the traffic on the same shard. [We have also developed opt-in message signing](https://blog.waku.org/scaling-waku-progress-update/) as another stopgap solution to match the Status app timeline and needs. The Community signs the messages with a single key belonging to the entire Community, presenting a securer solution than having individual signatures, but with space to enhance privacy nonetheless. This solution set, in addition to protocol and software improvements, should enable the Status team to launch the Status apps with reasonable bandwidth usage.
We met our milestone of providing a Waku network that can scale to approximately ten thousand active users within a [Status Community](https://status.app/), primarily thanks to implementing static sharding. Instead of having one relay network, we split the Waku Network into several relay (gossipsub) networks so that the end user is not required to relay the traffic of all applications, but rather just the traffic on the same shard. [We have also developed opt-in message signing](https://blog.waku.org/scaling-waku-progress-update/) as another stopgap solution to match the Status app timeline and needs. The Community signs the messages with a single key belonging to the entire Community, presenting a more private solution than having individual signatures. This solution set, in addition to protocol and software improvements, should enable the Status team to launch the Status apps with reasonable bandwidth usage.

The manual coordination of shard assignment with static sharding requires the actions of a central entity. While it is still permissionless, and anyone could run a node on any shard, the lack of coordination would deteriorate the user experience. Being able to scale Waku to support one million users on the Status app is dependent on our ability to improve on our H1 deliveries, which we will be stress testing and running through simulations.

The Waku team also deployed basic) protections. The Denial of Service (DoS) protections are very light and do not give any guarantees regarding bandwidth usage. Users running a node, such as Status Desktop, will not want it to hog their bandwidth. What was delivered in H1 has caveats in terms of permissionless and relative DOS protection. It is possible to build an application with either properties, but not both. You will find our approach to resolving this in the H2 roadmap below.
The Waku team also deployed basic protections. The Denial of Service (DoS) protections are very light and do not give any guarantees regarding bandwidth usage. Users running a node, such as Status Desktop, will not want it to hog their bandwidth. What was delivered in H1 has caveats in terms of permissionless and relative DOS protection. It is possible to build an application with either properties, but not both. You will find our approach to resolving this in the H2 roadmap below.

You can read more about all of the deliveries in H1 [here.](https://blog.waku.org/scaling-waku-progress-update/)

Expand Down Expand Up @@ -96,26 +96,27 @@ You can view the latest progress from the General Track [here](https://github.co
* **[1.1: Network requirements and design](https://github.com/waku-org/research/issues/6)**
* Goal: 22 Sep 2023
* Key Activities:
* Determine network specifications and design.
* Determine network specifications and design.
* **[1.2: Auto-sharding for autoscaling](https://github.com/waku-org/pm/issues/65)**
* Goal: 30 Sep 2023
* Key Activities:
* Design and implement auto-sharding strategy.
* Launch a limited number of shards.
* Design and implement auto-sharding strategy.
* Launch a limited number of shards.
* **[1.3: Node bandwidth management mechanism](https://github.com/waku-org/pm/issues/66)**
* Goal: 31 Oct 2023
* Key Activities:
* Implement bandwidth management to choose shards based on availability for relay nodes dynamically
* Design predictable bandwidth limits per shard
* Implement bandwidth management to choose shards based on availability for relay nodes dynamically
* Design predictable bandwidth limits per shard
* **[1.4: Peer management and discovery](https://github.com/waku-org/pm/issues/67)**
* Goal: 30 Nov 2023
* Design transparent interaction between applications and shards
* Peer management system to track and discover public shared peers
* Key Activities:
* Design transparent interaction between applications and shards
* Peer management system to track and discover public shared peers
* **[1.5: Launch and dogfood integrated public Waku Network MVP](https://github.com/waku-org/research/issues/1)**
* Goal: 31 Jan 2024
* Key Activities:
* Launch Waku Network MVP
* Gather feedback and improve
* Launch Waku Network MVP
* Gather feedback and improve


#### **Service Protocols**
Expand All @@ -128,20 +129,22 @@ You can view the latest progress from the Service Protocols Track [here](https:/

* **[2.1: Production testing of existing protocols](https://github.com/waku-org/pm/issues/49)**
* Goal: 30 Nov 2023
* Test and improve current service protocols: [filter](https://rfc.vac.dev/spec/12/), [lightpush](https://rfc.vac.dev/spec/19/), and [peer-exchange](https://rfc.vac.dev/spec/34/).
* Key Activities:
* Test and improve current service protocols: [filter](https://rfc.vac.dev/spec/12/), [lightpush](https://rfc.vac.dev/spec/19/), and [peer-exchange](https://rfc.vac.dev/spec/34/).
* **[2.2: Sharded capability discovery for light protocols](https://github.com/waku-org/pm/issues/63)**
* Goal: 30 Sep 2023
* Peer selection mechanism that translates content topics to their underlying shard
* Key Activities:
* Peer selection mechanism that translates content topics to their underlying shard
* **[2.3: Basic distributed store services](https://github.com/waku-org/pm/issues/64)**
* Goal: 30 Nov 2023 (integrate in 2024)
* Key Activities:
* Discover Store nodes for specific content topics and time ranges.
* Service nodes to advertise their store services
* **[2.4: Basic design for service ](https://github.com/waku-org/pm/issues/80)incentivisation**
* Discover Store nodes for specific content topics and time ranges.
* Service nodes to advertise their store services
* **[2.4: Basic design for service incentivisation](https://github.com/waku-org/pm/issues/80)**
* Goal: 31 Dec 2023
* Key Activities:
* Incentivize service provision of the Waku Network
* Tokenomics implementation
* Incentivize service provision of the Waku Network
* Tokenomics implementation


#### **DoS Protection**
Expand All @@ -157,23 +160,22 @@ You can view the latest progress from the DoS Protection Track [here](https://gi
* **[3.1: DoS requirements and design](https://github.com/waku-org/pm/issues/69)**
* Goal: 22 Sep 2023
* Key Activities:
* Define DoS/spam protection specifications.
* Design initial membership mechanisms.
* [Free and or paid traffic design](https://hackmd.io/@alrevuelta/rkqbPKaoo)
* Define DoS/spam protection specifications
* Design initial membership mechanisms
* [Free and or paid traffic design](https://hackmd.io/@alrevuelta/rkqbPKaoo)
* **[3.2: Basic DoS protection in production](https://github.com/waku-org/pm/issues/70)**
* Goal: 31 Oct 2023
* Key Activities:
* Implement and launch the RLN mechanism.
* Implement rate limiting
* Implement and launch the RLN mechanism
* Implement rate limiting
* **[3.3: Membership for Status Communities](https://github.com/waku-org/pm/issues/71)**
* Goal: 30 Nov 2023
* Key Activities:
* Design membership assignments for community members
*
* Design membership assignments for community members
* **[3.4: Further memberships](https://github.com/waku-org/pm/issues/72)**
* Goal: 31 Dec 2023
* Key Activities:
* Expanding memberships to third parties
* Expanding memberships to third parties


### Anticipated risks to delivering our H2 milestones
Expand All @@ -197,9 +199,9 @@ Bandwidth in peer-to-peer networks is a luxury that needs to be acutely observed

### Become a part of the Waku ecosystem

If you have questions about Waku’s development roadmap or want to join a like-minded community focused on bringing peer-to-peer communications to millions of users, join the Waku [Discord](https://discord.gg/GdJJh38sZR) or follow us on [X](https://twitter.com/Waku_org).
If you have questions about Waku’s development roadmap or want to join a like-minded community focused on bringing peer-to-peer communications to millions of users, join the Waku [Discord](https://discord.waku.org/) or follow us on [X](https://twitter.com/Waku_org).

If the technology speaks to you, [check out our open job positions](https://jobs.status.im/) or crack some of our [bounties](https://github.org/waku-org/bounties).
If the technology speaks to you, [check out our open job positions](https://https://status.app/jobs/) or crack some of our [bounties](https://github.org/waku-org/bounties).

You can also help to ensure that we stay decentralised by [running your own Waku Node!](https://docs.waku.org/guides/run-nwaku-node)

Expand Down

0 comments on commit 1fdbfa2

Please sign in to comment.