--- title: 2024-02-19 Waku Weekly tags: - waku-updates date: 2024-02-19 draft: --- This update covers the two week span between February 5th -19th. ## [research](https://github.com/waku-org/research/) - *achieved:* - Created a C wrapper API for negentropy and moved it as a submodule into nwaku [https://github.com/waku-org/negentropy/pull/2](https://github.com/waku-org/negentropy/pull/2 "https://github.com/waku-org/negentropy/pull/2"), [https://github.com/waku-org/nwaku/pull/2448](https://github.com/waku-org/nwaku/pull/2448 "https://github.com/waku-org/nwaku/pull/2448") - Rerun nwaku latency measurements with latest nwaku release + new plots: [https://github.com/waku-org/research/pull/86](https://github.com/waku-org/research/pull/86 "https://github.com/waku-org/research/pull/86") - Draft for "practical use of rln in gossipsub" paper ready, peer review ongoing. - further work in PoC incentivization [https://github.com/waku-org/nwaku/pull/2419](https://github.com/waku-org/nwaku/pull/2419 "https://github.com/waku-org/nwaku/pull/2419") - onboarding and local ethereum chain tools research - Opened up the discussions of waku as a sovereign chain: [https://github.com/waku-org/research/issues/84](https://github.com/waku-org/research/issues/84 "https://github.com/waku-org/research/issues/84") - Waku latency simulations in a real environment: [https://github.com/waku-org/research/pull/85](https://github.com/waku-org/research/pull/85 "https://github.com/waku-org/research/pull/85") - Work on practical usage of rln in gossipsub paper: [https://github.com/waku-org/research/pull/82](https://github.com/waku-org/research/pull/82 "https://github.com/waku-org/research/pull/82") - Benchmarked rln in different platforms: [https://github.com/waku-org/nwaku/pull/2410](https://github.com/waku-org/nwaku/pull/2410 "https://github.com/waku-org/nwaku/pull/2410") - implemented the first version of a codec for incentivization PoC: [https://github.com/waku-org/nwaku/issues/1961](https://github.com/waku-org/nwaku/issues/1961 "https://github.com/waku-org/nwaku/issues/1961") - research post tidying, negentropy C++ bindings first draft, [https://github.com/waku-org/research/issues/80](https://github.com/waku-org/research/issues/80 "https://github.com/waku-org/research/issues/80") [https://github.com/waku-org/nwaku/pull/2403](https://github.com/waku-org/nwaku/pull/2403 "https://github.com/waku-org/nwaku/pull/2403") - refined new Store protocol design based on community input [https://github.com/waku-org/research/issues/81](https://github.com/waku-org/research/issues/81 "https://github.com/waku-org/research/issues/81") - *next:* - improve the C API and integrate into nwaku and test the integration - continue modifications in zk-kit library to allow onchain merkle proofs: [https://github.com/privacy-scaling-explorations/zk-kit/pull/162](https://github.com/privacy-scaling-explorations/zk-kit/pull/162 "https://github.com/privacy-scaling-explorations/zk-kit/pull/162") - PoC implementation and research papers - continued - deploy local ethereum chain for waku-simulator [https://github.com/waku-org/waku-simulator/issues/17](https://github.com/waku-org/waku-simulator/issues/17 "https://github.com/waku-org/waku-simulator/issues/17") - Resume work on onchain proofs, upstream bug fixed - Analyze data + report on latency simulations - gather feedback, continue PoC implementation; plan working on the academic conference submission (Waku poster) - negentropy C++ bindings continues - more reviewers and comments, gain consensus, start plan for PoC implementation [https://github.com/waku-org/research/issues/81](https://github.com/waku-org/research/issues/81 "https://github.com/waku-org/research/issues/81") ## [nwaku](https://github.com/waku-org/nwaku) - *achieved:* - Nwaku Sync protocol bindings improvements [https://github.com/waku-org/nwaku/issues/2426](https://github.com/waku-org/nwaku/issues/2426 "https://github.com/waku-org/nwaku/issues/2426") - Nwaku Store v3 first draft - found fixes for keystore generation error and for running nwaku-compose without keystore. Validated fixes, and merged both PRs. Closed issue [https://github.com/waku-org/nwaku-compose/issues/32](https://github.com/waku-org/nwaku-compose/issues/32 "https://github.com/waku-org/nwaku-compose/issues/32") - designed and started refactor [https://github.com/waku-org/nwaku/issues/2441](https://github.com/waku-org/nwaku/issues/2441 "https://github.com/waku-org/nwaku/issues/2441") - implemented fix, opened PR, improved the solution after feedback and merged [https://github.com/waku-org/nwaku/issues/2406](https://github.com/waku-org/nwaku/issues/2406 "https://github.com/waku-org/nwaku/issues/2406") - implemented feedback and merged [https://github.com/waku-org/nwaku/issues/2214](https://github.com/waku-org/nwaku/issues/2214 "https://github.com/waku-org/nwaku/issues/2214") - apply PoC to handle disk through partitions management [https://github.com/waku-org/nwaku/issues/1885](https://github.com/waku-org/nwaku/issues/1885 "https://github.com/waku-org/nwaku/issues/1885") - share knowledge on waku-nodejs-bindings [https://github.com/waku-org/nwaku/issues/2420](https://github.com/waku-org/nwaku/issues/2420 "https://github.com/waku-org/nwaku/issues/2420") - accept base64 payloads; make private key optional by generating a random one if not defined; simplified error handling. [https://github.com/waku-org/nwaku/issues/2420](https://github.com/waku-org/nwaku/issues/2420 "https://github.com/waku-org/nwaku/issues/2420") - publish and subscribe to waku messages using nwaku, fixed event callback setup. [https://github.com/waku-org/waku-rust-bindings/pull/87](https://github.com/waku-org/waku-rust-bindings/pull/87 "https://github.com/waku-org/waku-rust-bindings/pull/87") - Helped to define the C-bindings milestone [https://github.com/waku-org/pm/issues/121](https://github.com/waku-org/pm/issues/121 "https://github.com/waku-org/pm/issues/121") - simpler ctx mgmt. Param now receiving void* instead of void** [https://github.com/waku-org/nwaku/pull/2398](https://github.com/waku-org/nwaku/pull/2398 "https://github.com/waku-org/nwaku/pull/2398") - overview the partition approach [https://github.com/waku-org/nwaku/issues/1885](https://github.com/waku-org/nwaku/issues/1885 "https://github.com/waku-org/nwaku/issues/1885") - defined part of bindings milestone with emphases in go (for status-go) and rust [https://github.com/waku-org/pm/issues/121](https://github.com/waku-org/pm/issues/121 "https://github.com/waku-org/pm/issues/121") - started the integration of nwaku with waku-rust-bindings, compiling and doing FFI nwaku succesfully. [https://github.com/waku-org/pm/issues/121](https://github.com/waku-org/pm/issues/121 "https://github.com/waku-org/pm/issues/121") - added support to yamux https://github.com/waku-org/nwaku/issues/2331 - finished implementation, debugged and fixed failed tests, opened PR [https://github.com/waku-org/nwaku/issues/2214](https://github.com/waku-org/nwaku/issues/2214 "https://github.com/waku-org/nwaku/issues/2214") - implemented solution, opened PR, implemented feedback and merged [https://github.com/waku-org/nwaku/issues/2349](https://github.com/waku-org/nwaku/issues/2349 "https://github.com/waku-org/nwaku/issues/2349") - investigated, tried to reproduce. Found out that it got unintentionally fixed by a recent PR, closed issue [https://github.com/waku-org/nwaku/issues/2371](https://github.com/waku-org/nwaku/issues/2371 "https://github.com/waku-org/nwaku/issues/2371") - getting introduced to our C-bindings codebase [https://github.com/waku-org/pm/issues/121](https://github.com/waku-org/pm/issues/121 "https://github.com/waku-org/pm/issues/121") - PR is under review - covers LightPush and Store request rate limiting next: fix nim-chronos' TokenBucket wrong replenis. [https://github.com/waku-org/nwaku/issues/2032](https://github.com/waku-org/nwaku/issues/2032 "https://github.com/waku-org/nwaku/issues/2032") - RC release done, test has ran, changelog done [https://github.com/waku-org/nwaku/issues/2402](https://github.com/waku-org/nwaku/issues/2402 "https://github.com/waku-org/nwaku/issues/2402") - *next*: - continue with the refactor [https://github.com/waku-org/nwaku/issues/2441](https://github.com/waku-org/nwaku/issues/2441 "https://github.com/waku-org/nwaku/issues/2441") - archive update to fullfill Store v3 requirements [https://github.com/waku-org/nwaku/issues/2425](https://github.com/waku-org/nwaku/issues/2425 "https://github.com/waku-org/nwaku/issues/2425") - manual tests to ensure it works properly [https://github.com/waku-org/nwaku/issues/1885](https://github.com/waku-org/nwaku/issues/1885 "https://github.com/waku-org/nwaku/issues/1885") - expose additional bindings functions and add function to free alloc memory [https://github.com/waku-org/waku-rust-bindings/pull/87](https://github.com/waku-org/waku-rust-bindings/pull/87 "https://github.com/waku-org/waku-rust-bindings/pull/87") - Continue defining C-binding epics [https://github.com/waku-org/pm/issues/121](https://github.com/waku-org/pm/issues/121 "https://github.com/waku-org/pm/issues/121") - try the "partition table" implementation approach plus "partition truncate". [https://github.com/waku-org/nwaku/issues/1885](https://github.com/waku-org/nwaku/issues/1885 "https://github.com/waku-org/nwaku/issues/1885") - expose existing nwaku's bindings functions and test rust-bindings. Investigate packaging nwaku for mobile. [https://github.com/waku-org/waku-rust-bindings/pull/87](https://github.com/waku-org/waku-rust-bindings/pull/87 "https://github.com/waku-org/waku-rust-bindings/pull/87") - last mile of implementation (demo in terms uses Presto un-released feature) on refactor Waku RestService to utilize middleware approach and solve CORS headers issue. [https://github.com/waku-org/nwaku/issues/2223](https://github.com/waku-org/nwaku/issues/2223 "https://github.com/waku-org/nwaku/issues/2223") - *blocker*: - Postgres doesn't provide a native mechanism to limit the maximum stored size. If the partition+truncate approach doesn't work properly, we will dismiss the "size" retention policy and just keep the "capacity" and "time" for Postgres. [https://github.com/waku-org/nwaku/issues/1885](https://github.com/waku-org/nwaku/issues/1885 "https://github.com/waku-org/nwaku/issues/1885") ## [js-waku](https://github.com/waku-org/js-waku) - *achieved*: - implemented and merged `@waku/local-discovery` to store healthy connected peers in the local state, and use these peers to connect with when an application restarts [https://github.com/waku-org/js-waku/issues/1463](https://github.com/waku-org/js-waku/issues/1463 "https://github.com/waku-org/js-waku/issues/1463") - replaced all use of nwaku's deprecated JSON RPC API with REST API [https://github.com/waku-org/js-waku/issues/1826](https://github.com/waku-org/js-waku/issues/1826 "https://github.com/waku-org/js-waku/issues/1826") - added SDK functions for creating a node and subscription given a peer id and content topic [https://github.com/waku-org/js-waku/issues/1764](https://github.com/waku-org/js-waku/issues/1764 "https://github.com/waku-org/js-waku/issues/1764") - made improvements based on feedback and merged decoupling of sharding logic out of core protocol logic [https://github.com/waku-org/js-waku/issues/1808](https://github.com/waku-org/js-waku/issues/1808 "https://github.com/waku-org/js-waku/issues/1808") - finished SDK function for creating a subscription (with or without a node) using a content topic and peer id next: implement fixes/improvements from review [https://github.com/waku-org/js-waku/issues/1764](https://github.com/waku-org/js-waku/issues/1764 "https://github.com/waku-org/js-waku/issues/1764") - *next*: - cycling stored peers with new peers (discover new peers with peer-exchange) to increase decentralisation - orient protocol implementations to be strictly based on the RFCs [https://github.com/waku-org/pm/issues/114#issuecomment-1934535353](https://github.com/waku-org/pm/issues/114#issuecomment-1934535353 "https://github.com/waku-org/pm/issues/114#issuecomment-1934535353") - move `WakuNode` class to SDK with above functions as private class functions ## [go-waku](https://github.com/waku-org/go-waku) - *achieved*: - executed a version of bindings with updated dependencies in go-waku for a couple of days to confirm memory leak is gone. [https://github.com/waku-org/waku-rust-bindings/issues/86](https://github.com/waku-org/waku-rust-bindings/issues/86 "https://github.com/waku-org/waku-rust-bindings/issues/86") - arrive at approach and implement topic connection health reporting based on sharding [https://github.com/waku-org/go-waku/issues/1021](https://github.com/waku-org/go-waku/issues/1021 "https://github.com/waku-org/go-waku/issues/1021") - initial version of client side for storev3 [https://github.com/waku-org/go-waku/pull/1028](https://github.com/waku-org/go-waku/pull/1028 "https://github.com/waku-org/go-waku/pull/1028") - *next*: - release a new version of rust bindings ## chat-sdk - *achieved*: - draft the comparison doc about build client with REST API - attempting to merge: [https://github.com/status-im/status-go/pull/4532](https://github.com/status-im/status-go/pull/4532 "https://github.com/status-im/status-go/pull/4532") - creating test code for the selection of store nodes in communities: [https://github.com/status-im/status-go/issues/4357](https://github.com/status-im/status-go/issues/4357 "https://github.com/status-im/status-go/issues/4357") - *next: - continue work on the sending messages with cli - plan next permission-less community tasks ## eco-dev - *achieved:* - events page - presentation for ETHLATAM - working on metrics dashboard [https://github.com/waku-org/metrics.waku.org/issues/14](https://github.com/waku-org/metrics.waku.org/issues/14 "https://github.com/waku-org/metrics.waku.org/issues/14") - deployed the research section of the docs https://github.com/waku-org/docs.waku.org/issues/155 - added the new filter configurations per nwaku 0.25.0 release [https://github.com/waku-org/docs.waku.org/pull/158](https://github.com/waku-org/docs.waku.org/pull/158 "https://github.com/waku-org/docs.waku.org/pull/158") - Secret Network space - minor tweak to nwaku metrics [https://github.com/waku-org/nwaku/pull/2430](https://github.com/waku-org/nwaku/pull/2430 "https://github.com/waku-org/nwaku/pull/2430") - updated instructions, added ENV file configuration, recommended docker as the default way to run nodes [https://github.com/waku-org/docs.waku.org/issues/154](https://github.com/waku-org/docs.waku.org/issues/154 "https://github.com/waku-org/docs.waku.org/issues/154") - some repo org for waku metrics and restarted supabase [https://github.com/waku-org/metrics.waku.org/issues/6](https://github.com/waku-org/metrics.waku.org/issues/6 "https://github.com/waku-org/metrics.waku.org/issues/6") - workshop and prize descriptions handed over to ethlatam - composing cheatsheets for RLN membership and how to run a node - networkmonitor now supports RLN and thus can be deployed for The Waku Network [https://github.com/waku-org/nwaku/pull/2401](https://github.com/waku-org/nwaku/pull/2401 "https://github.com/waku-org/nwaku/pull/2401") - tested and provided a minor fix for py-waku, create new issues for cbindings based on this [https://github.com/waku-org/py-waku/pull/1](https://github.com/waku-org/py-waku/pull/1 "https://github.com/waku-org/py-waku/pull/1") - *next:* - complete metrics dashboard improvements, start drafting protocols comparison blog and send presentations to comms for review - finish up the FAQ section for the docs platform [https://github.com/waku-org/docs.waku.org/issues/152](https://github.com/waku-org/docs.waku.org/issues/152 "https://github.com/waku-org/docs.waku.org/issues/152") - deploy the new pages on the docs [https://github.com/waku-org/docs.waku.org/pull/166](https://github.com/waku-org/docs.waku.org/pull/166 "https://github.com/waku-org/docs.waku.org/pull/166") - review PR [https://github.com/waku-org/research/pull/83](https://github.com/waku-org/research/pull/83 "https://github.com/waku-org/research/pull/83") to add cspell to the research repo - some ui improvements in the metrics dashboard - community call agenda for february - ethlatam presentation - blog post : unbiased comparison of web3 communication protocols - deploy new version of NM, add new metrics to internal and public dashboards ## waku-status-integ - *achieved*: - investigate contact ack loss issue identified in mobile-CI after filter-manager PR [https://github.com/status-im/status-mobile/pull/18769](https://github.com/status-im/status-mobile/pull/18769 "https://github.com/status-im/status-mobile/pull/18769") - *next*: - support status integration in case message loss or Waku related issues