roadmap/content/waku/updates/2023-10-02.md

5.6 KiB

title tags date lastmod draft
2023-10-03 Waku Weekly
waku-updates
2023-10-02 2023-10-05 false

waku-rust-bindings

feat: filterv2 support {E:RLN non-native SDKs}

  • achieved: added support for unsubscribe, ping and unsubscribe_all filterv2 functions of go-waku c-bindings

  • next: add support to subscribe


nwaku

feat: Implement /admin Rest Api endpoint

  • achieved:

  • next: /admin rest endpoint feature is on PR review will be merged next week. Restructure openapi descriptions and producing swagger ui like live document of all rest interfaces.

  • blocking: There are two build issues. libwaku cannot build on Fedora (RedHat) distros. Second, Abhi reported a build issue with wakunode2 - nim compiler crash under some circumstances.

feat: RLN support for Nwaku-Compose {E:3.2: Basic DoS protection in production}

  • achieved: finished addressing feedback

  • next: task is blocked until there's an easier method for users to register RLN credentials

feat: Service peer selection on specific shards {E:1.4: Sharded peer management and discovery}

  • achieved: newly refactored STORE REST API handler that trigger discv5 peer search when needed.

  • next: refactor other APIs

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

  • achieved:

  • Better dburl parse that accepts host names with dashes and dots.

  • Properly set the compilation flag -d:postgres so Docker images are compiled with support to Postgres (with libpq5 dependency.)

  • During the stress testing, I discovered that the max throughput seems not to be directly related to Postgres. If I make the code to ignore Postgres and return immediately a mocked response, then the throughput is even lower.

  • next: Carry on with "select" performance analysis and analyze it directly from a Store client, rather than having REST <-> Store_Client <-> Store_Server. By ignoring the REST layer we will have a better insight into the actual Store protocol, as @jm-clius recommended to me some time ago.

chore: add retention policy with GB or MB limitation {enhancement}, {E:PostgreSQL}

Added the new retention policy based on DB size.

Users can provide the size such as <size_number><case_insenstive_gb_or_mb> ex. 30gb (which is also the default)

--store-message-retention-policy=size:25GB

--store-message-retention-policy=size:25gb

--store-message-retention-policy=size:250MB

--store-message-retention-policy=size:250mb

Test case also added.

Outdated messages/rows are deleted to suffice the size limit, with 20% size reduction upon overflowing.

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

  • achieved: addressed feedback and merged

chore: improve test coverage on NetConfig generation

  • achieved: developed the new NetConfig test suite, raised PR, received and implemented feedback and merged.

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

This PR is currently introducing the thread-safety enhancement of avoiding using global variables. Ideally, this should be in a separate PR. https://github.com/waku-org/nwaku/pull/2089.

Notice that it was important to invest time in the Rust example so that we can carry on with the "callback" technique to exchange information between the host code (any) and the foreign code (Nim.)

  • next: Separate the PR mentioned above and submit another one which only avoids using global variables but doesn't add the wip-Rust integration.

js-waku

Static Sharding {E:Static sharding}

  • achieved: allowing for multiple pubsub topics to be configured & refactoring protocols to support

  • next: enabling peer management to only dial relevant shards


go-waku

refactor: add user_data to c-bindings {E:RLN non-native SDKs}

  • achieved: updated all the functions to include an additional void* user_data parameter

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

  • achieved: basic relay peer mgmt for static/auto sharding

feat: Service peer selection on specific shards {E:1.4: Sharded peer management and discovery}

  • achieved: Peer selection updated to be based on pubsubTopic or contentTopic

  • next: Update lightClient API to consider new peerSelection options

feat: Autosharding API for req-resp protocols {E:1.2: Autosharding for autoscaling}

  • achieved: Updated lightpush API for autosharding

EcoDev

October 2023

  • ETHSafari bound and was mostly travelling last week