roadmap/waku/updates/2023-09-18.html

164 lines
96 KiB
HTML
Raw Normal View History

2023-09-18 11:33:04 +00:00
<!DOCTYPE html>
2023-10-02 20:39:28 +00:00
<html><head><title>2023-09-18 Waku weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2023-09-18 Waku weekly"/><meta property="og:description" content="2023-09-18 Waku weekly Epics § 1.1 Network requirements and task breakdown {E:1.1 Network requirements and task breakdown} achieved: Further specifications added for RLN."/><meta property="og:image" content="https://roadmap.logos.co/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="../../static/icon.png"/><meta name="description" content="2023-09-18 Waku weekly Epics § 1.1 Network requirements and task breakdown {E:1.1 Network requirements and task breakdown} achieved: Further specifications added for RLN."/><meta name="generator" content="Logos Roadmaps"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link href="../../index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&amp;family=sans-serif:wght@400;700&amp;family=sans-serif:ital,wght@0,400;0,600;1,400;1,600&amp;display=swap" rel="stylesheet" type="text/css" spa-preserve/><script src="../../prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch(`../../static/contentIndex.json`).then(data => data.json())</script></head><body data-slug="waku/updates/2023-09-18"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"><h1 class="page-title"><a href="../..">Logos Collective Project Roadmaps</a></h1><div class="spacer mobile-only"></div><div class="search"><div id="search-icon"><p>Search</p><div></div><svg tabIndex="0" aria-labelledby="title desc" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title id="title">Search</title><desc id="desc">Search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></div><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search for something" placeholder="Search for something"/><div id="results-container"></div></div></div></div><div class="darkmode"><input class="toggle" id="darkmode-toggle" type="checkbox" tabIndex="-1"/><label id="toggle-label-light" for="darkmode-toggle" tabIndex="-1"><svg xmlns="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><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,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,26z M17.5,6 C18.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,6z M27.5,9 c0.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.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-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.06 L6.439,8.561z M33.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,16z M28.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,2 C28.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.439z M17.5,29 c-0.829,0-1
2023-09-20 01:52:30 +00:00
<hr/>
2023-09-18 11:33:04 +00:00
<h3 id="epics">Epics<a aria-hidden="true" tabindex="-1" href="#epics" class="internal"> §</a></h3>
<p><strong><a href="https://github.com/waku-org/pm/issues/62" class="external">1.1 Network requirements and task breakdown</a></strong> {E:1.1 Network requirements and task breakdown}</p>
<ul>
<li><em>achieved</em>: Further specifications added for RLN. Merged and published first version of RFC</li>
<li><em>next</em>: Define first launchable (sub)network for Devconnect.</li>
</ul>
<hr/>
<h3 id="docs">Docs<a aria-hidden="true" tabindex="-1" href="#docs" class="internal"> §</a></h3>
<p><strong><a href="https://github.com/waku-org/docs.waku.org/issues/104" class="external">Advanced docs for js-waku</a></strong></p>
<ul>
<li><em>achieved</em>: added guide for local development with nwaku</li>
</ul>
<p><strong><a href="https://github.com/waku-org/docs.waku.org/issues/103" class="external">Node operator doc - cloud and advanced options</a></strong></p>
<ul>
<li><em>achieved</em>: added guide on advanced nwaku and WebSocket configurations</li>
<li><em>next</em>: add guide for enabling node monitoring</li>
</ul>
<hr/>
2023-09-20 00:38:20 +00:00
<h3 id="research">Research<a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h3>
<p><strong><a href="https://github.com/waku-org/research/issues/23" class="external">RLN Key Benchmarks</a></strong> {E:3.2: Basic DoS protection in production}</p>
<ul>
<li><em>achieved</em>: benchmark rln, see issue with report.</li>
</ul>
<hr/>
2023-09-18 11:33:04 +00:00
<h3 id="nwaku">nwaku<a aria-hidden="true" tabindex="-1" href="#nwaku" class="internal"> §</a></h3>
2023-09-20 01:52:30 +00:00
<p><strong><a href="https://github.com/waku-org/nwaku/issues/2040" class="external">feat: HTTP REST API: lightpush </a></strong> {E:REST API service node}</p>
2023-09-18 11:33:04 +00:00
<ul>
<li><em>achieved</em>:</li>
<li><em>next</em>: LightPush REST endpoint will be implemented fully and put on PR review</li>
<li><em>blocking</em>:</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/2027" class="external">bug: wrong user_version in sqlite database that blocks the run of a Waku node</a></strong> {bug}</p>
<ul>
<li><em>achieved</em>: bug fix that prevented a <em>Store</em> <code>nwaku</code> to start if the <em>SQLite</em> db was created with versions [0.14.0 - 0.18.0]</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1936" class="external">feat: Autosharding API for (relay) subscriptions</a></strong> {E:1.2: Autosharding for autoscaling}</p>
<ul>
<li><em>achieved</em>: many PR fixes,</li>
<li><em>blocker</em>: explicit subscriptions in js-waku tests</li>
</ul>
2023-09-20 00:38:20 +00:00
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1906" class="external">chore(rln-relay): Requirements to consider RLN ready (non experimental)</a></strong> {E:3.1: DoS requirements and design}</p>
<ul>
<li><em>achieved</em>: waku rln is not an experimental feature anymore, and is part of nwaku code base. from now on experimental features are hidden behind a flag and not in different build</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1883" class="external">chore: do not advertise multiaddr with port 0</a></strong> {bug}</p>
2023-09-18 11:33:04 +00:00
<ul>
<li><em>achieved</em>: tested two different solutions: updating the port with an addressMapper, and not allowing the user to use port 0. Analyzed and discussed technical implications of both solutions. Initially followed decision to proceed with 2nd solution for now, with intention of implementing the first solution in the future.
2023-10-02 13:03:01 +00:00
<ul>
<li>Opened a draft PR and updated tests for the solution of not allowing the user to choose port 0.</li>
</ul>
</li>
2023-09-18 11:33:04 +00:00
<li><em>next</em>: after further feedback received today, we have to complete the discussion of how to move forward and either review and proceed with current PR, or plan and implement solution that updates all the data structures consistently across the node</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1872" class="external">feat: HTTP REST API: Filter support v2</a></strong> {E:REST API service node}</p>
<ul>
<li><em>achieved</em>: Filter v1 &amp; v2 REST API endpoints merged to master</li>
<li><em>next</em>: LightPush REST endpoint</li>
</ul>
<p><strong><a href="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>: implemented solution that does DNS IP resolution during node bringup when no external IP is found but a DNS address is provided.
2023-10-02 13:03:01 +00:00
<ul>
<li>Validated and tested “happy paths” of the solution, raised draft PR and got feedback about the solution</li>
</ul>
</li>
<li><em>next</em>: discuss and define the systems behavior on errors, implement error handling and adding tests for this feature.</li>
2023-09-18 11:33:04 +00:00
</ul>
<hr/>
<h3 id="js-waku">js-waku<a aria-hidden="true" tabindex="-1" href="#js-waku" class="internal"> §</a></h3>
<p><strong><a href="https://github.com/waku-org/js-waku/issues/1455" class="external">Maintenance</a></strong> {E:2023-qa}</p>
<ul>
<li><em>achieved</em>: added logs, investigated issues reported</li>
<li><em>next</em>: approach reported issues, add preventative measures</li>
</ul>
<p><strong><a href="https://github.com/waku-org/js-waku/issues/52" class="external">Cover Several Environments As Part of Testing</a></strong> {test}, {E:2023-qa}</p>
<ul>
<li><em>achieved</em>: got reviews on playwrights tests</li>
<li><em>next</em>: maybe add bounty, check Karma testing</li>
</ul>
<hr/>
<h3 id="go-waku">go-waku<a aria-hidden="true" tabindex="-1" href="#go-waku" class="internal"> §</a></h3>
<p><strong><a href="https://github.com/waku-org/go-waku/issues/727" class="external">feat: discovery &amp; peer management for static shards</a></strong> {E:1.4: Sharded peer management and discovery}</p>
<ul>
<li><em>achieved</em>: Update WakuPeerStore to store pubSubTopics for a peer.</li>
<li><em>next</em>: Sharded Peer Management considering static sharding for Status communities.</li>
</ul>
<p><strong><a href="https://github.com/waku-org/go-waku/issues/655" class="external">RLN enabled by default</a></strong> {E:3.2: Basic DoS protection in production}</p>
<ul>
<li><em>achieved</em>: isReady verif in /health endpoint, make RLN available in service nodes and library usage by default, update docs and docker image, use zerokit 0.3.4, allow running service node with no RLN credentials</li>
<li><em>next</em>: bandwidth validation, subcommand to list credentials</li>
</ul>
<p><strong><a href="https://github.com/waku-org/go-waku/issues/634" class="external">Maintenance</a></strong> {E:2023-qa}</p>
<ul>
<li><em>achieved</em>: CommonService for embedding lifecycle operation in lightpush,discv5,filter,peerConnector etc.</li>
<li><em>next</em>: after discussion with richard prem, use create 2 different types of commonService. Change nameServer flag functionality in go-waku to nwaku. And work on newly created tasks.</li>
</ul>
<p><strong><a href="https://github.com/waku-org/go-waku/issues/620" class="external">Improve Test Coverage</a></strong> {test}</p>
<ul>
<li><em>achieved</em>: replace golint by revive, and add <code>make lint-full</code> target to run linting with many more rules enabled</li>
</ul>
2023-09-25 21:23:05 +00:00
<hr/></article></div><div class="right sidebar"><div class="graph"><h3>Graph View</h3><div class="graph-outer"><div id="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></div><svg version="1.1" id="global-graph-icon" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xmlSpace="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
2023-09-18 11:33:04 +00:00
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
2023-09-25 21:23:05 +00:00
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></div><div id="global-graph-outer"><div id="global-graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></div></div></div><div class="toc desktop-only"><button type="button" id="toc"><h3>Table of Contents</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="toc-content"><ul class="overflow"><li class="depth-0"><a href="#epics" data-for="epics">Epics</a></li><li class="depth-0"><a href="#docs" data-for="docs">Docs</a></li><li class="depth-0"><a href="#research" data-for="research">Research</a></li><li class="depth-0"><a href="#nwaku" data-for="nwaku">nwaku</a></li><li class="depth-0"><a href="#js-waku" data-for="js-waku">js-waku</a></li><li class="depth-0"><a href="#go-waku" data-for="go-waku">go-waku</a></li></ul></div></div><div class="backlinks"><h3>Backlinks</h3><ul class="overflow"><li>No backlinks found</li></ul></div></div></div><footer><hr/><p>Created by Logos with <a href="https://quartz.jzhao.xyz/">Quartz v4.1.0</a>, © 2023</p><ul><li><a href="https://github.com/logos-co/roadmap">GitHub</a></li><li><a href="https://discord.com/invite/logos-state">Discord Community</a></li></ul></footer></div></body><script type="application/javascript">// quartz/components/scripts/quartz/components/scripts/callout.inline.ts
2023-09-18 11:33:04 +00:00
function toggleCallout() {
const outerBlock = this.parentElement;
outerBlock.classList.toggle(`is-collapsed`);
const collapsed = outerBlock.classList.contains(`is-collapsed`);
const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight;
outerBlock.style.maxHeight = height + `px`;
let current = outerBlock;
let parent = outerBlock.parentElement;
while (parent) {
if (!parent.classList.contains(`callout`)) {
return;
}
const collapsed2 = parent.classList.contains(`is-collapsed`);
const height2 = collapsed2 ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight;
parent.style.maxHeight = height2 + `px`;
current = parent;
parent = parent.parentElement;
}
}
function setupCallout() {
const collapsible = document.getElementsByClassName(
`callout is-collapsible`
);
for (const div of collapsible) {
const title = div.firstElementChild;
if (title) {
title.removeEventListener(`click`, toggleCallout);
title.addEventListener(`click`, toggleCallout);
const collapsed = div.classList.contains(`is-collapsed`);
const height = collapsed ? title.scrollHeight : div.scrollHeight;
div.style.maxHeight = height + `px`;
}
}
}
document.addEventListener(`nav`, setupCallout);
window.addEventListener(`resize`, setupCallout);
</script><script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
2023-09-25 21:23:05 +00:00
mermaid.initialize({
2023-09-18 11:33:04 +00:00
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
});
document.addEventListener('nav', async () => {
await mermaid.run({
querySelector: '.mermaid'
})
});
2023-09-18 20:20:27 +00:00
</script><script src="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js" type="application/javascript"></script><script src="../../postscript.js" type="module"></script></html>