Waku Network Can Support 10K Users

  • achieved:
  • next:
  • risks:
    • Fleet Ownership doc defines fleet maintainer and owner. Status team yet to clarify who is the fleet owner for Status Communities.
    • QA by Status team to be planned on staging static sharding fleet; Waku team has done internal dogfooding (report). Any change to the staging static sharding fleet should then be tested by QA before being deployed to prod (e.g. # of Postgres instances). Status has committed to this testing on 28Nov call.
    • Status team expressed will to deploy static sharding prod fleet and use it for all users: This is not recommended until proper QA is done on stagning static sharding fleet as it could impact other Status app activities.
    • Implementation of static sharding in Status Communities and design decisions mostly driven by go-waku developer, with minimal input from Status dev (1, 2, 3). See status-go#4057 for remaining work. Mitigation by on-boarding Chat SDK team since November 2023 to drive effort.
    • Dependency on Vac/DST to conclude ~1k nodes simulations; lack of confidence in simulation results: results so far exhibits various artifacts and anomalies seemingly related to tooling limitations. It is therefore difficult to draw certain conclusions re Waku scalability.

Targeted dogfooding for Status Communities

  • achieved: fix issue of using default clusterID as 16 for shards fleet, dogfooding of status-desktop with shards fleet, debug issues in connection to fleet. See dogfooding report
  • next: continue dogfooding

Waku Network can Support 1 Million Users - 2023-11-30

  • next:
    • Pending DST simulations of 10k nodes gossipsub network.
  • risks:
    • Dependency on Vac/DST to run 10k nodes simulations. Tracked undervac:dst:eng-10ktool.
    • Wakutorsis tool is being dropped, meaning new tooling needs to be developed for 10k nodes simulations. It is currently uncertain whether such tool can be developed.
    • Large scale simulations done by Vac/DST only covered nwaku relay. go-waku, status-go simulations are not planned short term (theoretical review of Status Communities messages is), nor are simulations including request-response protocols such as store and filter.
    • lack of real world feedback/dogfooding: the complete static sharding solution involves significant changes to the Waku protocol and tech stack. Although each element is unit tested, dogfooding may hit corner cases in the integrated solution that cannot be foreseen/recreated in lab conditions.

Waku Network Gen 0 - 2023-12-01

  • achieved:
    • Internal dogfooding of proto-network continues.
    • js-waku work continues.
    • nwaku optimization around peer management are underway.
  • risks:
    • Usage of RLN in js-waku and dependency on a (centralized?) Web3Provider remains unclear as one needs to know the merkle tree state (on chain) to generate proofs.
    • We are progressively moving a nwaku engineer to a solution engineer role we need to backfill the role.
    • js-waku team is juggling between dev ex and gen 0 with only 2 engineers (3rd one just joined) so delivery in this client is likely to lag behind other clients.
    • Uncertainty as to how RLN membership mechanism would hinder application adoption, if memberships need to be distributed or obtained by registration, if staking is necessary to prevent abuse, etc. Tracked with #102

4.1: Basic front end for node operator

[nwaku] bug: access-control-allow-origin should be set to localhost

  • achieved: understood and applied initial fixes, tested, found bug and got it to work
  • next: add tests for changes in presto, raise PRs in both presto and nwaku

1.4: Sharded peer management and discovery

[nwaku] feat: Peer management with shard as a dimension

  • achieved: sharded peer management final version in review
  • next: review feedback

1.2: Autosharding for autoscaling

[nwaku] chore: allow fetching cached messages by content or pubsub topic

  • achieved: PR merged DONE!

[js-waku] feat: Autosharding API for req-resp protocols

  • achieved: config node for static/autosharding, test all protocols against autosharding RPC endpoints on nwaku
  • next: config application and version on node creation, only discover nodes of same shard

[js-waku] (https://github.com/waku-org/js-waku/issues/1500)

  • achieved: all protocols can be configured to use autosharding for determining pubsub topics
  • next: make autosharding the default behavior when running js-waku

Other Work

Enhancements

[go-waku] feat: use current timestamp when not provided in relay rest api

  • achieved: return error in relay API when message gossipsub threshold is crossed, fill messageTimestamp if RLN is enalbed and not set in WakuMessage, improve errors returned for filter unsubscribe APIs

Bugs

[nwaku] bug: incomplete data sent or received log appearing when WSS is enabled

  • achieved: reproduced it, did superficial checks but couldn’t get deep enough to find the root cause
  • next: continue investigating

[go-waku-compose] fix: automatic fetching of public ip not working

  • achieved: made go-waku-compose ready to run go-waku node to support the public waku network

Documentation

[go-waku] doc: best practice to handle disconnection when sending messages over relay

  • achieved: provided a short-term approach to address message send/receive issues during disconnections, intiated discussions in nimbus and vac channels to find out possible approaches being used in other protocols using gossipsub

Ecosystem Development

  • achieved:
    • Reviewed upcoming Waku press release
    • Created new bounties: 1, 2
    • Reviewed expectations for EthIndia and the Waku Network

Chat SDK

chat-sdk-tracking

  • achieved: Running custom built desktop with status-go, working on community store node
  • next: continue working on community store node
  • blocker: no so far

Project Management

  • achieved:
    • Open discussion around project management, milestones and expectations from Logos Program.
    • Ensure critical work for Status app is tracked and planned: 1, 2
    • Various hiring activies: BD, Growth lead and how to handle js-libp2p maintenance
    • Review Status plans around testing static sharding and ensure potential risks are understood.
    • Find a spot to host studies and simulation output as part of our commitment to build in the open and awarness of potential deplatforming: [1, Waku Discord]
    • Drafting updated PM tracking proposal
  • next:
    • Resume discussion around Nim usage and multiple clients in Waku: 1
    • Review 2023 achievements and start planning 2024 milestones.
    • Share proposal doc to Waku cc’s for review
    • 2024 Research milestone tracking

Basic Dev Rel Assets

  • achieved: Lead conversion process and community engagement process docs completed