roadmap/content/waku/updates/2024-02-19.md

124 lines
17 KiB
Markdown
Raw Normal View History

2024-02-23 06:40:47 +00:00
---
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