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}
- achieved: Feature /health endpoint added. PR merged: https://github.com/waku-org/nwaku/pull/2011
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}
- achieved:
- Created a
jmeter
test plan to stress Store queries through REST Store. As a conclusion, the node with Store Postgres showed worse performance than the one with SQLite. https://github.com/waku-org/test-waku-query/pull/5 - Added reconnection feature. If the connection with Postgres is lost, the
nwaku
node tries to reconnect again. https://github.com/waku-org/nwaku/pull/1997 - The
wakuv2.shards
fleet had been de-prioritized in favor of thestatus.shards
one. https://github.com/status-im/infra-nim-waku/issues/74#issuecomment-1710514544
- Created a
- next: Optimize database so that the Store requests behave better with Postgres.
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}
- achieved: PR tracking is https://github.com/waku-org/nwaku/pull/1890 Review is done, various fixes upon applied
- next: Last, agreed interface change to be done to complete.
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}
- achieved: improved the thread safeness communication. https://github.com/waku-org/nwaku/pull/1978
- next: Once the above PR is merged, avoid the use of global variables, to enhance the thread-safeness ( see https://github.com/waku-org/nwaku/pull/1865#discussion_r1282722954 )
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
- investigation of
- next: root cause
go-waku
interop test failure, releasenext
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