roadmap/nomos/updates/2024-01-22.html

109 lines
110 KiB
HTML
Raw Normal View History

2024-01-24 16:54:58 +00:00
<!DOCTYPE html>
2024-02-14 18:21:49 +00:00
<html><head><title>2024-01-22 Nomos weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2024-01-22 Nomos weekly"/><meta property="og:description" content="Weekly update of Nomos."/><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="Weekly update of Nomos."/><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="nomos/updates/2024-01-22"><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.5,0.672-1.5,1.5v3c0,0.828,0.671,1.5,1.5,1.5s1.5-0.672,1.5-1.5v-3C19,29.672,18.329,29,17.5,29z M17.5,7 C11.71,7,7,11.71,7,17.5S11.71,28,17.5,28S28,23.29,28,17.5S23.29,7,17.5,7z M17.5,25c-4.136,0-7.5-3.364-7.5-7.5 c0-4.136,3.364-7.5,7.5-7.5c4.136,0,7.5,3.364,7.5,7.5C25,21.636,21.636,25,17.5,2
2024-01-24 16:54:58 +00:00
<h3 id="research"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h3>
<ul>
<li>One of the last pieces of the mixnet specification: “Defining topology update and entropy injection in a clear way” - we are close to a solution and will include new findings next week. To see the current proposal and differences being discussed (for example architecting the consensus and mixnet interaction) please check the <a href="https://github.com/logos-co/nomos-specs/pull/51#discussion_r1457675581" class="external">GitHub PR</a>. Code review is also in progress.</li>
</ul>
<h3 id="development"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development" class="internal"> §</a></h3>
<ul>
<li>Tested <a href="https://github.com/libp2p/rust-libp2p/tree/master/examples/stream" class="external">libp2p stream protocol</a> for the mixclient->mixnode and mixnode->mixnode communication. Concluded thats very simple and appropriate for our case because its the fundamental protocol that is used for other libp2p protocols such as DHT. Thats basically not very different from the naive communication implementation over QUIC or TCP.</li>
<li>Completed several PRs (with code-review as well) <a href="https://github.com/logos-co/nomos-specs/pull/44" class="external">Topology</a>, <a href="https://github.com/logos-co/nomos-specs/pull/47" class="external">Sphinx packet construction</a>, <a href="https://github.com/logos-co/nomos-specs/pull/49" class="external">Packet delays</a>, <a href="https://github.com/logos-co/nomos-specs/pull/49" class="external">Mix client Poisson emission</a>.</li>
<li>Designed the updated Nomos Rust <a href="https://viewer.diagrams.net/index.html?tags=%7B%7D&amp;highlight=0000ff&amp;edit=_blank&amp;layers=1&amp;nav=1&amp;title=mixnet-components.drawio#R5Vpbc5s6EP41nmkfkgFxcx5bJzntmbaTTuac0%2FRNBhmUCMSR5Ft%2FfSUj7tjxFTvTJ0urXQG73367CA%2BsUbz4i8E0%2BkoDRAbACBYD63YAgGkbjvxRkmUm8bxhJggZDrRSKXjEv5AWGlo6xQHiNUVBKRE4rQt9miTIFzUZZIzO62oTSupXTWGIWoJHH5K29D8ciCiTDh2jlH9COIzyK5uGXolhrqwFPIIBnVdE1t3AGjFKRTaKFyNElPNyv2R292tWixtjKBHbGPwPl5%2Bewf2vny8enBF3OZ8F9pXeZQbJVD8wFzAJIKEJUl5lUEjvZ%2FcvlrlTGJ0mAVL7GgPr4zzCAj2m0FercwkDKYtETOTMlEMCx4g8UI4FpomU%2BfJ%2BEZMLM8QElp7%2B0lAQVO0ACQ471T%2FohTEVgsZyQT%2BCXEaLtb4xC49LqCIaI8GWUkUbAFcHSaPUyoM2L2NuuhrKUSXeIAcC1DgLi73LUMiBjkZ3ZAIcj3%2Bmhvh3cRvw59E3HE3%2BvjLtVmgSGlN%2BxRGbYf%2BNRKUVgo5ArY2KPaxHBVjtqNh5pKpRsexTRQW0EwZPVmHAK2PJQYhzqK9UjQ4KJK%2FoKWUioiFNILkrpR%2Fr8St1vlDl%2BlXUnpEQS02ScCpoPaZogcUPba7GT2p87ejZ7aKydLvMJ4l0y498AzWpWKlpabaa5XYB5NHqXvcCU4GSV%2FGUwW4tmDidMh9tSiNdMyALkdgUWI0YFaaN2GSIQIFn9fJw%2FOxvwWwAXCKU4%2FFMDkM1TJCYU%2Fai3DDz83V5uYpKh9U7LhiC8QCMVHmlnMtSOh3LMZW%2Blz%2Ff%2F%2Fk8ep%2FbjVlzp%2Bb%2Bh5DQETjCAXWOKDijwhEFb1Q54mTE7bRLKkqC1XP6L0i0ebtPZijY4Kmy0s0M%2B%2BccOHYqadMHiuWtlKH3nO7Q51tkSa%2Btyqh%2BYAwuK2qpUuC7X6cESbZjCZniGQ8gAKMFI0VgqvtNKaHheQvMtVfFkbERR0WFMa5BUVWeqotrSszBAHyV9O0tgaqBIB9gCLTNbtjdFXKuYdX7Ua%2FR2zf0vZuN%2BnWIltb57dDJhCMxaDLfMWDs%2FVGN0Okha7oX1aeAFkvFeOETjFb4WrUlF9YgWDcdr3Zmnw2Cu6ZBuGfIn%2F1JfYLVT5%2FgGWtaxCP3Ceuuc9I%2B4az8au7Dr8Zu%2FHowvI7WBfT05jc8b%2BKDvTo7b6fO7kg1c9sAH79m7tfUNd4jLHdzU2cNrU36p%2BETq6ugJzRAF1LOXWeLcm70Wc7Nm%2FMmrDGs07Bh95C0assHxLB0oTq2O5Cp7beVyJ7n1THo7JjITg%2BJ3P58IBO5PDxoHu9dQm573uu5fdNrardfb%2BqteszDN9OnVxK%2Fp2MYc%2BvD9y3TWuPkyrh2wVBzwb4vBz2cfbRrKU6e1Udq%2BajSxTQ96yHefs37xWHnwrr39ocbnyaSNPiUX0gH1TwQAd65D0TM9omIajp1Vu7tqwkmJM8lnQbbvXhs70vLuLTDJdD%2BbpD9bYDgcQrSwzx6avd1fbw7lvtU0S7%2Ba5NRfPmPJevuNw%3D%3D" class="external">project structure</a> for mixnet v1.</li>
<li><a href="https://www.notion.so/rust-libp2p-QUIC-transport-analysis-6a6acf6f02424f0ab7ba30ecb6b8647b" class="external">Analyzed</a> the rust-libp2p QUIC transport in terms of configuration and implementation details.</li>
</ul>
<h2 id="testnet"><code>testnet</code><a aria-hidden="true" tabindex="-1" href="#testnet" class="internal"> §</a></h2>
<h3 id="development-1"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-1" class="internal"> §</a></h3>
<ul>
<li>Removed the <code>async-trait</code> from the <a href="https://github.com/logos-co/nomos-node/pull/561" class="external">node</a> as well as <a href="https://github.com/logos-co/Overwatch/pull/33" class="external">Overwatch</a>.</li>
<li>Grafana and related services addition to the testnet (<a href="https://github.com/logos-co/nomos-node/pull/564" class="external">new PR</a>).</li>
<li>Preparation for demo chat app bot, ability to send data from file, non-interactively (<a href="https://github.com/logos-co/nomos-node/pull/565" class="external">new PR</a>).</li>
<li><a href="https://github.com/logos-co/nomos-node/pull/559" class="external">Prune Carnot old block PR</a> has been completed and is currently in review.</li>
<li>Added a <a href="https://github.com/logos-co/nomos-node/pull/563" class="external">test</a> for big blobs dissemination.</li>
<li>Limited the number of in-flight requests performed by the chat app to avoid using too many descriptors - more details <a href="https://github.com/logos-co/nomos-node/pull/562" class="external">here</a>.</li>
</ul>
<h2 id="cryptarchia"><code>cryptarchia</code><a aria-hidden="true" tabindex="-1" href="#cryptarchia" class="internal"> §</a></h2>
<h3 id="research-1"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research-1" class="internal"> §</a></h3>
<ul>
<li>Updated the wealth concentration analysis with the new [chapter](<a href="https://www.notion.so/Does-Crypsinous-Leader-Election-Function-lead-to-wealth-concentration-in-PoS-b81f07a791b745438443f51f00ac258f?pvs=4#1df422f6cc204cb8b362f41cda260b8b" class="external">https://www.notion.so/Does-Crypsinous-Leader-Election-Function-lead-to-wealth-concentration-in-PoS-b81f07a791b745438443f51f00ac258f?pvs=4#1df422f6cc204cb8b362f41cda260b8b</a> about stake relativization algorithm. The <a href="https://www.notion.so/Does-Crypsinous-Leader-Election-Function-lead-to-wealth-concentration-in-PoS-b81f07a791b745438443f51f00ac258f#ca7aa03a7b9541849b71843a46c883c7" class="external">section</a> about known total stake is also in progress.</li>
<li><a href="https://www.notion.so/Stake-Relativization-65f5ed5522b64c36b625652023318d88#5ac8c8ead49d4bc7b9ab742bafd91257" class="external">Stake relativization</a> specification is complete.</li>
<li>Set up an <a href="https://www.overleaf.com/project/656dfacf4929b4a3d6d2ffe5" class="external">analytical framework</a> which will be used to study the impact of using the (biased) total stake estimator on the leader election process. The central object of this framework is the joint probability distribution of two copies of the election process with the same (random) sampling noise, the same stake but different values of the total stake.</li>
</ul>
<h3 id="development-2"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-2" class="internal"> §</a></h3>
<ul>
<li>No updates, heavily in research.</li>
</ul>
<h2 id="data-availability"><code>data availability</code><a aria-hidden="true" tabindex="-1" href="#data-availability" class="internal"> §</a></h2>
<h3 id="research-2"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research-2" class="internal"> §</a></h3>
<ul>
<li><a href="https://www.notion.so/DA-Api-Specification-83000d9c2f3f45b586cd55c5c195cce5" class="external">DA API specification</a> is written (likely to change due to active discussions).</li>
<li><a href="https://www.notion.so/DA-Layer-Comparison-Table-5848811f0af042e2b24c10d3cea9b0a8" class="external">DA Layer Comparison article</a> is almost finished - there are several comments still left to be resolved. Protocols were explained in more detail. Tables have been updated and to see the raw updated data on its own refer to this <a href="https://docs.google.com/spreadsheets/d/1I2hk69hWLVXaATC5048tLcw2qUTjiZORIzL0y90PTLg/edit#gid=0" class="external">sheet</a>.</li>
</ul>
<h3 id="development-3"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-3" class="internal"> §</a></h3>
<ul>
<li><a href="https://www.notion.so/Preparation-for-DA-API-c3ec5933851b4ff48ede5da1cff25638" class="external">DA implementation plan</a> is written (with active discussions it is likely to change).</li>
</ul>
<h2 id="miscellaneous"><code>miscellaneous</code><a aria-hidden="true" tabindex="-1" href="#miscellaneous" class="internal"> §</a></h2>
<ul>
<li>Devised a plan to take action for Nomos marketing and comms strategy: devised a couple of WIP docs (strategic <a href="https://docs.google.com/document/d/18YokFwgz-LgEsfhkuSCYpm26DdXK0e80iDNtS6otHE8/edit" class="external">one</a> and mission <a href="https://docs.google.com/document/d/1L4Eebj-ol6sO_IEZGa9P5fte54luTZA1L_IYX4sHNN8/edit#heading=h.m5q5sieqfyk6" class="external">one</a>). We will start compiling our resources to help out the comms team with “ammo” for the Twitter and other social media.</li>
<li>Carnot paper is currently being reviewed. Team feedback collected, several issues (for example of administrative and legal nature) were raised and will be addressed.</li>
</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
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
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="#network-privacy-and-mixnet" data-for="network-privacy-and-mixnet">network privacy and mixnet</a></li><li class="depth-1"><a href="#research" data-for="research">research</a></li><li class="depth-1"><a href="#development" data-for="development">development</a></li><li class="depth-0"><a href="#testnet" data-for="testnet">testnet</a></li><li class="depth-1"><a href="#development-1" data-for="development-1">development</a></li><li class="depth-0"><a href="#cryptarchia" data-for="cryptarchia">cryptarchia</a></li><li class="depth-1"><a href="#research-1" data-for="research-1">research</a></li><li class="depth-1"><a href="#development-2" data-for="development-2">development</a></li><li class="depth-0"><a href="#data-availability" data-for="data-availability">data availability</a></li><li class="depth-1"><a href="#research-2" data-for="research-2">research</a></li><li class="depth-1"><a href="#development-3" data-for="development-3">development</a></li><li class="depth-0"><a href="#miscellaneous" data-for="miscellaneous">miscellaneous</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
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>