-
Notifications
You must be signed in to change notification settings - Fork 1
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
[Deliverable] Status usage of Waku scaling and bandwidth optimization recommendation #197
Comments
The initial deliverable was meant to be an overall recommendation to then plan and tackle the work. Note that the initial deliverable output was defined as follows:
However, we believe there are improvements we can do know. I suggest to define new deliverables to track those improvements. Here is a new proposal for the bandwidth optimization and protocol review milestone, in order of priority: Milestone: bandwidth optimization and protocol reviewOnce completed, further specification and analyse of Status chat protocol will be available; as well as a recommendation on how Status Chat protocol should use Waku in a scalable and bandwidth efficient manner. Moreover, low hanging-fruits and temporary solutions to improve bandwidth consumption would have been implemented. Deliverable: Minimal Community Specification and Implementation
Finally, proceed with the implementation of (2). Deliverable: Telemetry reviewWith Minimal Community Specification and Implementation Using the output of Telemetry: Measure Bandwidth and Minimal Community Specification and Implementation (traffic separated by shards), analyse the distribution of traffic on relay and data in store. Providing a report in terms of Status Chat functionality. Deliverable: Minimal solution for greedy messagesBased on telemetry review, specify and implement a workaround solution (light push + store) that removes most data greedy functionality from the relay network. Deliverable: Define long-term solutionThe output of this deliverable is to compile a list of recommendations, for both Waku and Status Communities and chat protocols. This should include potential benefits of changes and enable scheduling the work between Status and Waku teams. The recommendation should be grounded in the output of the previous deliverables of this milestone. The recommendation is unlikely to encompass the entire chat protocol, and all status message types due to the amount of work it would entailed. Instead, an empirical approach should be taken where changes are prioritised based on the user impact, known limitations and functionalities (e.g. profile backup and device pairing usage of Waku), and telemetry metrics. This would impact any current usage of Waku by the Status app. Which does include communities, 1:1 chat but profile back and device pairing. This could include review of discv5 implementation in go-waku and nwaku if bandwidth usage is excessive. Deliverable: Review usage of content topics in Status Chat and Communities protocol(unchanged) The usage of content topics in Status is aligned with Wakuv1. Waku v2 comes with a new recommended format that enables auto-sharding. |
See https://roadmap.logos.co/waku/milestones/open/2024-bandwidth-optimization-and-protocol-review for new definition. |
Task breakdown
This deliverable aims to review the Status app protocol stack to improve how well it scales within a Waku context, specifically by optimising bandwidth usage.
The following initial steps are proposed:
Step 1: Minimal Community Specification and Implementation
Specify community procedures, including the encryption, reliability and functional scope of each. This forum post serves as starting point. A basic spec will allow us to move community control + content messages to separate shards, reintroduce protected shards, and extract Community functionality from the convoluted 1:1, user, open shards, etc. During this step, obvious or pending improvements (the "low-hanging fruits" for Communities) can be addressed in parallel.
Step 2: Minimal telemetry
With Community Control + Content on separate shards, telemetry will likely already give us useful information by just considering per-shard bandwidth. E.g. we may notice that the actual community traffic is just a small percentage of overall bandwidth usage, a clear indication that we need to disable/limit 1:1 and user features significantly.
Step 3: Minimal solution for user (self-addressed) messages
Specify and implement a workaround solution (lightpush + store) that removes self-addressed procedures (backup/sync) from the relay network.
Epics
The text was updated successfully, but these errors were encountered: