Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SeM(Milestone): Scaling Status App to 1 million users MVP #187

Closed
9 of 14 tasks
kaiserd opened this issue Feb 21, 2023 · 3 comments
Closed
9 of 14 tasks

SeM(Milestone): Scaling Status App to 1 million users MVP #187

kaiserd opened this issue Feb 21, 2023 · 3 comments
Assignees
Labels
milestone Milestone issue with a subset of issues within a specific track track:discovery Discovery track (Secure Messaging/Waku Product)

Comments

@kaiserd
Copy link
Contributor

kaiserd commented Feb 21, 2023

This milestone issue captures SeM tasks for the Status 1 million users MVP.
It stretches over several SeM tracks, among them Secure Scaling, Application Protocols, Discovery, and Data Sync.

This issue is related to the Waku 10k milestone.

Waku Relay Scaling Plan

The general task for SeM is to come up with a simple scaling strategy that allows scaling a Waku network to 1 million users.
The basis of our idea is sharding the Waku relay network, i.e. using several pubsub meshes instead of a single one.
To keep up with the tight timeline for this MVP, trade-offs to privacy&anonymity have to be made.

Our goal is achieving 10k users in a single shard and scaling the network to 1 million users using multiple shards.
In the context of this milestone, this limits the size of a single multicast group (and by extension the size of a single community) to 10k active users.

SeM work towards the MVP is split into tree main tasks

  1. scaling a single shard (pubsub mesh) to 10k users.
    Our simple model we developed as part of this scaling plan showed:
    current Waku relay should theoretically already be able to scale to 10k nodes per shard.
    Our main focus here is identifying practical issues as well as problems arising from the way Status currently uses Waku Relay.

  2. scaling the Waku network used by Status App to 1 million users (assuming we solved 1).
    Our focus here is coming up an easy-to-deploy approach that allows discovering nodes associated with a subset of a set of ~1000 shards.
    We need at least 100 shards for communities and another 100 shards for 1:1 chats.
    Here is the current version of our relay sharing RFC.
    For the Status 1 million users MVP, we will use the static sharding method specified in this RFC.
    Other work here comprises ways of mapping Status communities to shards.

  3. specifications for both Status protocols and scaling extensions for Waku protocols.

Regarding the store protocol, we pursue a simple approach for the MVP:
store nodes are federated and provided by the respective community; they cover each content topic within the respective community.
We can also add powerful infrastructure store nodes that cover all pubsub meshes relevant to the Status app.
The work on store towards the MVP is mainly driven by the Waku product team.

owner: @kaiserd

Waku Relay Scalability Analysis

  • (we might extend the model / analysis based on requirements)
  • add model case for community control messages
  • add model case for flood-publish (if significant)

owner: @kaiserd

Discovery

We are working on improvements and simplifications of the static sharding method.

owner: @kaiserd

DoS mitigation

owner: @alrevuelta

Communities

owner: @rymnc

1:1 chat

  • extract how Status 1:1 chat works as a basis for a specification (from code and asking CCs)
    • main work here is done modulo some clarifications and follow-ups
  • identify scaling problems

owner: @rymnc

Status App Protocols Mapping

owner: @rymnc, @kaiserd

RFCs

owner: @kaiserd, @rymnc, @alrevuelta

We plan to publish each of these RFCs (at least in raw status) by the end of Q1 2023.

CC @cammellos @felicio @fryorcraken @oskarth @corpetty @John-44

@kaiserd kaiserd added track:discovery Discovery track (Secure Messaging/Waku Product) milestone Milestone issue with a subset of issues within a specific track track:data-sync labels Feb 21, 2023
@kaiserd kaiserd self-assigned this Feb 21, 2023
@kaiserd kaiserd moved this to Now/In Progress in Secure Messaging (SeM) Feb 21, 2023
@rymnc
Copy link

rymnc commented May 15, 2023

Additional RFC to be included in this milestone (59/STATUS-URL-DATA) (PR) -

status-im/specs#159 (comment)

@felicio
Copy link

felicio commented May 15, 2023

Additional RFC to be included in this milestone (59/STATUS-URL-DATA) (PR) -

status-im/specs#159 (comment)

I consolidated the info for you. Feel free to push new commits and make changes as you see fit.

@kaiserd
Copy link
Contributor Author

kaiserd commented Nov 23, 2023

Most tasks in this issue have been completed.
The Waku Milestone: waku-org/pm#83 continues the effort.

The task add model case for community control messages for the Waku scaling analysis is tracked in: the Vac DST roadmap

@kaiserd kaiserd closed this as not planned Won't fix, can't repro, duplicate, stale Nov 23, 2023
@kaiserd kaiserd mentioned this issue Nov 23, 2023
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
milestone Milestone issue with a subset of issues within a specific track track:discovery Discovery track (Secure Messaging/Waku Product)
Projects
Status: Now/In Progress
Development

No branches or pull requests

4 participants