Waku Update

  • Currently the Waku team is focused on completing the remaining critical TWN Generation 0 Milestone Epics, the Status Integration, and various bug fixes and enhancements.
  • Waku’s development is divided among 5 teams: nwaku, go-waku, js-waku, chat-sdk, and ecosystem-development.
  • 2024 Milestones and Epics are currently being structured, kickoffs slated begin first week of February.
  • The go-waku and chat-sdk teams were at the Status integration Doha offsite January 13 - 21.

Waku Network Gen 0

Open Epics

January 22 Update

nwaku

TWN Connectivity Prepare release 0.24.0

  • achieved: big picture solutions for TWN connectivity problem , coordinate nwaku v0.24 release candidate
  • next: Nwaku v0.24.0 test and release, autosharding/cluster-id error handling, moar connectivity research

bug: restart loop of current master

  • achieved: investigated, found the root cause and solution. Afterwards, got requested a change in logging, implemented it and raised PR.
  • next: get confirmation that the change in logging meets Infra’s needs and get the PR reviewed and merged

feat: REST API - large messages does not seem to be rejected by relay auto api

  • achieved: developed and tested an initial working implementation
  • next: after talking to Franck, will implement it differently with a more generalized message verification logic

chore: improve POST /relay/v1/auto/messages/{topic} error handling

  • achieved: fix compilation errors, open PR, implement feedback and merge

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

  • achieved: investigated code, ran private images with logs on nim-libp2p and analyzed results. Talked to nim-libp2p team to further understand where the failure happens
  • next: investigate further with the new understanding after talking with nim-libp2p team

chore: review waku-simulator deployment and improve tracking processes

  • achieved: found that simulator’s nwaku image wasn’t getting updated with latest master. Requested Infra for the fix and verified afterwards that it’s working properly
  • next: talk with stakeholders to see what metrics/logs we should keep track of and how

bug: Filter doesn’t receive messages after subscribing and restarting

  • _achieved:_ investigated and fixed cause of failing test

chore: Refactor of FilterV2 subscription management with Time-to-live maintenance

  • achieved: Filter V2 subscription management reworked: new Time-to-live tracking, configurable limits of peers served and suvbscriptions per peer. Subscription per request is raised from 30 to 100 (hardcoded)

bug: access-control-allow-origin should be set to localhost

  • achieved: Alignment with Eugen (presto and chronos maintainer) is made upon the solution to be applied on presto rest server class.
  • next: Once new desing is ready and pushed to presto library, we can add the already prepared “allowed origin” matching mechanism that will enable proper CORS header in response to rest request.

feat: Enforce service specific rate limits

  • next: measurement of usage rates of store protocol to be added (also add to grafana dashboard), add configurable limits (query per sec/min)

js-waku

chore: upgrade lip2p feat: set cluster ID as optional when specifying shard info feat: Peer management with shard as a dimension

  • achieved:
    • upgrade libp2p to 1.X
    • improved how params are handled between consumer-facing and internal functions
    • fix failing tests for autosharding peer mgmt

allow user to pass content topic to createSubscription feat: sdk function to setup autosharding node with application and version feat: determine bootstrap behavior based on sharding type

  • next:
    • allow creating subscriptions with just content topics
    • setup node with just application and version
    • determine boostrap behavior based on sharding type

Decouple sharding logic from internal classes to SDK

  • blockers:
    • need review of issue for decoupling sharding logic

feat: simplify rln-js feat: simplify API of bootstrapping, connection to MetaMask chore: investigate interop test failures chore: fix go-waku interop tests

  • achieved:
    • Simplified rln-js
    • Step 1 to improve API
    • interop tests with nwaku
    • identified problems with go-waku

User Pays Own RLN Membership

  • next:
    • new cred registration example (based on prev examples)
    • continue with improvements
    • action if needed to improve testability with go-waku
    • some bugs found in rln

feat!: protocols filter peers per shard feat: SDK for redundant usage of filter/lightpush

  • achieved:
    • merged: sharded peer management
    • merged: redundant peers for lightpush & filter

feat: local storage as a discovery layer feat: SDK for redundant usage of filter/lightpush

go-waku

bug: filter delay errors

  • achieved:

    • investigated and identified the root-cause of bug: filter delay errors and provided a solution
    • started documenting tips/approach to help message loss debug issues for status QA both from status-go and waku perspective Debugging
  • next:

    • investigate and identify root-cause of message loss while using relay ⁠Unable to Receive msgs while us…
    • finish documenting message loss debugging

bug: filter delay errors Contact requests are not received without restart

  • achieved:

    • investigation with Jakub and Igor to find out the reason why store request were taking a long time to be retrievedsage reliability issues were present on CI for filter.
    • investigate and fix Contact requests are not received without restart (some commits were missing in desktop master branch.
    • Status x Waku war room at Doha
  • next:

    • fix issues reported in ⁠status

eco-dev

[BOUNTY] Build dApp of Your Choice Using Waku (Decentralized Communication) and Vue.js

  • achieved:
    • thorough review and feedback
  • next:
    • final review and approval

add content topic buckets consideration

[Epic] Encryption documentation

  • next:

    • creating an initial draft for Noise docs, go-waku docs migration
  • achieved :

    • completed and recorded videos with 2 teams for builder spotlight, positioning call is completed, revised the cheatsheet based on ethindia feedback
  • next :

    • get the videos reviewed