2023-09-11 Waku weekly

Research

1.1 Network requirements and task breakdown {E:1.1 Network requirements and task breakdown}

  • achieved: Opened first raw version of Waku Network RFC for review.
  • next: Address any feedback on the Waku Network RFC and complete under-defined sections.

Docs

Review Usage and Metrics 2023 Q3 {E:Define network and community metrics}

  • achieved: published the language/SDK poll on Discord
  • next: publish the poll on socials for more visibility and responses

Docs general improvement/incorporating feedback (2023)

  • next: refactor the layout of the docs to match the new designs

nwaku

feat(rest): Add /health endpoint to rest api {E:REST API service node}

feat: Autosharding API for (relay) subscriptions {E:1.2: Autosharding for autoscaling}

  • achieved: Refactored and simplified the core logic
  • next: More PR feedback

Release Process Improvements {E:Automated release processes}

  • achieved: execute js-waku tests from nwaku workflows against PRs, nightly and release candidates
  • next: adding Linux arm64 binaries and images

PostgreSQL {E:2.1: Production testing of existing protocols}, {E:PostgreSQL}

chore: do not advertise MAs with port 0 {bug}

  • next: analyze and fix issue

feat: HTTP REST API: Filter support v2 {E:REST API service node}

chore: update resolved enr ip when using dns4-domain-name flag {enhancement}

  • next: analyze and fix issue

bug: 0.0.0.0 included in listenAddrs of identify message {bug}

  • achieved: fixed bug, updated tests according to new fixes and raised PR

nwaku c-bindings (NodeJS + Python) {E:NodeJS Library}

HTTP REST API: Store, Filter, Lightpush, Admin and Private APIs {E:REST API service node}

  • achieved: Legacy Filter - v1 - interface Rest Api support added. V2 implementation done wait for PR review, /health rest api added to check (currently) RLN readiness
  • next: Last round of Filter v2 PR review with finalized re-worked push handler part.
  • blocking: /health endpoint come in and Filter v2 work was down prio till.

js-waku

Maintenance {E:2023-qa}

  • achieved: updated typescript + plugins to major versions, waiting to merge for release

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

  • achieved:
    • investigation of go-waku interop test that is failing - ongoing, fixing next release
    • protocols now use lowest latency peer instead of a random peer
  • next: root cause go-waku interop test failure, release next tag on master merge

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

  • achieved: Peer Exchange is now merged included in defaultBootstrap
  • next: followup on browser investigation and confirm if the EPIC can be safely closed

Cover Several Environments As Part of Testing {test}, {E:2023-qa}

  • achieved: browser testing is redone and opening for review
  • next: integrate with release process - rather quick follow up, revisit current epic

go-waku

RLN enabled by default {E:3.2: Basic DoS protection in production}

  • achieved:
    • ordered validator execution, upgrade zerokit, append rln proofs when posting msgs in rest/rpc, clean up nullifier table, automatically use key from keystore if only a single credential is available, validate credential using onchain query
    • rln membership registration logic refactoring and fixing bugs. Added test for membershipFetcher. Added code for mock_blockchain and mock_client to test membershipFetcher.
  • next: bandwidth validation, rln isReady verif in /health endpoint, subcommand to list credentials

Maintenance {E:2023-qa}

  • achieved:
    • fix panic observed in peer-manager, update filter protocol as per rfc.
    • add tls/ws to address factory and log ENRs only after they have been setup
    • refactoring and some bug fixes in peermanager and read rfcs and docs
  • next: increase test coverage and read more code.

Improve Test Coverage {test}

  • achieved: build examples as part of CI to capture compile errors