<html><head><title>2023-10-03 Waku Weekly</title><metacharSet="utf-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><metaproperty="og:title"content="2023-10-03 Waku Weekly"/><metaproperty="og:description"content="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 next: /admin rest endpoint feature is on PR review will be merged next week."/><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="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 next: /admin rest endpoint feature is on PR review will be merged next week."/><metaname="generator"content="Logos Roadmaps"/><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/2023-10-02"><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,
<li><em>achieved</em>: added support for <code>unsubscribe</code>, <code>ping</code> and <code>unsubscribe_all</code> filterv2 functions of go-waku c-bindings</li>
<li><em>next</em>: add support to <code>subscribe</code></li>
<p><strong><ahref="https://github.com/waku-org/nwaku/issues/2075"class="external">feat: Implement /admin Rest Api endpoint</a></strong></p>
<ul>
<li>
<p><em>next</em>: /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.</p>
</li>
<li>
<p><em>blocking</em>: 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.
<strong><ahref="https://github.com/waku-org/nwaku/issues/2051"class="external">feat: RLN support for Nwaku-Compose</a></strong> {E:3.2: Basic DoS protection in production}</p>
<p><em>next</em>: task is blocked until there’s an easier method for users to register RLN credentials
<strong><ahref="https://github.com/waku-org/nwaku/issues/1941"class="external">feat: Service peer selection on specific shards</a></strong> {E:1.4: Sharded peer management and discovery}</p>
</li>
<li>
<p><em>achieved</em>: newly refactored STORE REST API handler that trigger discv5 peer search when needed.</p>
</li>
<li>
<p><em>next</em>: refactor other APIs
<strong><ahref="https://github.com/waku-org/nwaku/issues/1888"class="external">PostgreSQL</a></strong> {E:2.1: Production testing of existing protocols}, {E:PostgreSQL}</p>
</li>
<li>
<p><em>achieved</em>:</p>
</li>
<li>
<p>Better <code>dburl</code> parse that accepts host names with dashes and dots.</p>
</li>
<li>
<p>Properly set the compilation flag <code>-d:postgres</code> so <em>Docker</em> images are compiled with support to <em>Postgres</em> (with <code>libpq5</code> dependency.)</p>
</li>
<li>
<p>During the stress testing, I discovered that the max throughput seems not to be directly related to <em>Postgres</em>. If I make the code to ignore <em>Postgres</em> and return immediately a mocked response, then the throughput is even lower.</p>
</li>
<li>
<p><em>next</em>: Carry on with “select” performance analysis and analyze it directly from a <em>Store</em> client, rather than having <code>REST</code><-> <code>Store_Client</code><-> <code>Store_Server</code>. By ignoring the <code>REST</code> layer we will have a better insight into the actual <em>Store</em> protocol, as @jm-clius recommended to me some time ago.
<strong><ahref="https://github.com/waku-org/nwaku/issues/1885"class="external">chore: add retention policy with GB or MB limitation</a></strong> {enhancement}, {E:PostgreSQL}
Added the new retention policy based on DB size.</p>
</li>
</ul>
<p>Users can provide the size such as <size_number><case_insenstive_gb_or_mb> ex. 30gb (which is also the default)</p>
<p>Outdated messages/rows are deleted to suffice the size limit, with 20% size reduction upon overflowing.</p>
<p><strong><ahref="https://github.com/waku-org/nwaku/issues/1576"class="external">chore: update resolved enr ip when using <code>dns4-domain-name</code> flag</a></strong> {enhancement}</p>
<ul>
<li><em>achieved</em>: addressed feedback and merged</li>
</ul>
<p><strong><ahref="https://github.com/waku-org/nwaku/issues/1540"class="external">chore: improve test coverage on NetConfig generation</a></strong></p>
<ul>
<li><em>achieved</em>: developed the new NetConfig test suite, raised PR, received and implemented feedback and merged.
<li>Added a simple cpp example to the main code. <ahref="https://github.com/waku-org/nwaku/pull/2079"class="external">https://github.com/waku-org/nwaku/pull/2079</a>.</li>
<li>Submitted a PR where we start showing the doability of a Rust integration with the <code>libwaku</code>.</li>
</ul>
<p>This PR is currently introducing the thread-safety enhancement of avoiding using global variables. Ideally, this should be in a separate PR. <ahref="https://github.com/waku-org/nwaku/pull/2089"class="external">https://github.com/waku-org/nwaku/pull/2089</a>.</p>
<p>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.)</p>
<ul>
<li><em>next</em>: Separate the PR mentioned above and submit another one which only avoids using global variables but doesn’t add the wip-Rust integration.</li>
<p><strong><ahref="https://github.com/waku-org/go-waku/issues/788"class="external">refactor: add user_data to c-bindings</a></strong> {E:RLN non-native SDKs}</p>
<ul>
<li><em>achieved</em>: updated all the functions to include an additional <code>void* user_data</code> parameter</li>
</ul>
<p><strong><ahref="https://github.com/waku-org/go-waku/issues/727"class="external">feat: discovery & peer management for static shards</a></strong> {E:1.4: Sharded peer management and discovery}</p>
<ul>
<li><em>achieved</em>: basic relay peer mgmt for static/auto sharding</li>
</ul>
<p><strong><ahref="https://github.com/waku-org/go-waku/issues/680"class="external">feat: Service peer selection on specific shards</a></strong> {E:1.4: Sharded peer management and discovery}</p>
<ul>
<li><em>achieved</em>: Peer selection updated to be based on pubsubTopic or contentTopic</li>
<li><em>next</em>: Update lightClient API to consider new peerSelection options</li>
</ul>
<p><strong><ahref="https://github.com/waku-org/go-waku/issues/673"class="external">feat: Autosharding API for req-resp protocols</a></strong> {E:1.2: Autosharding for autoscaling}</p>
<ul>
<li><em>achieved</em>: Updated lightpush API for autosharding</li>