2023-09-18 Waku weekly


Epics

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

  • achieved: Further specifications added for RLN. Merged and published first version of RFC
  • next: Define first launchable (sub)network for Devconnect.

Docs

Advanced docs for js-waku

  • achieved: added guide for local development with nwaku

Node operator doc - cloud and advanced options

  • achieved: added guide on advanced nwaku and WebSocket configurations
  • next: add guide for enabling node monitoring

Research

RLN Key Benchmarks {E:3.2: Basic DoS protection in production}

  • achieved: benchmark rln, see issue with report.

nwaku

feat: HTTP REST API: lightpush {E:REST API service node}

  • achieved:
  • next: LightPush REST endpoint will be implemented fully and put on PR review
  • blocking:

bug: wrong user_version in sqlite database that blocks the run of a Waku node {bug}

  • achieved: bug fix that prevented a Store nwaku to start if the SQLite db was created with versions [0.14.0 - 0.18.0]

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

  • achieved: many PR fixes,
  • blocker: explicit subscriptions in js-waku tests

chore(rln-relay): Requirements to consider RLN ready (non experimental) {E:3.1: DoS requirements and design}

  • achieved: waku rln is not an experimental feature anymore, and is part of nwaku code base. from now on experimental features are hidden behind a flag and not in different build

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

  • achieved: tested two different solutions: updating the port with an addressMapper, and not allowing the user to use port 0. Analyzed and discussed technical implications of both solutions. Initially followed decision to proceed with 2nd solution for now, with intention of implementing the first solution in the future.
    • Opened a draft PR and updated tests for the solution of not allowing the user to choose port 0.
  • next: after further feedback received today, we have to complete the discussion of how to move forward and either review and proceed with current PR, or plan and implement solution that updates all the data structures consistently across the node

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

  • achieved: Filter v1 & v2 REST API endpoints merged to master
  • next: LightPush REST endpoint

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

  • achieved: implemented solution that does DNS IP resolution during node bringup when no external IP is found but a DNS address is provided.
    • Validated and tested “happy paths” of the solution, raised draft PR and got feedback about the solution
  • next: discuss and define the system’s behavior on errors, implement error handling and adding tests for this feature.

js-waku

Maintenance {E:2023-qa}

  • achieved: added logs, investigated issues reported
  • next: approach reported issues, add preventative measures

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

  • achieved: got reviews on playwrights tests
  • next: maybe add bounty, check Karma testing

go-waku

feat: discovery & peer management for static shards {E:1.4: Sharded peer management and discovery}

  • achieved: Update WakuPeerStore to store pubSubTopics for a peer.
  • next: Sharded Peer Management considering static sharding for Status communities.

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

  • achieved: isReady verif in /health endpoint, make RLN available in service nodes and library usage by default, update docs and docker image, use zerokit 0.3.4, allow running service node with no RLN credentials
  • next: bandwidth validation, subcommand to list credentials

Maintenance {E:2023-qa}

  • achieved: CommonService for embedding lifecycle operation in lightpush,discv5,filter,peerConnector etc.
  • next: after discussion with richard prem, use create 2 different types of commonService. Change nameServer flag functionality in go-waku to nwaku. And work on newly created tasks.

Improve Test Coverage {test}

  • achieved: replace golint by revive, and add make lint-full target to run linting with many more rules enabled