<html><head><title>2024-02-19 Waku Weekly</title><metacharSet="utf-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><metaproperty="og:title"content="2024-02-19 Waku Weekly"/><metaproperty="og:description"content="This update covers the two week span between February 5th -19th. research § achieved: Created a C wrapper API for negentropy and moved it as a submodule into nwaku https://github."/><metaproperty="og:image"content="https://roadmap.logos.co/static/og-image.png"/><metaproperty="og:width"content="1200"/><metaproperty="og:height"content="675"/><linkrel="icon"href="../../static/icon.png"/><metaname="description"content="This update covers the two week span between February 5th -19th. research § achieved: Created a C wrapper API for negentropy and moved it as a submodule into nwaku https://github."/><metaname="generator"content="Quartz"/><linkrel="preconnect"href="https://fonts.googleapis.com"/><linkrel="preconnect"href="https://fonts.gstatic.com"/><linkhref="../../index.css"rel="stylesheet"type="text/css"spa-preserve/><linkhref="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css"rel="stylesheet"type="text/css"spa-preserve/><linkhref="https://fonts.googleapis.com/css2?family=IBM Plex Mono&family=sans-serif:wght@400;700&family=sans-serif:ital,wght@0,400;0,600;1,400;1,600&display=swap"rel="stylesheet"type="text/css"spa-preserve/><scriptsrc="../../prescript.js"type="application/javascript"spa-preserve></script><scripttype="application/javascript"spa-preserve>constfetchData=fetch(`../../static/contentIndex.json`).then(data=>data.json())</script></head><bodydata-slug="waku/updates/2024-02-19"><divid="quartz-root"class="page"><divid="quartz-body"><divclass="left sidebar"><h1class="page-title "><ahref="../..">Logos Collective Project Roadmaps</a></h1><divclass="spacer mobile-only"></div><divclass="search "><divid="search-icon"><p>Search</p><div></div><svgtabIndex="0"aria-labelledby="title desc"role="img"xmlns="http://www.w3.org/2000/svg"viewBox="0 0 19.9 19.7"><titleid="title">Search</title><descid="desc">Search</desc><gclass="search-path"fill="none"><pathstroke-linecap="square"d="M18.5 18.3l-5.4-5.4"></path><circlecx="8"cy="8"r="7"></circle></g></svg></div><divid="search-container"><divid="search-space"><inputautocomplete="off"id="search-bar"name="search"type="text"aria-label="Search for something"placeholder="Search for something"/><divid="results-container"></div></div></div></div><divclass="darkmode "><inputclass="toggle"id="darkmode-toggle"type="checkbox"tabIndex="-1"/><labelid="toggle-label-light"for="darkmode-toggle"tabIndex="-1"><svgxmlns="http://www.w3.org/2000/svg"xmlnsXlink="http://www.w3.org/1999/xlink"version="1.1"id="dayIcon"x="0px"y="0px"viewBox="0 0 35 35"style="enable-background:new 0 0 35 35;"xmlSpace="preserve"><title>Light mode</title><pathd="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5zM7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26zM17.5,6C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6zM27.5,9c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9zM6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06L6.439,8.561zM33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16zM28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439zM17.5,29
<li>Created a C wrapper API for negentropy and moved it as a submodule into nwaku <ahref="https://github.com/waku-org/negentropy/pull/2"title="https://github.com/waku-org/negentropy/pull/2"class="external">https://github.com/waku-org/negentropy/pull/2</a>, <ahref="https://github.com/waku-org/nwaku/pull/2448"title="https://github.com/waku-org/nwaku/pull/2448"class="external">https://github.com/waku-org/nwaku/pull/2448</a></li>
<li>Rerun nwaku latency measurements with latest nwaku release + new plots: <ahref="https://github.com/waku-org/research/pull/86"title="https://github.com/waku-org/research/pull/86"class="external">https://github.com/waku-org/research/pull/86</a></li>
<li>Draft for “practical use of rln in gossipsub” paper ready, peer review ongoing.</li>
<li>further work in PoC incentivization <ahref="https://github.com/waku-org/nwaku/pull/2419"title="https://github.com/waku-org/nwaku/pull/2419"class="external">https://github.com/waku-org/nwaku/pull/2419</a></li>
<li>onboarding and local ethereum chain tools research</li>
<li>Opened up the discussions of waku as a sovereign chain: <ahref="https://github.com/waku-org/research/issues/84"title="https://github.com/waku-org/research/issues/84"class="external">https://github.com/waku-org/research/issues/84</a></li>
<li>Waku latency simulations in a real environment: <ahref="https://github.com/waku-org/research/pull/85"title="https://github.com/waku-org/research/pull/85"class="external">https://github.com/waku-org/research/pull/85</a></li>
<li>Work on practical usage of rln in gossipsub paper: <ahref="https://github.com/waku-org/research/pull/82"title="https://github.com/waku-org/research/pull/82"class="external">https://github.com/waku-org/research/pull/82</a></li>
<li>Benchmarked rln in different platforms: <ahref="https://github.com/waku-org/nwaku/pull/2410"title="https://github.com/waku-org/nwaku/pull/2410"class="external">https://github.com/waku-org/nwaku/pull/2410</a></li>
<li>implemented the first version of a codec for incentivization PoC: <ahref="https://github.com/waku-org/nwaku/issues/1961"title="https://github.com/waku-org/nwaku/issues/1961"class="external">https://github.com/waku-org/nwaku/issues/1961</a></li>
<li>research post tidying, negentropy C++ bindings first draft, <ahref="https://github.com/waku-org/research/issues/80"title="https://github.com/waku-org/research/issues/80"class="external">https://github.com/waku-org/research/issues/80</a><ahref="https://github.com/waku-org/nwaku/pull/2403"title="https://github.com/waku-org/nwaku/pull/2403"class="external">https://github.com/waku-org/nwaku/pull/2403</a></li>
<li>refined new Store protocol design based on community input <ahref="https://github.com/waku-org/research/issues/81"title="https://github.com/waku-org/research/issues/81"class="external">https://github.com/waku-org/research/issues/81</a></li>
</ul>
</li>
<li><em>next:</em>
<ul>
<li>improve the C API and integrate into nwaku and test the integration</li>
<li>continue modifications in zk-kit library to allow onchain merkle proofs: <ahref="https://github.com/privacy-scaling-explorations/zk-kit/pull/162"title="https://github.com/privacy-scaling-explorations/zk-kit/pull/162"class="external">https://github.com/privacy-scaling-explorations/zk-kit/pull/162</a></li>
<li>PoC implementation and research papers - continued</li>
<li>deploy local ethereum chain for waku-simulator <ahref="https://github.com/waku-org/waku-simulator/issues/17"title="https://github.com/waku-org/waku-simulator/issues/17"class="external">https://github.com/waku-org/waku-simulator/issues/17</a></li>
<li>Resume work on onchain proofs, upstream bug fixed</li>
<li>Analyze data + report on latency simulations</li>
<li>gather feedback, continue PoC implementation; plan working on the academic conference submission (Waku poster)</li>
<li>negentropy C++ bindings continues</li>
<li>more reviewers and comments, gain consensus, start plan for PoC implementation <ahref="https://github.com/waku-org/research/issues/81"title="https://github.com/waku-org/research/issues/81"class="external">https://github.com/waku-org/research/issues/81</a></li>
<li>found fixes for keystore generation error and for running nwaku-compose without keystore. Validated fixes, and merged both PRs. Closed issue <ahref="https://github.com/waku-org/nwaku-compose/issues/32"title="https://github.com/waku-org/nwaku-compose/issues/32"class="external">https://github.com/waku-org/nwaku-compose/issues/32</a></li>
<li>designed and started refactor <ahref="https://github.com/waku-org/nwaku/issues/2441"title="https://github.com/waku-org/nwaku/issues/2441"class="external">https://github.com/waku-org/nwaku/issues/2441</a></li>
<li>implemented fix, opened PR, improved the solution after feedback and merged <ahref="https://github.com/waku-org/nwaku/issues/2406"title="https://github.com/waku-org/nwaku/issues/2406"class="external">https://github.com/waku-org/nwaku/issues/2406</a></li>
<li>implemented feedback and merged <ahref="https://github.com/waku-org/nwaku/issues/2214"title="https://github.com/waku-org/nwaku/issues/2214"class="external">https://github.com/waku-org/nwaku/issues/2214</a></li>
<li>apply PoC to handle disk through partitions management <ahref="https://github.com/waku-org/nwaku/issues/1885"title="https://github.com/waku-org/nwaku/issues/1885"class="external">https://github.com/waku-org/nwaku/issues/1885</a></li>
<li>share knowledge on waku-nodejs-bindings <ahref="https://github.com/waku-org/nwaku/issues/2420"title="https://github.com/waku-org/nwaku/issues/2420"class="external">https://github.com/waku-org/nwaku/issues/2420</a></li>
<li>accept base64 payloads; make private key optional by generating a random one if not defined; simplified error handling. <ahref="https://github.com/waku-org/nwaku/issues/2420"title="https://github.com/waku-org/nwaku/issues/2420"class="external">https://github.com/waku-org/nwaku/issues/2420</a></li>
<li>publish and subscribe to waku messages using nwaku, fixed event callback setup. <ahref="https://github.com/waku-org/waku-rust-bindings/pull/87"title="https://github.com/waku-org/waku-rust-bindings/pull/87"class="external">https://github.com/waku-org/waku-rust-bindings/pull/87</a></li>
<li>Helped to define the C-bindings milestone <ahref="https://github.com/waku-org/pm/issues/121"title="https://github.com/waku-org/pm/issues/121"class="external">https://github.com/waku-org/pm/issues/121</a></li>
<li>simpler ctx mgmt. Param now receiving void* instead of void** <ahref="https://github.com/waku-org/nwaku/pull/2398"title="https://github.com/waku-org/nwaku/pull/2398"class="external">https://github.com/waku-org/nwaku/pull/2398</a></li>
<li>overview the partition approach <ahref="https://github.com/waku-org/nwaku/issues/1885"title="https://github.com/waku-org/nwaku/issues/1885"class="external">https://github.com/waku-org/nwaku/issues/1885</a></li>
<li>defined part of bindings milestone with emphases in go (for status-go) and rust <ahref="https://github.com/waku-org/pm/issues/121"title="https://github.com/waku-org/pm/issues/121"class="external">https://github.com/waku-org/pm/issues/121</a></li>
<li>started the integration of nwaku with waku-rust-bindings, compiling and doing FFI nwaku succesfully. <ahref="https://github.com/waku-org/pm/issues/121"title="https://github.com/waku-org/pm/issues/121"class="external">https://github.com/waku-org/pm/issues/121</a></li>
<li>added support to yamux <ahref="https://github.com/waku-org/nwaku/issues/2331"class="external">https://github.com/waku-org/nwaku/issues/2331</a></li>
<li>finished implementation, debugged and fixed failed tests, opened PR <ahref="https://github.com/waku-org/nwaku/issues/2214"title="https://github.com/waku-org/nwaku/issues/2214"class="external">https://github.com/waku-org/nwaku/issues/2214</a></li>
<li>implemented solution, opened PR, implemented feedback and merged <ahref="https://github.com/waku-org/nwaku/issues/2349"title="https://github.com/waku-org/nwaku/issues/2349"class="external">https://github.com/waku-org/nwaku/issues/2349</a></li>
<li>investigated, tried to reproduce. Found out that it got unintentionally fixed by a recent PR, closed issue <ahref="https://github.com/waku-org/nwaku/issues/2371"title="https://github.com/waku-org/nwaku/issues/2371"class="external">https://github.com/waku-org/nwaku/issues/2371</a></li>
<li>getting introduced to our C-bindings codebase <ahref="https://github.com/waku-org/pm/issues/121"title="https://github.com/waku-org/pm/issues/121"class="external">https://github.com/waku-org/pm/issues/121</a></li>
<li>PR is under review - covers LightPush and Store request rate limiting next: fix nim-chronos’ TokenBucket wrong replenis. <ahref="https://github.com/waku-org/nwaku/issues/2032"title="https://github.com/waku-org/nwaku/issues/2032"class="external">https://github.com/waku-org/nwaku/issues/2032</a></li>
<li>RC release done, test has ran, changelog done <ahref="https://github.com/waku-org/nwaku/issues/2402"title="https://github.com/waku-org/nwaku/issues/2402"class="external">https://github.com/waku-org/nwaku/issues/2402</a></li>
</ul>
</li>
<li><em>next</em>:
<ul>
<li>continue with the refactor <ahref="https://github.com/waku-org/nwaku/issues/2441"title="https://github.com/waku-org/nwaku/issues/2441"class="external">https://github.com/waku-org/nwaku/issues/2441</a></li>
<li>archive update to fullfill Store v3 requirements <ahref="https://github.com/waku-org/nwaku/issues/2425"title="https://github.com/waku-org/nwaku/issues/2425"class="external">https://github.com/waku-org/nwaku/issues/2425</a></li>
<li>manual tests to ensure it works properly <ahref="https://github.com/waku-org/nwaku/issues/1885"title="https://github.com/waku-org/nwaku/issues/1885"class="external">https://github.com/waku-org/nwaku/issues/1885</a></li>
<li>expose additional bindings functions and add function to free alloc memory <ahref="https://github.com/waku-org/waku-rust-bindings/pull/87"title="https://github.com/waku-org/waku-rust-bindings/pull/87"class="external">https://github.com/waku-org/waku-rust-bindings/pull/87</a></li>
<li>try the “partition table” implementation approach plus “partition truncate”. <ahref="https://github.com/waku-org/nwaku/issues/1885"title="https://github.com/waku-org/nwaku/issues/1885"class="external">https://github.com/waku-org/nwaku/issues/1885</a></li>
<li>expose existing nwaku’s bindings functions and test rust-bindings. Investigate packaging nwaku for mobile. <ahref="https://github.com/waku-org/waku-rust-bindings/pull/87"title="https://github.com/waku-org/waku-rust-bindings/pull/87"class="external">https://github.com/waku-org/waku-rust-bindings/pull/87</a></li>
<li>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. <ahref="https://github.com/waku-org/nwaku/issues/2223"title="https://github.com/waku-org/nwaku/issues/2223"class="external">https://github.com/waku-org/nwaku/issues/2223</a></li>
</ul>
</li>
<li><em>blocker</em>:
<ul>
<li>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. <ahref="https://github.com/waku-org/nwaku/issues/1885"title="https://github.com/waku-org/nwaku/issues/1885"class="external">https://github.com/waku-org/nwaku/issues/1885</a></li>
<li>implemented and merged <code>@waku/local-discovery</code> to store healthy connected peers in the local state, and use these peers to connect with when an application restarts <ahref="https://github.com/waku-org/js-waku/issues/1463"title="https://github.com/waku-org/js-waku/issues/1463"class="external">https://github.com/waku-org/js-waku/issues/1463</a></li>
<li>replaced all use of nwaku’s deprecated JSON RPC API with REST API <ahref="https://github.com/waku-org/js-waku/issues/1826"title="https://github.com/waku-org/js-waku/issues/1826"class="external">https://github.com/waku-org/js-waku/issues/1826</a></li>
<li>added SDK functions for creating a node and subscription given a peer id and content topic <ahref="https://github.com/waku-org/js-waku/issues/1764"title="https://github.com/waku-org/js-waku/issues/1764"class="external">https://github.com/waku-org/js-waku/issues/1764</a></li>
<li>made improvements based on feedback and merged decoupling of sharding logic out of core protocol logic <ahref="https://github.com/waku-org/js-waku/issues/1808"title="https://github.com/waku-org/js-waku/issues/1808"class="external">https://github.com/waku-org/js-waku/issues/1808</a></li>
<li>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 <ahref="https://github.com/waku-org/js-waku/issues/1764"title="https://github.com/waku-org/js-waku/issues/1764"class="external">https://github.com/waku-org/js-waku/issues/1764</a></li>
</ul>
</li>
<li><em>next</em>:
<ul>
<li>cycling stored peers with new peers (discover new peers with peer-exchange) to increase decentralisation</li>
<li>orient protocol implementations to be strictly based on the RFCs <ahref="https://github.com/waku-org/pm/issues/114#issuecomment-1934535353"title="https://github.com/waku-org/pm/issues/114#issuecomment-1934535353"class="external">https://github.com/waku-org/pm/issues/114#issuecomment-1934535353</a></li>
<li>move <code>WakuNode</code> class to SDK with above functions as private class functions</li>
<li>executed a version of bindings with updated dependencies in go-waku for a couple of days to confirm memory leak is gone. <ahref="https://github.com/waku-org/waku-rust-bindings/issues/86"title="https://github.com/waku-org/waku-rust-bindings/issues/86"class="external">https://github.com/waku-org/waku-rust-bindings/issues/86</a></li>
<li>arrive at approach and implement topic connection health reporting based on sharding <ahref="https://github.com/waku-org/go-waku/issues/1021"title="https://github.com/waku-org/go-waku/issues/1021"class="external">https://github.com/waku-org/go-waku/issues/1021</a></li>
<li>initial version of client side for storev3 <ahref="https://github.com/waku-org/go-waku/pull/1028"title="https://github.com/waku-org/go-waku/pull/1028"class="external">https://github.com/waku-org/go-waku/pull/1028</a></li>
<li>draft the comparison doc about build client with REST API</li>
<li>attempting to merge: <ahref="https://github.com/status-im/status-go/pull/4532"title="https://github.com/status-im/status-go/pull/4532"class="external">https://github.com/status-im/status-go/pull/4532</a></li>
<li>creating test code for the selection of store nodes in communities: <ahref="https://github.com/status-im/status-go/issues/4357"title="https://github.com/status-im/status-go/issues/4357"class="external">https://github.com/status-im/status-go/issues/4357</a></li>
</ul>
</li>
<li>*next:
<ul>
<li>continue work on the sending messages with cli</li>
<li>plan next permission-less community tasks</li>
<li>working on metrics dashboard <ahref="https://github.com/waku-org/metrics.waku.org/issues/14"title="https://github.com/waku-org/metrics.waku.org/issues/14"class="external">https://github.com/waku-org/metrics.waku.org/issues/14</a></li>
<li>deployed the research section of the docs <ahref="https://github.com/waku-org/docs.waku.org/issues/155"class="external">https://github.com/waku-org/docs.waku.org/issues/155</a></li>
<li>added the new filter configurations per nwaku 0.25.0 release <ahref="https://github.com/waku-org/docs.waku.org/pull/158"title="https://github.com/waku-org/docs.waku.org/pull/158"class="external">https://github.com/waku-org/docs.waku.org/pull/158</a></li>
<li>Secret Network space</li>
<li>minor tweak to nwaku metrics <ahref="https://github.com/waku-org/nwaku/pull/2430"title="https://github.com/waku-org/nwaku/pull/2430"class="external">https://github.com/waku-org/nwaku/pull/2430</a></li>
<li>updated instructions, added ENV file configuration, recommended docker as the default way to run nodes <ahref="https://github.com/waku-org/docs.waku.org/issues/154"title="https://github.com/waku-org/docs.waku.org/issues/154"class="external">https://github.com/waku-org/docs.waku.org/issues/154</a></li>
<li>some repo org for waku metrics and restarted supabase <ahref="https://github.com/waku-org/metrics.waku.org/issues/6"title="https://github.com/waku-org/metrics.waku.org/issues/6"class="external">https://github.com/waku-org/metrics.waku.org/issues/6</a></li>
<li>workshop and prize descriptions handed over to ethlatam</li>
<li>composing cheatsheets for RLN membership and how to run a node</li>
<li>networkmonitor now supports RLN and thus can be deployed for The Waku Network <ahref="https://github.com/waku-org/nwaku/pull/2401"title="https://github.com/waku-org/nwaku/pull/2401"class="external">https://github.com/waku-org/nwaku/pull/2401</a></li>
<li>tested and provided a minor fix for py-waku, create new issues for cbindings based on this <ahref="https://github.com/waku-org/py-waku/pull/1"title="https://github.com/waku-org/py-waku/pull/1"class="external">https://github.com/waku-org/py-waku/pull/1</a></li>
</ul>
</li>
<li><em>next:</em>
<ul>
<li>complete metrics dashboard improvements, start drafting protocols comparison blog and send presentations to comms for review</li>
<li>finish up the FAQ section for the docs platform <ahref="https://github.com/waku-org/docs.waku.org/issues/152"title="https://github.com/waku-org/docs.waku.org/issues/152"class="external">https://github.com/waku-org/docs.waku.org/issues/152</a></li>
<li>deploy the new pages on the docs <ahref="https://github.com/waku-org/docs.waku.org/pull/166"title="https://github.com/waku-org/docs.waku.org/pull/166"class="external">https://github.com/waku-org/docs.waku.org/pull/166</a></li>
<li>review PR <ahref="https://github.com/waku-org/research/pull/83"title="https://github.com/waku-org/research/pull/83"class="external">https://github.com/waku-org/research/pull/83</a> to add cspell to the research repo</li>
<li>some ui improvements in the metrics dashboard</li>
<li>community call agenda for february</li>
<li>ethlatam presentation</li>
<li>blog post : unbiased comparison of web3 communication protocols</li>
<li>deploy new version of NM, add new metrics to internal and public dashboards</li>
<li>investigate contact ack loss issue identified in mobile-CI after filter-manager PR <ahref="https://github.com/status-im/status-mobile/pull/18769"title="https://github.com/status-im/status-mobile/pull/18769"class="external">https://github.com/status-im/status-mobile/pull/18769</a></li>
</ul>
</li>
<li><em>next</em>:
<ul>
<li>support status integration in case message loss or Waku related issues</li>