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

195 lines
5.6 KiB
Markdown
Raw Normal View History

2023-10-25 18:20:23 +00:00
---
title: 2023-10-03 Waku Weekly
tags:
- waku-updates
date: 2023-10-02
lastmod: 2023-10-05
draft: false
---
### waku-rust-bindings
**[feat: filterv2 support](https://github.com/waku-org/waku-rust-bindings/issues/71)** {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](https://github.com/waku-org/nwaku/issues/2075)**
- _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](https://github.com/waku-org/nwaku/issues/2051)** {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](https://github.com/waku-org/nwaku/issues/1941)** {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](https://github.com/waku-org/nwaku/issues/1888)** {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](https://github.com/waku-org/nwaku/issues/1885)** {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](https://github.com/waku-org/nwaku/issues/1576)** {enhancement}
- _achieved_: addressed feedback and merged
**[chore: improve test coverage on NetConfig generation](https://github.com/waku-org/nwaku/issues/1540)**
- _achieved_: developed the new NetConfig test suite, raised PR, received and implemented feedback and merged.
**[nwaku c-bindings (NodeJS + Python)](https://github.com/waku-org/nwaku/issues/1332)** {E:NodeJS Library}
- _achieved_:
- Added a simple cpp example to the main code. https://github.com/waku-org/nwaku/pull/2079.
- Submitted a PR where we start showing the doability of a Rust integration with the `libwaku`.
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](https://github.com/waku-org/js-waku/issues/1310)** {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](https://github.com/waku-org/go-waku/issues/788)** {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](https://github.com/waku-org/go-waku/issues/727)** {E:1.4: Sharded peer management and discovery}
- _achieved_: basic relay peer mgmt for static/auto sharding
**[feat: Service peer selection on specific shards](https://github.com/waku-org/go-waku/issues/680)** {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](https://github.com/waku-org/go-waku/issues/673)** {E:1.2: Autosharding for autoscaling}
- _achieved_: Updated lightpush API for autosharding
---
### EcoDev
[October 2023](https://github.com/waku-org/internal-waku-outreach/issues/109)
- ETHSafari bound and was mostly travelling last week