roadmap/waku/updates/2023-10-16.html

126 lines
134 KiB
HTML
Raw Normal View History

2023-10-16 23:34:11 +00:00
<!DOCTYPE html>
2024-05-17 04:34:57 +00:00
<html><head><title>2023-10-16 Waku weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2023-10-16 Waku weekly"/><meta property="og:description" content="nwaku § chore: Reorganize RestApi specs for live documentation {E:REST API service node} achieved: Http RestAPI interface is in parity with json-rpc with even more features supported on it."/><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="nwaku § chore: Reorganize RestApi specs for live documentation {E:REST API service node} achieved: Http RestAPI interface is in parity with json-rpc with even more features supported on it."/><meta name="generator" content="Quartz"/><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-10-16"><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.56
2023-10-16 23:34:11 +00:00
<p><strong><a href="https://github.com/waku-org/nwaku/issues/2120" class="external">chore: Reorganize RestApi specs for live documentation</a></strong> {E:REST API service node}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: Http RestAPI interface is in parity with json-rpc with even more features supported on it.</li>
<li><em>next</em>: Openapi specification is reorganized and online doc generated out of it. Currently under PR review.
Follow up spec reorganization with rest api type reorganization. RFC changes to enhance lighpust failure response.</li>
2023-10-16 23:34:11 +00:00
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/2042" class="external">feat: allowing users to choose port 0 for dynamically allocated ports</a></strong> {enhancement}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: had over code review sessions and got feedback. Implemented improvements, attempted new approaches, fixed bugs. Most of the solution is already implemented and working.</li>
<li><em>next</em>: fix failed tests, add test cases and raise PR</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1961" class="external">feat: experimental incentivize store protocol</a></strong> {E:Basic service incentivization}</p>
<ul>
<li><em>achieved</em>: wrote the <a href="https://github.com/waku-org/research/pull/33" class="external">first draft of incentivization outline</a></li>
<li><em>next</em>: discuss open question, continue structuring the document</li>
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1914" class="external">setting up static sharding fleet for Status</a></strong> {E:Static sharding}</p>
<ul>
<li><em>achieved</em>: setup a separate shard for community points of contact, and another one for 1:1/group messages</li>
<li><em>next</em>: investigate/fix discv5 not working when static sharding is being used.</li>
2023-10-16 23:34:11 +00:00
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1888" class="external">PostgreSQL</a></strong> {E:2.1: Production testing of existing protocols}, {E:PostgreSQL}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>:
2023-10-16 23:34:11 +00:00
<ul>
2023-10-17 23:46:32 +00:00
<li>Testing environment prepared in <code>metal-01.he-eu-hel1.wakudev.misc.statusim.net</code>. There are two databases (Postgres and SQLite) with 5 million of random messages.</li>
<li>Enhanced Grafana dashboard so that we can compare timings performance throughout an histogram.</li>
2023-10-16 23:34:11 +00:00
</ul>
</li>
2023-10-17 23:46:32 +00:00
<li><em>next</em>: Carry on with the investigation to enhance the <em>Postgres</em> performance.</li>
2023-10-16 23:34:11 +00:00
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1797" class="external">feat: provide a way to define advertised addresses</a></strong> {enhancement}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: implemented solution and raised PR</li>
<li><em>next</em>: get feedback, implement suggested improvements and close</li>
2023-10-16 23:34:11 +00:00
</ul>
<p><strong><a href="https://github.com/waku-org/nwaku/issues/1332" class="external">nwaku c-bindings (NodeJS + Python)</a></strong> {E:NodeJS Library}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>:
2023-10-16 23:34:11 +00:00
<ul>
2023-10-17 23:46:32 +00:00
<li>Separate PR to avoid global variables: <a href="https://github.com/waku-org/nwaku/pull/2118" class="external">https://github.com/waku-org/nwaku/pull/2118</a></li>
<li>Started to document the tasks tackled so far: <a href="https://www.notion.so/NWaku-cbindings-FFI-7a9ae6240cfc4caba7c7ff0bf3429a70" class="external">https://www.notion.so/NWaku-cbindings-FFI-7a9ae6240cfc4caba7c7ff0bf3429a70</a></li>
2023-10-16 23:34:11 +00:00
</ul>
</li>
2023-10-17 23:46:32 +00:00
<li><em>next</em>: Start creating a separate <em>NodeJs</em> and <em>Python</em> repositories, where we will create nodejs-waku and py-waku, respectively.</li>
2023-10-16 23:34:11 +00:00
</ul>
<hr/>
<h3 id="js-waku">js-waku<a aria-hidden="true" tabindex="-1" href="#js-waku" class="internal"> §</a></h3>
2023-10-17 23:46:32 +00:00
<p><strong><a href="https://github.com/waku-org/js-waku/issues/914" class="external">Peer Management: Connection and Disconnection</a></strong> {E:2.1: Production testing of existing protocols}</p>
2023-10-16 23:34:11 +00:00
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: reached a conclusion tackling deliberate vs accidental disconnections, PRs opened to handle Filter subscriptions on disconnection/reconnections, iterative fixes on addressing multiple dial attempts for same peer, fixes around keep alive pings</li>
<li><em>next</em>: getting reviews &amp; merging these PRs which should enable us to close this epic 🥳</li>
2023-10-16 23:34:11 +00:00
</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/680" class="external">feat: Service peer selection on specific shards</a></strong> {E:1.4: Sharded peer management and discovery}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: refactor and migrate peer selection to peer manager and update lightclient API to use new options</li>
<li><em>next</em>: on-demand discovery if peers are not available for the shard</li>
2023-10-16 23:34:11 +00:00
</ul>
<p><strong><a href="https://github.com/waku-org/go-waku/issues/607" class="external">Add postgresql to the unit tests</a></strong> {test}</p>
<ul>
2023-10-17 23:46:32 +00:00
<li><em>achieved</em>: Completed. Fixed only sqlite being used for creating queries.</li>
2023-10-25 18:50:16 +00:00
</ul></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-10-16 23:34:11 +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
2024-01-02 19:24:43 +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="#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 class><hr/><p>Created with <a href="https://quartz.jzhao.xyz/">Quartz v4.1.0</a>, © 2024</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-10-16 23:34:11 +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'
mermaid.initialize({
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
});
document.addEventListener('nav', async () => {
await mermaid.run({
querySelector: '.mermaid'
})
});
</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>