2023-08-14 Waku weekly


Epics

Waku Network Can Support 10K Users {E:2023-10k-users}

All software has been delivered. Pending items are:


Eco Dev

Aug 2023 {E:2023-eco-growth}

  • achieved: web3conf talk, swags, 2 side events, twitter promotions, requested for marketing collateral to commshub
  • next: complete waku metrics, coordinate events with Lou, ethsafari planning, muchangmai planning
  • blocker: was blocked on infra for hosting nextjs app for waku metrics but migrating to SSR and hosting on vercel

Docs

Advanced docs for js-waku

  • next: document notes/recommendations for NodeJS, begin docs on js-waku encryption

nwaku

Release Process Improvements {E:2023-qa}

  • achieved: minor CI fixes and improvements
  • next: document how to run PR built images in waku-simulator, adding Linux arm64 binaries and images

PostgreSQL {E:2023-10k-users}

  • achieved: Learned that the insertion rate is constrained by the relay protocol. i.e. the maximum insert rate is limited by relay so I couldn’t push the “insert” operation to a limit from a Postgres point of view. For example, if 25 clients publish messages concurrently, and each client publishes 300 msgs, all the messages are correctly stored. If repeating the same operation but with 50 clients, then many messages are lost because the relay protocol doesn’t process all of them.
  • next: Carry on with stress testing. Analyze the performance differences between Postgres and SQLite regarding the read operations.

Autosharding v1 {E:2023-1mil-users}

  • achieved: many feedback/update cycles for FILTER, LIGHTPUSH, STORE & RFC
  • next: updating ENR for live subscriptions

HTTP REST API: Store, Filter, Lightpush, Admin and Private APIs {E:2023-many-platforms}

  • achieved: Legacy Filter - v1 - interface Rest Api support added.
  • next: Extend Rest Api interface for new v2 filter. Get v2 filter service supported from node. Add more tests.

js-waku

Maintenance {E:2023-qa}

  • achieved: upgrade libp2p & chainsafe deps to libp2p 0.46.3 while removing deprecated libp2p standalone interface packages (new breaking change libp2p w/ other deps), add tsdoc for referenced types, setting up/fixing prettier/eslint conflict

Developer Experience (2023) {E:2023-eco-growth}

Peer Exchange is supported and used by default {E:2023-light-protocols}

  • achieved: close the “fallback mechanism for peer rejections”, refactor peer-exchange compliance test
  • next: peer-exchange to be included with default discovery, action peer-exchange browser feedback

go-waku

Maintenance {E:2023-qa}

  • achieved: improved keep alive logic for identifying if machine is waking up; added vacuum feature to sqlite and postgresql; made migrations optional; refactored db and migration code, extracted code to generate node key to its own separate subcommand

C-Bindings Improvement: Callbacks and Duplications {E:2023-many-platforms}

  • achieved: PR for updating the RFC to use callbacks, and refactored the encoding functions

Improve Test Coverage {E:2023-qa}

  • achieved: Fixed issues reported by the data race detector tool.
  • next: identify areas where test coverage needs improvement.

RLN: Post-Testnet3 Improvements {E:2023-rln}

  • achieved: exposed merkle tree configuration, removed embedded resources from go-zerokit-rln, fixed nwaku / go-waku rlnKeystore compatibility, added merkle tree persistence and modified zerokit to print to stderr any error obtained while executing functions via FFI.
  • next: interop with nwaku

Introduce Peer Management {E:2023-peer-mgmt}

  • achieved: add service slots to peer manager.
  • next: implement relay connectivity loop, integrate gossipsub scoring for peer disconnections