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

186 lines
119 KiB
HTML
Raw Normal View History

2024-01-22 06:55:25 +00:00
<!DOCTYPE html>
2024-04-08 16:48:12 +00:00
<html><head><title>2024-01-22 Codex 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 Codex Weekly"/><meta property="og:description" content="Weekly update of Codex."/><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 Codex."/><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="codex/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-22 06:55:25 +00:00
<blockquote>
<p>The Codex team is currently wrapping up the demo for the Q1/Q2 public testnet release. An internal testnet has been running for the past few weeks and has been used to test the latest version of Codex and can be accessed using the <a href="https://github.com/codex-storage/codex-testnet-starter" class="external">Codex Testnet Starter</a> documentation.</p>
</blockquote>
<blockquote>
<p>Ongoing and new lines of research and development will soon begin in preparation for the next version of Codex that will be used for the mainnet release.</p>
</blockquote>
<p>Development is currently broken into three distinct teams:</p>
<ol>
<li>Client, Testing, and Infrastructure</li>
<li>Marketplace</li>
<li>Research</li>
</ol>
<p>The different teams have actively moving on various fronts. The following are their team updates to various ongoing Epics.</p>
<h2 id="client">Client<a aria-hidden="true" tabindex="-1" href="#client" class="internal"> §</a></h2>
<h3 id="epic-wiring-the-proving-system">Epic: Wiring the Proving System<a aria-hidden="true" tabindex="-1" href="#epic-wiring-the-proving-system" class="internal"> §</a></h3>
<ul>
<li>Completed:
<ul>
<li><a href="https://github.com/codex-storage/nim-codex/pull/676" class="external">Wire Sampler to SlotBuilder</a></li>
<li><a href="https://github.com/codex-storage/nim-poseidon2/pull/19" class="external">Exports fromBytes from the library</a></li>
<li><a href="https://github.com/codex-storage/nim-poseidon2/pull/18" class="external">Convert from 32 bytes</a></li>
</ul>
</li>
<li>Ongoing:
<ul>
<li><a href="https://github.com/codex-storage/nim-codex/pull/678" class="external">Dataset expiry</a></li>
<li>Update DataSampler to match updated SlotBuilder</li>
<li>Investigate: way to run codex tests through valgrind or similar tool</li>
<li>Integrate DataSampler in Marketplace callbacks</li>
</ul>
</li>
</ul>
<h3 id="epic-improve-client-stability">Epic: Improve Client Stability<a aria-hidden="true" tabindex="-1" href="#epic-improve-client-stability" class="internal"> §</a></h3>
<ul>
<li>Completed:
<ul>
<li><a href="https://github.com/codex-storage/nim-codex/pull/673" class="external">Update to Chronos V4</a></li>
<li><a href="https://github.com/codex-storage/asynctest/pull/13" class="external">Add exception handling for Chronos V4</a></li>
<li><a href="https://github.com/nim-lang/Nim/pull/23215" class="external">Compiler PR to Chronos V4 bugs</a></li>
</ul>
</li>
<li>Ongoing:
<ul>
<li><a href="https://github.com/codex-storage/nim-codex/pull/680" class="external">Codex CI improvements</a></li>
<li>Track down segfault issue after rebase of Chronos V4 PR</li>
</ul>
</li>
</ul>
<h2 id="marketplace">Marketplace<a aria-hidden="true" tabindex="-1" href="#marketplace" class="internal"> §</a></h2>
<h3 id="epic-end-to-end-testing">Epic: End-to-end Testing<a aria-hidden="true" tabindex="-1" href="#epic-end-to-end-testing" class="internal"> §</a></h3>
<ul>
<li>Completed:
<ul>
2024-01-29 09:10:10 +00:00
<li><a href="https://github.com/codex-storage/codex-testnet-starter" class="external">Add working testnet starter</a></li>
<li>Updates to <a href="https://github.com/codex-storage/codex-frontend" class="external">Codex frontend</a> include:
2024-01-22 06:55:25 +00:00
<ul>
<li>Add node storage information</li>
<li>Upload page updates periodically</li>
<li>Change error messages to appear below input area instead of an alert</li>
</ul>
</li>
2024-01-29 09:10:10 +00:00
<li><a href="https://github.com/codex-storage/codex-storage-proofs-circuits/actions/workflows/generate.yml" class="external">Finish the Github Workflow to compile, build and setup the circuit with included generated proof for testing</a></li>
<li>Initial work on integration of the verifier into smart-contract suite, with passing storage proof tests</li>
<li>Rebase <a href="https://github.com/codex-storage/nim-codex/pull/664" class="external">nim-ethers to the latest version, 0.7.1</a></li>
<li>Rebase <a href="https://github.com/codex-storage/nim-codex/pull/663" class="external">create logging proxy</a> had symbol resolution errors, created <a href="https://github.com/codex-storage/nim-poseidon2/pull/19" class="external">PR for nim-poseidon2</a> to resolve and complete rebase</li>
<li>Rebase <a href="https://github.com/codex-storage/nim-codex/pull/662" class="external">multinode integration test refactor</a>, had to remove upraises annotations from some callbacks in the tests</li>
<li>Refactor <a href="https://github.com/codex-storage/nim-codex/pull/670" class="external">add MarketError</a>, refactoring ethers error handling, reviewing verifier integration in <a href="https://github.com/codex-storage/codex-contracts-eth/pull/79" class="external">codex-contracts-eth</a></li>
<li>Complete <a href="https://github.com/codex-storage/codex-storage-proofs-circuits/actions/workflows/generate.yml" class="external">Github Workflow</a> for testing, worked on integration of verifier into smart-contract suit.</li>
<li>Released <a href="https://github.com/codex-storage/codex-contracts-eth/releases/tag/v0.10.13" class="external">0.10.13</a> with improvements, released <a href="https://github.com/codex-storage/asynctest/releases/tag/0.5.0" class="external">asynctest 0.5.0</a>,</li>
2024-01-22 06:55:25 +00:00
</ul>
</li>
<li>Ongoing:
<ul>
<li>Continue work on Solidity verifier</li>
</ul>
</li>
</ul>
<h2 id="infra">Infra<a aria-hidden="true" tabindex="-1" href="#infra" class="internal"> §</a></h2>
<ul>
<li>Completed:
<ul>
<li><a href="https://github.com/codex-storage/infra-codex/issues/118" class="external">Resolve issues on docs.codex.storage</a></li>
<li><a href="https://github.com/codex-storage/infra-docs/issues/16" class="external">Add documentation about DNS names and convention</a></li>
<li><a href="https://github.com/codex-storage/infra-codex/issues/121" class="external">Check download speed for codex-storage-proofs-circuits</a></li>
<li><a href="https://github.com/codex-storage/infra-codex/issues/120" class="external">Switch from AWS Windows instance to Hetzner</a></li>
</ul>
</li>
<li>Ongoing:
<ul>
<li><a href="https://github.com/codex-storage/infra-codex/issues/122" class="external">Deploy a site to store circuit ceremony files</a></li>
<li><a href="https://github.com/codex-storage/infra-codex/issues/115" class="external">Deploy Codex Storage nodes in Testnet cluster</a></li>
</ul>
</li>
</ul>
<h2 id="research">Research<a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h2>
2024-01-29 09:10:10 +00:00
<pre><code>2024 R&amp;D Goals
1. Proving system and aggregation improvements (folding or lookups)
2. Aggregator/validator design
3. DHT improvements
4. Tokenomics and incentive design
5. Bandwidth incentives
6. Dynamic data (appendable data)
</code></pre>
2024-01-22 06:55:25 +00:00
<ul>
<li>Completed:
<ul>
<li>Debug Groth16 implementation, discovered local bug in [constantine], made a CLI interface (+other improvements) for the Groth16 prover</li>
<li>Research and solve puzzles for ZK hack IV kickoff</li>
<li>Play with binary field used in the new Binius proof system</li>
<li>Catchup with recent research (<a href="https://zkmesh.substack.com/p/zkmesh-dec-2023-recap" class="external">https://zkmesh.substack.com/p/zkmesh-dec-2023-recap</a>)</li>
<li>Explore Nova-Scotia, discussed <a href="https://github.com/codex-storage/nim-poseidon2/pull/17" class="external">hash padding</a></li>
<li>Update <a href="https://github.com/codex-storage/codex-research/blob/796b4937c8e12c639016222a78dbcba641d26cc9/design/Merkle.md" class="external">Merkle tree proposal document</a></li>
<li>Explore <a href="https://ascon.iaik.tugraz.at/index.html" class="external">Ascon hash</a> as a possible replacement for SHA256</li>
</ul>
</li>
<li>Ongoing:
<ul>
<li>PoC Ascon hash implementation in circom (not competitive with other hashes, at least not in circom)</li>
<li>Think about how to implement SHA256 proofs</li>
<li>More learning about lookups and folding</li>
<li>Start working out the details of an idea about how to do efficient proofs of computations on bits (eg. range checks, classical hash functions)</li>
</ul>
</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
2024-01-29 09:10:10 +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="#codex-update-dec-15th---jan-22th" data-for="codex-update-dec-15th---jan-22th">Codex Update Dec 15th - Jan 22th</a></li><li class="depth-1"><a href="#client" data-for="client">Client</a></li><li class="depth-2"><a href="#epic-wiring-the-proving-system" data-for="epic-wiring-the-proving-system">Epic: Wiring the Proving System</a></li><li class="depth-2"><a href="#epic-improve-client-stability" data-for="epic-improve-client-stability">Epic: Improve Client Stability</a></li><li class="depth-1"><a href="#marketplace" data-for="marketplace">Marketplace</a></li><li class="depth-2"><a href="#epic-end-to-end-testing" data-for="epic-end-to-end-testing">Epic: End-to-end Testing</a></li><li class="depth-1"><a href="#infra" data-for="infra">Infra</a></li><li class="depth-1"><a href="#research" data-for="research">Research</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
2024-01-22 06:55:25 +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>