2024-05-13 01:30:51 +00:00
<!DOCTYPE html>
2024-05-14 10:32:23 +00:00
< html > < head > < title > 2024-03-18 Codex Weekly< / title > < meta charSet = "utf-8" / > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta property = "og:title" content = "2024-03-18 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&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 / > < 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-03-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 . 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-05-13 01:30:51 +00:00
< blockquote >
< p > The Codex team continues to make progress with various initiatives to wrap 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 >
< 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.. Here are the updates from different team members and their ongoing work.
Development is currently broken into three distinct teams:< / p >
< / blockquote >
< 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-testing-and-infrastructure" > Client, Testing and Infrastructure< a aria-hidden = "true" tabindex = "-1" href = "#client-testing-and-infrastructure" class = "internal" > §< / a > < / h2 >
< h3 id = "client" > Client< a aria-hidden = "true" tabindex = "-1" href = "#client" class = "internal" > §< / a > < / h3 >
< p > Completed< / p >
< ul >
< li > Marked PR as ready - scheduling erasure encoding and decoding on a thread pool < a href = "https://github.com/codex-storage/nim-codex/pull/716" class = "external" > https://github.com/codex-storage/nim-codex/pull/716< / a > < / li >
< li > Put together < a href = "https://hackmd.io/fA4RXNWsQZSSgYLNcIksEw" class = "external" > reasoning on why the profiler works the way it does< / a > ;< / li >
< li > Closed < a href = "https://github.com/codex-storage/nim-codex/pull/739" class = "external" > a bug re: double lookups when block does not exist< / a > ;< / li >
< / ul >
< p > Ongoing< / p >
< ul >
< li > Started a PR to fix Atlas after SAT integration< / li >
< li > Finishing basic fixes PR in Atlas < a href = "https://github.com/nim-lang/atlas/pull/120" class = "external" > https://github.com/nim-lang/atlas/pull/120< / a > < / li >
< li > Started work on scheduling prover computation on a thread pool< / li >
< li > Fixing comments and rebasing large PRs:< / li >
< li > < a href = "https://github.com/codex-storage/nim-codex/pull/631" class = "external" > https://github.com/codex-storage/nim-codex/pull/631< / a > < / li >
< li > < a href = "https://github.com/codex-storage/nim-codex/pull/678" class = "external" > https://github.com/codex-storage/nim-codex/pull/678< / a > < / li >
< li > Work on Frontend
< ul >
< li > Implemented dropdown list for expiry input< / li >
< li > Started working on caching node information for displayed information< / li >
< / ul >
< / li >
< li > Some triaging of bugs in the Codex repo, still some way to go;< / li >
< / ul >
< h3 id = "infrastructure" > Infrastructure< a aria-hidden = "true" tabindex = "-1" href = "#infrastructure" class = "internal" > §< / a > < / h3 >
< p > Completed< / p >
< ul >
< li > ✅ < a href = "https://github.com/codex-storage/infra-codex/issues/130" class = "external" > Install VictoriaMetrics in Testnet cluster #130< / a > < / li >
< li > ✅ < a href = "https://github.com/codex-storage/infra-codex/issues/136" class = "external" > Adjust number of nodes in Testnet cluster #136< / a > < / li >
< li > ✅ < a href = "https://github.com/codex-storage/infra-codex/issues/138" class = "external" > Redeploy Testnet cluster components #138< / a > < / li >
< li > ✅ < a href = "https://github.com/codex-storage/infra-codex/issues/135" class = "external" > Install ELK in Testnet cluster #135< / a > < / li >
< / ul >
< p > Ongoing< / p >
< ul >
< li > <EFBFBD> ️ < a href = "https://github.com/codex-storage/infra-codex/issues/141" class = "external" > Install Oauth2 proxy in Testnet cluster #141< / a > < / li >
< li > <EFBFBD> ️ < a href = "https://github.com/codex-storage/infra-codex/issues/57" class = "external" > Deploy Testnet cluster components #57< / a > < / li >
< / ul >
< h2 id = "marketplace" > Marketplace< a aria-hidden = "true" tabindex = "-1" href = "#marketplace" class = "internal" > §< / a > < / h2 >
< p > Completed< / p >
< ul >
< li > Discussions about ceremony files retrival< / li >
< li > PR Reviews:
< ul >
< li > < a href = "https://github.com/codex-storage/codex-storage-proofs-circuits/pull/7" class = "external" > https://github.com/codex-storage/codex-storage-proofs-circuits/pull/7< / a > < / li >
< li > < a href = "https://github.com/codex-storage/codex-contracts-eth/pull/83" class = "external" > https://github.com/codex-storage/codex-contracts-eth/pull/83< / a > < / li >
< li > < a href = "https://github.com/codex-storage/nim-codex/pull/730" class = "external" > https://github.com/codex-storage/nim-codex/pull/730< / a > < / li >
< / ul >
< / li >
< / ul >
< p > Ongoing< / p >
< ul >
< li > WIP on merging < a href = "https://github.com/codex-storage/nim-codex/pull/692" class = "external" > https://github.com/codex-storage/nim-codex/pull/692< / a > < / li >
< li > WIP on persistant availabilities< / li >
< / ul >
< h2 id = "research" > Research< a aria-hidden = "true" tabindex = "-1" href = "#research" class = "internal" > §< / a > < / h2 >
< pre > < code > 2024 R& 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)
7. Encryption
< / code > < / pre >
< p > Completed< / p >
< ul >
< li > EthResearch post on sampling techniques (< a href = "https://ethresear.ch/t/lossydas-lossy-incremental-and-diagonal-sampling-for-data-availability/18963" class = "external" > https://ethresear.ch/t/lossydas-lossy-incremental-and-diagonal-sampling-for-data-availability/18963< / a > )< / li >
< li > DAS simulator (< a href = "https://github.com/codex-storage/das-research" class = "external" > https://github.com/codex-storage/das-research< / a > ) paper prep (calls + work)< / li >
< li > Shadow based P2P emulator for DAS (< a href = "https://github.com/cskiraly/dst-gossipsub-test-node/tree/FullDAS" class = "external" > https://github.com/cskiraly/dst-gossipsub-test-node/tree/FullDAS< / a > )< / li >
< li > Looked into how circom handles custom gates (tldr: it’ s easy to abuse for our own purposes, but snarkjs doesn’ t implement anything)< / li >
< li > Minor refactor the proof circuit < a href = "https://github.com/codex-storage/codex-storage-proofs-circuits/pull/7" class = "external" > PR< / a > < / li >
< / ul >
< p > Ongoing< / p >
< ul >
< li > Started working on prototyping for the new proof system< / 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 = "{"drag":true,"zoom":true,"depth":1,"scale":1.1,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}" > < / 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 = "{"drag":true,"zoom":true,"depth":-1,"scale":0.9,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}" > < / 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-mar-12th---mar-18th" data-for = "codex-update-mar-12th---mar-18th" > Codex Update Mar 12th - Mar 18th< / a > < / li > < li class = "depth-1" > < a href = "#client-testing-and-infrastructure" data-for = "client-testing-and-infrastructure" > Client, Testing and Infrastructure< / a > < / li > < li class = "depth-2" > < a href = "#client" data-for = "client" > Client< / a > < / li > < li class = "depth-2" > < a href = "#infrastructure" data-for = "infrastructure" > Infrastructure< / a > < / li > < li class = "depth-1" > < a href = "#marketplace" data-for = "marketplace" > Marketplace< / 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" > / / q u a r t z / c o m p o n e n t s / s c r i p t s / q u a r t z / c o m p o n e n t s / s c r i p t s / c a l l o u t . i n l i n e . t s
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 >