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
  • achieved: fix pubsub topic used for store queries, logic for finding free port when initializing torrent service, add back changes related to default shard that were reverted before, store clusterID in app database, refactor mailserver cycle to not require having an active connection to a store node
  • next: 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 under vac: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

  • achieved: follow ups and reduction of FE image;
  • next: double check with cors solved, minor improvements and fixes

1.5: Launch and dogfood integrated public Waku Network MVP

  • achieved: come up with go-waku-compose to run a go-waku node in order to dogfood the public waku network
  • next: fix issues in go-waku-compose to support secure websockets and auto-fetch public IP

1.4: Sharded peer management and discovery

[nwaku] chore: add sharding information to peer storage

  • achieved: merged and closed

[nwaku] chore: add sharding information to peer storage

  • achieved: updated peer storage to include ENR
  • next: review feedback cycle

[js-waku] feat: Deprecate Named Sharding and Update Lightpush Client API

  • achieved: PR ready and currently in review-iteration phase ( #1697 )
  • next: to be merged

[js-waku] feat: add new metadata protocol

  • next: unblock this issue by merging #1697

1.2: Autosharding for autoscaling

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

  • achieved: PR merged DONE!

2.1: Production testing of existing protocols

[nwaku] feat: Migrate deployments to PostgreSQL

  • achieved: Preparing environment to stress one single database with multiple Postgres clients writing and reading simultaneously.
  • next: Extend Postgres benchmarking report from previous results and start analyzing the performance of status.test fleet where three nodes will use one single database.

Presentation Readiness

[js-waku] feat: filter subscription API

  • achieved: PR opened and currently under review-iteration phase ( #1725 )
  • next: merge PR

Other Work

Enhancements

[nwaku] chore(REST): adding to /admin/v1/peers response lightpush and filter v2 peer info

  • achieved: merged PR and closed issue

[js-noise] feat: allow parameterization of handshakes

  • achieved: implemented parameterization of DH, Cypher and Hash

Bugs

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

  • achieved: attempted reproducing, haven’t gotten it to happen yet
  • next: succeed reproducing and fix

[nwaku] bug: relay publish fails with 400 Bad Request when message contains meta field

  • achieved: analyzed issue and started implementing fixes
  • next: continue implementing the solution

[nwaku] bug: relay push with malformed timestamp crashes nwaku

  • achieved: analyzed issue, found and implemented fix, raised PR in nim-json-serialization repo and implemented feedback. Merged fix and opened a PR in nwaku updating the dependency.
  • next: get nwaku PR reviewed y merge

[go-waku] bug: duplicate validator for topic error when trying to re-subscribe to previously unsubscribed topic

  • achieved: fix relay subscribe API issue causing failure in resubscription to a pubsubtopic, return appropriate errors in relay REST API

Documentation

[docs.waku.org] Advanced docs for js-waku

  • achieved: published manage filter guide, finished react docs
  • next: ECIES and symmetric encryption/decryption

[docs.waku.org] Docs general improvement/incorporating feedback (2023)

  • achieved: added light mode toggle, updated the logos preset, added TWN guide, updated docs design and structure

Ecosystem Development

  • achieved:

    • Documentation refactor based on feedback
    • Preparing react hooks for release
    • EthIndia organizing
    • Waku hackerhouse organizing
    • ETHIstanbul winner tweets
  • next:

    • Announce react hooks
    • Waku hackerhouse