<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 achieved: 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 achieved: next: /admin rest endpoint feature is on PR review will be merged next week."/><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/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-
<p><em>achieved</em>: added support for <code>unsubscribe</code>, <code>ping</code> and <code>unsubscribe_all</code> filterv2 functions of go-waku c-bindings</p>
</li>
<li>
<p><em>next</em>: add support to <code>subscribe</code></p>
<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>
<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.</p>
<p><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><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>
<p><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>
<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>
<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.</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>
<p><strong><ahref="https://github.com/waku-org/nwaku/issues/1540"class="external">chore: improve test coverage on NetConfig generation</a></strong></p>
<p>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>.</p>
</li>
<li>
<p>Submitted a PR where we start showing the doability of a Rust integration with the <code>libwaku</code>.</p>
<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>
<p><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.</p>
<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>
<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>
<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>