Update documentation

This commit is contained in:
2022-11-29 00:57:36 +00:00
parent ca601b09a1
commit 5ea6511e5e
57 changed files with 205 additions and 1446 deletions

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -251,6 +251,26 @@ if (!doNotTrack) {
<div class="section">
<p class="meta">
Nov 28, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
@ -276,26 +296,6 @@ Nov 16, 2022
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/overview/" class="internal-link" data-src="/roadmap/consensus/overview/">Consensus Work</a></h3>
@ -544,7 +544,7 @@ Aug 19, 2022
<div class="section">
<p class="meta">
Nov 16, 2022
Nov 28, 2022
</p>

View File

@ -103,7 +103,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -67,7 +67,7 @@ Required Roles Lead Developer (filled) </description>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/</guid>
<description>Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?</description>
<description>Network Requirements and Assumptions What assumptions do we need Waku to fulfill? - Corey Moh: Waku needs to fill the following requirements, taken from the Carnot paper:</description>
</item>
<item>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

46
linkmap
View File

@ -1,29 +1,29 @@
/private/notes/callouts/index.{html} /private/notes/callouts/
/private/notes/editing/index.{html} /private/notes/editing/
/private/notes/hosting/index.{html} /private/notes/hosting/
/private/notes/search/index.{html} /private/notes/search/
/private/notes/updating/index.{html} /private/notes/updating/
/index.html /
/private/notes/preview-changes/index.{html} /private/notes/preview-changes/
/private/notes/troubleshooting/index.{html} /private/notes/troubleshooting/
/roles/zero-knowledge-research-engineer/index.{html} /roles/zero-knowledge-research-engineer/
/roadmap/consensus/theory/snow-family/index.{html} /roadmap/consensus/theory/snow-family/
/roadmap/virtual-machines/overview/index.{html} /roadmap/virtual-machines/overview/
/private/notes/ignore-notes/index.{html} /private/notes/ignore-notes/
/private/notes/setup/index.{html} /private/notes/setup/
/roadmap/consensus/candidates/glacier/index.{html} /roadmap/consensus/candidates/glacier/
/roadmap/consensus/development/overview/index.{html} /roadmap/consensus/development/overview/
/roadmap/consensus/development/prototypes/index.{html} /roadmap/consensus/development/prototypes/
/private/notes/CJK-+-Latex-Support-%E6%B5%8B%E8%AF%95/index.{html} /private/notes/CJK-+-Latex-Support-%E6%B5%8B%E8%AF%95/
/private/notes/obsidian/index.{html} /private/notes/obsidian/
/requirements/overview/index.{html} /requirements/overview/
/private/notes/philosophy/index.{html} /private/notes/philosophy/
/private/notes/preview-changes/index.{html} /private/notes/preview-changes/
/roadmap/consensus/candidates/glacier/index.{html} /roadmap/consensus/candidates/glacier/
/roles/distributed-systems-researcher/index.{html} /roles/distributed-systems-researcher/
/roles/rust-developer/index.{html} /roles/rust-developer/
/private/notes/config/index.{html} /private/notes/config/
/private/notes/showcase/index.{html} /private/notes/showcase/
/roadmap/consensus/candidates/carnot/FAQ/index.{html} /roadmap/consensus/candidates/carnot/FAQ/
/roadmap/consensus/overview/index.{html} /roadmap/consensus/overview/
/private/notes/custom-Domain/index.{html} /private/notes/custom-Domain/
/roadmap/consensus/candidates/carnot/overview/index.{html} /roadmap/consensus/candidates/carnot/overview/
/roles/distributed-systems-researcher/index.{html} /roles/distributed-systems-researcher/
/private/notes/search/index.{html} /private/notes/search/
/private/notes/custom-Domain/index.{html} /private/notes/custom-Domain/
/private/notes/obsidian/index.{html} /private/notes/obsidian/
/roadmap/consensus/overview/index.{html} /roadmap/consensus/overview/
/index.html /
/private/notes/callouts/index.{html} /private/notes/callouts/
/private/notes/hosting/index.{html} /private/notes/hosting/
/roadmap/consensus/theory/overview/index.{html} /roadmap/consensus/theory/overview/
/private/notes/editing/index.{html} /private/notes/editing/
/private/notes/ignore-notes/index.{html} /private/notes/ignore-notes/
/private/notes/philosophy/index.{html} /private/notes/philosophy/
/private/notes/setup/index.{html} /private/notes/setup/
/requirements/overview/index.{html} /requirements/overview/
/roles/zero-knowledge-research-engineer/index.{html} /roles/zero-knowledge-research-engineer/
/roadmap/virtual-machines/overview/index.{html} /roadmap/virtual-machines/overview/
/private/notes/troubleshooting/index.{html} /private/notes/troubleshooting/
/private/notes/updating/index.{html} /private/notes/updating/
/roadmap/consensus/candidates/carnot/FAQ/index.{html} /roadmap/consensus/candidates/carnot/FAQ/
/roadmap/consensus/development/overview/index.{html} /roadmap/consensus/development/overview/
/roadmap/consensus/development/prototypes/index.{html} /roadmap/consensus/development/prototypes/
/roadmap/consensus/theory/snow-family/index.{html} /roadmap/consensus/theory/snow-family/

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -103,7 +103,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -5,7 +5,7 @@
<meta charset="UTF-8" />
<meta
name="description"
content="Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?"
content="Network Requirements and Assumptions What assumptions do we need Waku to fulfill? - Corey Moh: Waku needs to fill the following requirements, taken from the Carnot paper:"
/>
<title>
Frequently Asked Questions
@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -241,7 +241,7 @@ if (!doNotTrack) {
<h1>Frequently Asked Questions</h1>
<p class="meta">
Last updated
Nov 16, 2022
Nov 28, 2022
@ -262,6 +262,11 @@ Nov 16, 2022
<summary>Table of Contents</summary>
<nav id="TableOfContents">
<ol>
<li><a href="#network-requirements-and-assumptions">Network Requirements and Assumptions</a>
<ol>
<li><a href="#what-assumptions-do-we-need-waku-to-fulfill---corey">What assumptions do we need Waku to fulfill? - Corey</a></li>
</ol>
</li>
<li><a href="#data-distribution">Data Distribution</a>
<ol>
<li><a href="#how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy">How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? Has that been looked into? - Dmitriy</a></li>
@ -284,6 +289,11 @@ Nov 16, 2022
<li><a href="#also-how-do-you-reward-online-validators--punish-offline-ones-if-you-cant-prove-at-the-block-level-that-someone-attested-or-not---tanguy">Also, how do you reward online validators / punish offline ones if you can&rsquo;t prove at the block level that someone attested or not? - Tanguy</a></li>
</ol>
</li>
<li><a href="#synchronicity">Synchronicity</a>
<ol>
<li><a href="#how-to-guarantee-synchronicity-in-particular-how-to-avoid-that-in-a-big-network-different-nodes-see-a-proposal-with-2c1-votes-but-different-votes-and-thus-different-random-seed---giacomo">How to guarantee synchronicity. In particular how to avoid that in a big network different nodes see a proposal with 2c+1 votes but different votes and thus different random seed - Giacomo</a></li>
</ol>
</li>
</ol>
</nav>
</details>
@ -371,6 +381,48 @@ Nov 16, 2022
@ -392,6 +444,17 @@ Nov 16, 2022
<a href="#network-requirements-and-assumptions"><h2 id="network-requirements-and-assumptions"><span class="hanchor" ariaLabel="Anchor"># </span>Network Requirements and Assumptions</h2></a>
<a href="#what-assumptions-do-we-need-waku-to-fulfill---corey"><h3 id="what-assumptions-do-we-need-waku-to-fulfill---corey"><span class="hanchor" ariaLabel="Anchor"># </span>What assumptions do we need Waku to fulfill? - Corey</h3></a>
<blockquote>
<p><code>Moh:</code> Waku needs to fill the following requirements, taken from the Carnot paper:</p>
</blockquote>
<blockquote>
<p><strong>Definition 3</strong> (Probabilistic Reliable Dissemination). <em>After the GST, and when the leader is correct, all the correct nodes deliver the proposal sent by the leader (w.h.p).</em></p>
</blockquote>
<blockquote>
<p><strong>Definition 4</strong> (Probabilistic Fulfillment). <em>After the GST, and when the current and previous leaders are correct, the number of votes collected by teh current leader is $2c+1$ (w.h.p).</em></p>
</blockquote>
<a href="#data-distribution"><h2 id="data-distribution"><span class="hanchor" ariaLabel="Anchor"># </span>Data Distribution</h2></a>
<a href="#how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy"><h3 id="how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy"><span class="hanchor" ariaLabel="Anchor"># </span>How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? Has that been looked into? - Dmitriy</h3></a>
<blockquote>
@ -431,6 +494,17 @@ Nov 16, 2022
</blockquote>
<blockquote>
<p>An honest node should wait for a specific number of children votes (to make sure everyone is voting on the same proposal) before voting but does not need to provide any cryptographic proof. Though we build a threshold signature from root committee members and its children but not from the whole tree. As long as enough number of nodes follow the the protocol we should be fine. I am working on protocol proofs. Also I think bugs should be discovered during development and testing phase. Changing protocol to detect potential bug might not be a good practice.</p>
</blockquote>
<a href="#synchronicity"><h2 id="synchronicity"><span class="hanchor" ariaLabel="Anchor"># </span>Synchronicity</h2></a>
<a href="#how-to-guarantee-synchronicity-in-particular-how-to-avoid-that-in-a-big-network-different-nodes-see-a-proposal-with-2c1-votes-but-different-votes-and-thus-different-random-seed---giacomo"><h3 id="how-to-guarantee-synchronicity-in-particular-how-to-avoid-that-in-a-big-network-different-nodes-see-a-proposal-with-2c1-votes-but-different-votes-and-thus-different-random-seed---giacomo"><span class="hanchor" ariaLabel="Anchor"># </span>How to guarantee synchronicity. In particular how to avoid that in a big network different nodes see a proposal with 2c+1 votes but different votes and thus different random seed - Giacomo</h3></a>
<blockquote>
<p><code>Moh:</code> The assumption is that there exists some known finite time bound Δ and a special event called GST (Global Stabilization Time) such that:</p>
</blockquote>
<blockquote>
<p>The adversary must cause the GST event to eventually happen after some unknown finite time. Any message sent at time x must be delivered by time $\delta + \text{max}(x,GST)$. In the Partial synchrony model, the system behaves asynchronously till GST and synchronously after GST.</p>
</blockquote>
<blockquote>
<p>Moreover, votes travel one level at a time from tree leaves to the tree root. We only need the proof of votes of root+child committees to conclude with a high probability that the majority of nodes have voted.</p>
</blockquote>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -1,510 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="description"
content="Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?"
/>
<title>
Frequently Asked Questions
</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" type="image/png" href="https://roadmap.logos.co//icon.png" />
<link href="https://roadmap.logos.co/styles.7fdbd93987bfba941d84b8a4050caaba.min.css" rel="stylesheet" />
<link href="https://roadmap.logos.co/styles/_light_syntax.86a48a52faebeaaf42158b72922b1c90.min.css" rel="stylesheet" id="theme-link">
<script src="https://roadmap.logos.co/js/darkmode.4ee460c38f180dd44f1565712a1f3c8a.min.js"></script>
<script src="https://roadmap.logos.co/js/util.9825137f5e7825e8553c68ce39ac9e44.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@floating-ui/core@0.7.3"></script>
<script src="https://unpkg.com/@floating-ui/dom@0.5.4"></script>
<script src="https://roadmap.logos.co/js/popover.37b1455b8f0603154072b9467132c659.min.js"></script>
<script src="https://roadmap.logos.co/js/code-title.b35124ad8db0ba37162b886afb711cbc.min.js"></script>
<script src="https://roadmap.logos.co/js/clipboard.c20857734e53a3fb733b7443879efa61.min.js"></script>
<script src="https://roadmap.logos.co/js/callouts.7723cac461d613d118ee8bb8216b9838.min.js"></script>
<script>
const BASE_URL = "https://roadmap.logos.co/"
const fetchData = Promise.all([
fetch("https:\/\/roadmap.logos.co\/indices\/linkIndex.a731878fce0e7f463fcc42a3bbd02e29.min.json")
.then(data => data.json())
.then(data => ({
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.3090347d4d44a2c11d6534e77b456ec8.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
index,
links,
content,
}))
const render = () => {
const siteBaseURL = new URL(BASE_URL);
const pathBase = siteBaseURL.pathname;
const pathWindow = window.location.pathname;
const isHome = pathBase == pathWindow;
addCopyButtons();
addTitleToCodeBlocks();
addCollapsibleCallouts();
initPopover(
"https://roadmap.logos.co",
true ,
true
)
const footer = document.getElementById("footer")
if (footer) {
const container = document.getElementById("graph-container")
if (!container) return requestAnimationFrame(render)
container.textContent = ""
const drawGlobal = isHome && false ;
drawGraph(
"https://roadmap.logos.co",
drawGlobal,
[{"/moc":"#4388cc"}],
drawGlobal ? {"centerForce":1,"depth":-1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.5,"linkDistance":1,"opacityScale":3,"repelForce":1,"scale":1.4} : {"centerForce":1,"depth":1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.6,"linkDistance":1,"opacityScale":3,"repelForce":2,"scale":1.2}
);
}
}
const init = (doc = document) => {
addCopyButtons();
addTitleToCodeBlocks();
renderMathInElement(doc.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
],
throwOnError : false
});
};
</script>
<script type="module">
import { attachSPARouting } from "https:\/\/roadmap.logos.co\/js\/router.9d4974281069e9ebb189f642ae1e3ca2.min.js"
attachSPARouting(init, render)
</script>
</head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XYFD95KB4J"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XYFD95KB4J', { 'anonymize_ip': false });
}
</script>
<body>
<div id="search-container">
<div id="search-space">
<input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search"
placeholder="Search for something...">
<div id="results-container">
</div>
</div>
</div>
<script defer src="https://roadmap.logos.co/js/semantic-search.d4032d4a6a967938235ae76d08a55b46.min.js"></script>
<div class="singlePage">
<header>
<h1 id="page-title"><a href="https://roadmap.logos.co/">Logos Technical Roadmap</a></h1>
<div class="spacer"></div>
<div id="search-icon">
<p>Search</p>
<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 Icon</title><desc id="desc">Icon to open search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"/><circle cx="8" cy="8" r="7"/></g></svg>
</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" xmlns:xlink="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;" xml:space="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,25z" />
</svg>
</label>
<label id="toggle-label-dark" for='darkmode-toggle' tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background='new 0 0 100 100'" xml:space="preserve">
<title>Dark Mode</title>
<path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z" />
</svg>
</label>
</div>
</header>
<article>
<h1>Frequently Asked Questions</h1>
<p class="meta">
Last updated
Oct 28, 2022
<a href="https://github.com/jackyzha0/quartz/tree/hugo/content/roadmap/consensus/candidates/logos-bft/FAQ.md" rel="noopener">Edit Source</a>
</p>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/LogosBFT/">Logos bft</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
<aside class="mainTOC">
<details >
<summary>Table of Contents</summary>
<nav id="TableOfContents">
<ol>
<li><a href="#data-distribution">Data Distribution</a>
<ol>
<li><a href="#how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy">How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? Has that been looked into? - Dmitriy</a></li>
<li><a href="#how-much-data-should-a-given-block-be-are-there-limits-on-this-and-if-so-what-are-they-and-what-do-they-depend-on---dmitriy">How much data should a given block be. Are there limits on this and if so, what are they and what do they depend on? - Dmitriy</a></li>
</ol>
</li>
<li><a href="#signature-propagation">Signature Propagation</a>
<ol>
<li><a href="#who-sends-the-signatures-up-from-a-given-committee-do-that-have-any-leadered-power-within-the-committee---tanguy">Who sends the signatures up from a given committee? Do that have any leadered power within the committee? - Tanguy</a></li>
</ol>
</li>
<li><a href="#network-scale">Network Scale</a>
<ol>
<li><a href="#what-is-our-expected-minimum-number-of-nodes-within-the-network---dmitriy">What is our expected minimum number of nodes within the network? - Dmitriy</a></li>
</ol>
</li>
<li><a href="#byzantine-behavior">Byzantine Behavior</a>
<ol>
<li><a href="#can-we-also-consider-a-flavor-that-adds-attestationattribution-to-misbehaving-nodes-that-will-come-at-a-price-but-there-might-be-a-set-of-use-cases-which-would-like-to-have-lower-performance-with-strong-attribution-not-saying-that-it-must-be-part-of-the-initial-design-but-can-be-think-throughadded-later---marcin">Can we also consider a flavor that adds attestation/attribution to misbehaving nodes? That will come at a price but there might be a set of use cases which would like to have lower performance with strong attribution. Not saying that it must be part of the initial design, but can be think-through/added later. - Marcin</a></li>
<li><a href="#also-how-do-you-reward-online-validators--punish-offline-ones-if-you-cant-prove-at-the-block-level-that-someone-attested-or-not---tanguy">Also, how do you reward online validators / punish offline ones if you can&rsquo;t prove at the block level that someone attested or not? - Tanguy</a></li>
</ol>
</li>
</ol>
</nav>
</details>
</aside>
<a href="#data-distribution"><h2 id="data-distribution"><span class="hanchor" ariaLabel="Anchor"># </span>Data Distribution</h2></a>
<a href="#how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy"><h3 id="how-much-failure-rate-of-erasure-code-transmission-are-we-expecting-basically-what-are-the-ec-coding-parameters-that-we-expect-to-be-sending-such-that-we-have-some-failure-rate-of-transmission-has-that-been-looked-into---dmitriy"><span class="hanchor" ariaLabel="Anchor"># </span>How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? Has that been looked into? - Dmitriy</h3></a>
<blockquote>
<p><code>Moh:</code> This is a great question and it points to the tension between the failure rate vs overhead. We have briefly looked into this (today me and Marcin @madxor discussed such cases), but we havent thoroughly analyzed this. In our case, the rate of failure also depends on committee size. We look into $10^{-3}$ to $10^{-6}$ probability of failure. And in this case, the coding overhead can be somewhere between 200%-500% approximately. This means for a committee size of 500 (while expecting receipt of messages from 251 correct nodes), for a failure rate of $10^{-6}$ a single node has to send &gt; 6Mb of data for a 1Mb of actual data. Though 5x overhead is large, it still prevent us from sending/receiving 500 Mb of data in return for a failure probability of 1 proposal out of 1 million. From the protocol perspective, we can address EC failures in multiple ways: a: Since the root committee only forwards the coded chunks only when they have successfully rebuilt the block. This means the root committee can be contacted to download additional coded chunks to decode the block. b: We allow this failure and let the leader be replaced but since there is proof that the failure is due to the reason that a decoder failed to reconstruct the block, therefore, the leader cannot be punished (if we chose to employ punishment in PoS).</p>
</blockquote>
<a href="#how-much-data-should-a-given-block-be-are-there-limits-on-this-and-if-so-what-are-they-and-what-do-they-depend-on---dmitriy"><h3 id="how-much-data-should-a-given-block-be-are-there-limits-on-this-and-if-so-what-are-they-and-what-do-they-depend-on---dmitriy"><span class="hanchor" ariaLabel="Anchor"># </span>How much data should a given block be. Are there limits on this and if so, what are they and what do they depend on? - Dmitriy</h3></a>
<blockquote>
<p><code>Moh:</code> This question can be answered during simulations and experiments over links of different bandwidths and latencies. We will test the protocol performances with different block sizes. As we know increasing the block size results in increased throughput as well as latency. What is the most appropriate block size can be determined once we observe the tradeoff between throughput vs latency.</p>
</blockquote>
<a href="#signature-propagation"><h2 id="signature-propagation"><span class="hanchor" ariaLabel="Anchor"># </span>Signature Propagation</h2></a>
<a href="#who-sends-the-signatures-up-from-a-given-committee-do-that-have-any-leadered-power-within-the-committee---tanguy"><h3 id="who-sends-the-signatures-up-from-a-given-committee-do-that-have-any-leadered-power-within-the-committee---tanguy"><span class="hanchor" ariaLabel="Anchor"># </span>Who sends the signatures up from a given committee? Do that have any leadered power within the committee? - Tanguy</h3></a>
<blockquote>
<p><code>Moh:</code> Each node in a committee multicasts its vote to all members of the parent committee. Since the size of the vote is small the bit complexity will be low. Introducing a leader within each committee will create a single point of failure within each committee. This is why we avoid maintaining a leader within each committee</p>
</blockquote>
<a href="#network-scale"><h2 id="network-scale"><span class="hanchor" ariaLabel="Anchor"># </span>Network Scale</h2></a>
<a href="#what-is-our-expected-minimum-number-of-nodes-within-the-network---dmitriy"><h3 id="what-is-our-expected-minimum-number-of-nodes-within-the-network---dmitriy"><span class="hanchor" ariaLabel="Anchor"># </span>What is our expected minimum number of nodes within the network? - Dmitriy</h3></a>
<blockquote>
<p><code>Moh:</code> For a small number of nodes we can have just a single committee. But I am not sure how many nodes will join our network</p>
</blockquote>
<a href="#byzantine-behavior"><h2 id="byzantine-behavior"><span class="hanchor" ariaLabel="Anchor"># </span>Byzantine Behavior</h2></a>
<a href="#can-we-also-consider-a-flavor-that-adds-attestationattribution-to-misbehaving-nodes-that-will-come-at-a-price-but-there-might-be-a-set-of-use-cases-which-would-like-to-have-lower-performance-with-strong-attribution-not-saying-that-it-must-be-part-of-the-initial-design-but-can-be-think-throughadded-later---marcin"><h3 id="can-we-also-consider-a-flavor-that-adds-attestationattribution-to-misbehaving-nodes-that-will-come-at-a-price-but-there-might-be-a-set-of-use-cases-which-would-like-to-have-lower-performance-with-strong-attribution-not-saying-that-it-must-be-part-of-the-initial-design-but-can-be-think-throughadded-later---marcin"><span class="hanchor" ariaLabel="Anchor"># </span>Can we also consider a flavor that adds attestation/attribution to misbehaving nodes? That will come at a price but there might be a set of use cases which would like to have lower performance with strong attribution. Not saying that it must be part of the initial design, but can be think-through/added later. - Marcin</h3></a>
<blockquote>
<p><code>Moh:</code> Attestation to misbehaving nodes is part of this protocol. For example, if a node sends an incorrect vote or if a leader proposes an invalid transaction, then this proof will be shared with the network to punish the misbehaving nodes (Though currently this is not part of pseudocode). But it is not possible to reliably prove the attestation of not participation.</p>
</blockquote>
<blockquote>
<p><code>Marcin:</code> Great, and definitely, we cannot attest that a node was not participating - I was not suggesting that;). But we can also think about extending the attestation for lazy-participants case (if its not already part of the protocol).</p>
</blockquote>
<blockquote>
<p><code>Moh:</code> OK, thanks for the clarification 😁 . Of course we can have this feature to forward the proof of participation of successor committees. In the first version of LogosBFT we had this feature as a sliding window. One could choose the size of the window (in terms of tree levels) for which a node should forward the proof of participation. In the most recent version the size of sliding window is 0. And it is 1 for the root committee. It means root committee members have to forward the proof of participation of their child committee members. Since I was able to prove protocol correctness without forwarding the proofs so we avoid it. But it can be part of the protocol without any significant changes in the protocol</p>
</blockquote>
<blockquote>
<p>If the proof scheme is efficient ( as the results you presented) in practice and the cost of creating and verifying proofs is not significant then actually adding proofs can be good. But not required.</p>
</blockquote>
<a href="#also-how-do-you-reward-online-validators--punish-offline-ones-if-you-cant-prove-at-the-block-level-that-someone-attested-or-not---tanguy"><h3 id="also-how-do-you-reward-online-validators--punish-offline-ones-if-you-cant-prove-at-the-block-level-that-someone-attested-or-not---tanguy"><span class="hanchor" ariaLabel="Anchor"># </span>Also, how do you reward online validators / punish offline ones if you can&rsquo;t prove at the block level that someone attested or not? - Tanguy</h3></a>
<blockquote>
<p><code>Moh:</code> This is very tricky and so far no one has done it right (to my knowledge). Current reward mechanism for attestation, favours fast nodes.This means if malicious nodes in the network are fast, they can increase their stake in the network faster than the honest nodes and eventually take control of the network. Or in the case of Ethereum a Byzantine leader can include signature of malicious nodes more frequently in the proof of attestation, hence malicious nodes will be rewarded more frequently. Also let me add that I don&rsquo;t have definite answer to your question currently, but I think by revising the protocol assumptions, incentive mechanism and using a game theoretical approach this problem can be resolved.</p>
</blockquote>
<blockquote>
<p>An honest node should wait for a specific number of children votes (to make sure everyone is voting on the same proposal) before voting but does not need to provide any cryptographic proof. Though we build a threshold signature from root committee members and its children but not from the whole tree. As long as enough number of nodes follow the the protocol we should be fine. I am working on protocol proofs. Also I think bugs should be discovered during development and testing phase. Changing protocol to detect potential bug might not be a good practice.</p>
</blockquote>
</article>
<hr/>
<div class="page-end" id="footer">
<div class="backlinks-container">
<h3>Backlinks</h3>
<ul class="backlinks">
<li>
<a href="/roadmap/consensus/candidates/logos-bft/overview/" data-ctx="FAQ" data-src="/roadmap/consensus/candidates/logos-bft/overview" class="internal-link">Logos BFT Overview</a>
</li>
</ul>
</div>
<div>
<script
src="https://cdn.jsdelivr.net/npm/d3@6.7.0/dist/d3.min.js"
integrity="sha256-+7jaYCp29O1JusNWHaYtgUn6EhuP0VaFuswhNV06MyI="
crossorigin="anonymous"
></script>
<h3>Interactive Graph</h3>
<div id="graph-container"></div>
<style>
:root {
--g-node: var(--secondary);
--g-node-active: var(--primary);
--g-node-inactive: var(--visited);
--g-link: var(--outlinegray);
--g-link-active: #5a7282;
}
</style>
<script src="https://roadmap.logos.co/js/graph.abd4bc2af3869a96524d7d23b76152c7.js"></script>
</div>
</div>
<div id="contact_buttons">
<footer>
<p>Made by Logos using <a href="https://github.com/jackyzha0/quartz">Quartz</a>, © 2022</p>
<ul>
<li><a href="https://roadmap.logos.co/">Home</a></li>
<li><a href="https://github.com/logos-co/roadmap">Github</a></li></ul>
</footer>
</div>
</div>
</body>
</html>

View File

@ -1,461 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="description"
content="Logos BFT is a consensus candidate for the Logos Network that utilizes Fountain Codes and a committees tree structure to optimize message propagation in the presence of a large number of nodes, while maintaining high througput and fast finality."
/>
<title>
Logos BFT Overview
</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" type="image/png" href="https://roadmap.logos.co//icon.png" />
<link href="https://roadmap.logos.co/styles.7fdbd93987bfba941d84b8a4050caaba.min.css" rel="stylesheet" />
<link href="https://roadmap.logos.co/styles/_light_syntax.86a48a52faebeaaf42158b72922b1c90.min.css" rel="stylesheet" id="theme-link">
<script src="https://roadmap.logos.co/js/darkmode.4ee460c38f180dd44f1565712a1f3c8a.min.js"></script>
<script src="https://roadmap.logos.co/js/util.9825137f5e7825e8553c68ce39ac9e44.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@floating-ui/core@0.7.3"></script>
<script src="https://unpkg.com/@floating-ui/dom@0.5.4"></script>
<script src="https://roadmap.logos.co/js/popover.37b1455b8f0603154072b9467132c659.min.js"></script>
<script src="https://roadmap.logos.co/js/code-title.b35124ad8db0ba37162b886afb711cbc.min.js"></script>
<script src="https://roadmap.logos.co/js/clipboard.c20857734e53a3fb733b7443879efa61.min.js"></script>
<script src="https://roadmap.logos.co/js/callouts.7723cac461d613d118ee8bb8216b9838.min.js"></script>
<script>
const BASE_URL = "https://roadmap.logos.co/"
const fetchData = Promise.all([
fetch("https:\/\/roadmap.logos.co\/indices\/linkIndex.a731878fce0e7f463fcc42a3bbd02e29.min.json")
.then(data => data.json())
.then(data => ({
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.3090347d4d44a2c11d6534e77b456ec8.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
index,
links,
content,
}))
const render = () => {
const siteBaseURL = new URL(BASE_URL);
const pathBase = siteBaseURL.pathname;
const pathWindow = window.location.pathname;
const isHome = pathBase == pathWindow;
addCopyButtons();
addTitleToCodeBlocks();
addCollapsibleCallouts();
initPopover(
"https://roadmap.logos.co",
true ,
true
)
const footer = document.getElementById("footer")
if (footer) {
const container = document.getElementById("graph-container")
if (!container) return requestAnimationFrame(render)
container.textContent = ""
const drawGlobal = isHome && false ;
drawGraph(
"https://roadmap.logos.co",
drawGlobal,
[{"/moc":"#4388cc"}],
drawGlobal ? {"centerForce":1,"depth":-1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.5,"linkDistance":1,"opacityScale":3,"repelForce":1,"scale":1.4} : {"centerForce":1,"depth":1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.6,"linkDistance":1,"opacityScale":3,"repelForce":2,"scale":1.2}
);
}
}
const init = (doc = document) => {
addCopyButtons();
addTitleToCodeBlocks();
renderMathInElement(doc.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
],
throwOnError : false
});
};
</script>
<script type="module">
import { attachSPARouting } from "https:\/\/roadmap.logos.co\/js\/router.9d4974281069e9ebb189f642ae1e3ca2.min.js"
attachSPARouting(init, render)
</script>
</head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XYFD95KB4J"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XYFD95KB4J', { 'anonymize_ip': false });
}
</script>
<body>
<div id="search-container">
<div id="search-space">
<input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search"
placeholder="Search for something...">
<div id="results-container">
</div>
</div>
</div>
<script defer src="https://roadmap.logos.co/js/semantic-search.d4032d4a6a967938235ae76d08a55b46.min.js"></script>
<div class="singlePage">
<header>
<h1 id="page-title"><a href="https://roadmap.logos.co/">Logos Technical Roadmap</a></h1>
<div class="spacer"></div>
<div id="search-icon">
<p>Search</p>
<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 Icon</title><desc id="desc">Icon to open search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"/><circle cx="8" cy="8" r="7"/></g></svg>
</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" xmlns:xlink="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;" xml:space="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,25z" />
</svg>
</label>
<label id="toggle-label-dark" for='darkmode-toggle' tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background='new 0 0 100 100'" xml:space="preserve">
<title>Dark Mode</title>
<path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z" />
</svg>
</label>
</div>
</header>
<article>
<h1>Logos BFT Overview</h1>
<p class="meta">
Last updated
Oct 28, 2022
<a href="https://github.com/jackyzha0/quartz/tree/hugo/content/roadmap/consensus/candidates/logos-bft/overview.md" rel="noopener">Edit Source</a>
</p>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
<li><a href="https://roadmap.logos.co/tags/candidate/">Candidate</a></li>
<li><a href="https://roadmap.logos.co/tags/LogosBFT/">Logos bft</a></li>
</ul>
<aside class="mainTOC">
<details >
<summary>Table of Contents</summary>
<nav id="TableOfContents">
<ol>
<li><a href="#work-streams">Work Streams</a>
<ol>
<li><a href="#current-state-of-the-art">Current State of the Art</a></li>
<li><a href="#committee-tree-overlay">Committee Tree Overlay</a></li>
<li><a href="#random-beacon">Random Beacon</a></li>
<li><a href="#erasure-coding-lt-codes--fountain-codes--raptor-codes">Erasure Coding (LT Codes / Fountain Codes / Raptor Codes)</a></li>
</ol>
</li>
</ol>
</nav>
</details>
</aside>
<p>Logos BFT is a
<a
rel="noopener" class="internal-link broken"
data-src="/consensus/index">consensus</a> candidate for the Logos Network that utilizes Fountain Codes and a committees tree structure to optimize message propagation in the presence of a large number of nodes, while maintaining high througput and fast finality.</p>
<ul>
<li>
<a
href="/roadmap/consensus/candidates/logos-bft/FAQ/"
rel="noopener" class="internal-link"
data-src="/roadmap/consensus/candidates/logos-bft/FAQ/">FAQ</a>: Here is a page that tracks various questions people have around LogosBFT.</li>
</ul>
<a href="#work-streams"><h2 id="work-streams"><span class="hanchor" ariaLabel="Anchor"># </span>Work Streams</h2></a>
<a href="#current-state-of-the-art"><h3 id="current-state-of-the-art"><span class="hanchor" ariaLabel="Anchor"># </span>Current State of the Art</h3></a>
<p>An ongoing survey of the current state of the art around Consensus Mechanisms and their peripheral dependencies is beign conducted by Tuanir, and can be found in the following WIP Overleaf document:</p>
<ul>
<li>
<a href="https://www.overleaf.com/project/633acc1acaa6ffe456d1ab1f" rel="noopener">WIP Consensus SoK</a></li>
</ul>
<a href="#committee-tree-overlay"><h3 id="committee-tree-overlay"><span class="hanchor" ariaLabel="Anchor"># </span>Committee Tree Overlay</h3></a>
<p>The basis of LogosBFT is dependent upon establishing an committee overlay tree structure for message distribution.</p>
<p>An overview video can be found in the following link:</p>
<ul>
<li>
<a href="https://drive.google.com/file/d/17L0JPgC0L1ejbjga7_6ZitBfHUe3VO11/view?usp=sharing" rel="noopener">LogosBFT Overview by Moh during Offsite</a></li>
</ul>
<p>The details of this are being worked on by Moh and Alexander and can be found in the following overleaf documents:</p>
<ul>
<li>
<a href="https://www.overleaf.com/project/6341fb4a3cf4f20f158afad3" rel="noopener">Moh&rsquo;s draft</a></li>
<li>
<a href="https://www.overleaf.com/project/630c7e20e56998385e7d8416" rel="noopener">Alexander&rsquo;s notes on the statistical properties of committees</a></li>
</ul>
<a href="#failure-recovery"><h4 id="failure-recovery"><span class="hanchor" ariaLabel="Anchor"># </span>Failure Recovery</h4></a>
<p>There exists a timeout that triggers an overlay reconfiguration. Currently work is being done to calculate the probabilities of another failure based on a given percentage of byzantine nodes within the network.</p>
<ul>
<li>
<a
href="/"
rel="noopener" class="internal-link"
data-src="/">Recovery Failure Probabilities</a> - LINK TO WORK HERE</li>
</ul>
<a href="#random-beacon"><h3 id="random-beacon"><span class="hanchor" ariaLabel="Anchor"># </span>Random Beacon</h3></a>
<p>A random beacon is required to choose a leader and establish a seed for defining the overlay tree. Marcin is working on the various avenues. His previous presentations can be found in the following presentation slides (in chronological order):</p>
<ul>
<li>
<a href="https://cloud.logos.co/index.php/s/b39EmQrZRt5rrfL" rel="noopener">Intro to Multiparty Random Beacons</a></li>
<li>
<a href="https://cloud.logos.co/index.php/s/NXJZX8X8pHg6akw" rel="noopener">Circles of Trust</a></li>
<li>
<a href="https://cloud.logos.co/index.php/s/oSJ4ykR4A55QHkG" rel="noopener">Compact Certificates of Knowledge</a></li>
</ul>
<a href="#erasure-coding-lt-codes--fountain-codes--raptor-codes"><h3 id="erasure-coding-lt-codes--fountain-codes--raptor-codes"><span class="hanchor" ariaLabel="Anchor"># </span>Erasure Coding (LT Codes / Fountain Codes / Raptor Codes)</h3></a>
<p>In order to reduce message complexity during propagation, we are investigating the use of Luby Transform (LT) codes, more specifically
<a href="https://en.wikipedia.org/wiki/Fountain_code" rel="noopener">Fountain Codes</a>, to break up the block to be propagated to validators and recombined by local peers within a committee.</p>
<ul>
<li>
<a href="https://github.com/chrido/fountain" rel="noopener">LT Code implementation in Rust</a> - unclear about legal status of LT or Raptor Codes, it is currently under investigation.</li>
</ul>
</article>
<hr/>
<div class="page-end" id="footer">
<div class="backlinks-container">
<h3>Backlinks</h3>
<ul class="backlinks">
<li>
No backlinks found
</li>
</ul>
</div>
<div>
<script
src="https://cdn.jsdelivr.net/npm/d3@6.7.0/dist/d3.min.js"
integrity="sha256-+7jaYCp29O1JusNWHaYtgUn6EhuP0VaFuswhNV06MyI="
crossorigin="anonymous"
></script>
<h3>Interactive Graph</h3>
<div id="graph-container"></div>
<style>
:root {
--g-node: var(--secondary);
--g-node-active: var(--primary);
--g-node-inactive: var(--visited);
--g-link: var(--outlinegray);
--g-link-active: #5a7282;
}
</style>
<script src="https://roadmap.logos.co/js/graph.abd4bc2af3869a96524d7d23b76152c7.js"></script>
</div>
</div>
<div id="contact_buttons">
<footer>
<p>Made by Logos using <a href="https://github.com/jackyzha0/quartz">Quartz</a>, © 2022</p>
<ul>
<li><a href="https://roadmap.logos.co/">Home</a></li>
<li><a href="https://github.com/logos-co/roadmap">Github</a></li></ul>
</footer>
</div>
</div>
</body>
</html>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -103,7 +103,7 @@ Required Roles Lead Developer (filled) "
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -244,6 +244,26 @@ if (!doNotTrack) {
<div class="section">
<p class="meta">
Nov 28, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
@ -269,26 +289,6 @@ Nov 16, 2022
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/overview/" class="internal-link" data-src="/roadmap/consensus/overview/">Consensus Work</a></h3>

View File

@ -67,7 +67,7 @@ Required Roles Lead Developer (filled) </description>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/</guid>
<description>Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?</description>
<description>Network Requirements and Assumptions What assumptions do we need Waku to fulfill? - Corey Moh: Waku needs to fill the following requirements, taken from the Carnot paper:</description>
</item>
<item>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -103,7 +103,7 @@ With the high level goals of preserving the right to privacy, mitigating the ris
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -105,7 +105,7 @@ Status is an organization building the tools and infrastructure for the advancem
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -105,7 +105,7 @@ Status is building the tools and infrastructure for the advancement of a secure,
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -9,7 +9,7 @@
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/tags/Carnot/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
<lastmod>2022-11-28T19:57:03-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/overview/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
@ -17,7 +17,7 @@
<loc>https://roadmap.logos.co/categories/</loc>
</url><url>
<loc>https://roadmap.logos.co/tags/consensus/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
<lastmod>2022-11-28T19:57:03-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/consensus/development/prototypes/</loc>
<lastmod>2022-08-19T15:10:38-04:00</lastmod>
@ -38,7 +38,7 @@
<lastmod>2022-10-26T16:15:35-04:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
<lastmod>2022-11-28T19:57:03-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/consensus/candidates/glacier/</loc>
<lastmod>2022-08-19T15:10:38-04:00</lastmod>
@ -59,7 +59,7 @@
<lastmod>2022-10-26T16:15:35-04:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
<lastmod>2022-11-28T19:57:03-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/tags/role/</loc>
<lastmod>2022-10-26T16:15:35-04:00</lastmod>
@ -77,7 +77,7 @@
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/tags/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>
<lastmod>2022-11-28T19:57:03-05:00</lastmod>
</url><url>
<loc>https://roadmap.logos.co/roadmap/consensus/theory/snow-family/</loc>
<lastmod>2022-11-16T09:33:46-05:00</lastmod>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -266,7 +266,7 @@ Nov 16, 2022
<div class="section">
<p class="meta">
Nov 16, 2022
Nov 28, 2022
</p>

View File

@ -21,7 +21,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/</guid>
<description>Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?</description>
<description>Network Requirements and Assumptions What assumptions do we need Waku to fulfill? - Corey Moh: Waku needs to fill the following requirements, taken from the Carnot paper:</description>
</item>
</channel>

View File

@ -1,303 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="description"
content=""
/>
<title>
LogosBFT
</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" type="image/png" href="https://roadmap.logos.co//icon.png" />
<link href="https://roadmap.logos.co/styles.7fdbd93987bfba941d84b8a4050caaba.min.css" rel="stylesheet" />
<link href="https://roadmap.logos.co/styles/_light_syntax.86a48a52faebeaaf42158b72922b1c90.min.css" rel="stylesheet" id="theme-link">
<script src="https://roadmap.logos.co/js/darkmode.4ee460c38f180dd44f1565712a1f3c8a.min.js"></script>
<script src="https://roadmap.logos.co/js/util.9825137f5e7825e8553c68ce39ac9e44.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@floating-ui/core@0.7.3"></script>
<script src="https://unpkg.com/@floating-ui/dom@0.5.4"></script>
<script src="https://roadmap.logos.co/js/popover.37b1455b8f0603154072b9467132c659.min.js"></script>
<script src="https://roadmap.logos.co/js/code-title.b35124ad8db0ba37162b886afb711cbc.min.js"></script>
<script src="https://roadmap.logos.co/js/clipboard.c20857734e53a3fb733b7443879efa61.min.js"></script>
<script src="https://roadmap.logos.co/js/callouts.7723cac461d613d118ee8bb8216b9838.min.js"></script>
<script>
const BASE_URL = "https://roadmap.logos.co/"
const fetchData = Promise.all([
fetch("https:\/\/roadmap.logos.co\/indices\/linkIndex.a731878fce0e7f463fcc42a3bbd02e29.min.json")
.then(data => data.json())
.then(data => ({
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.3090347d4d44a2c11d6534e77b456ec8.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
index,
links,
content,
}))
const render = () => {
const siteBaseURL = new URL(BASE_URL);
const pathBase = siteBaseURL.pathname;
const pathWindow = window.location.pathname;
const isHome = pathBase == pathWindow;
addCopyButtons();
addTitleToCodeBlocks();
addCollapsibleCallouts();
initPopover(
"https://roadmap.logos.co",
true ,
true
)
const footer = document.getElementById("footer")
if (footer) {
const container = document.getElementById("graph-container")
if (!container) return requestAnimationFrame(render)
container.textContent = ""
const drawGlobal = isHome && false ;
drawGraph(
"https://roadmap.logos.co",
drawGlobal,
[{"/moc":"#4388cc"}],
drawGlobal ? {"centerForce":1,"depth":-1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.5,"linkDistance":1,"opacityScale":3,"repelForce":1,"scale":1.4} : {"centerForce":1,"depth":1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.6,"linkDistance":1,"opacityScale":3,"repelForce":2,"scale":1.2}
);
}
}
const init = (doc = document) => {
addCopyButtons();
addTitleToCodeBlocks();
renderMathInElement(doc.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
],
throwOnError : false
});
};
</script>
<script type="module">
import { attachSPARouting } from "https:\/\/roadmap.logos.co\/js\/router.9d4974281069e9ebb189f642ae1e3ca2.min.js"
attachSPARouting(init, render)
</script>
</head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XYFD95KB4J"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XYFD95KB4J', { 'anonymize_ip': false });
}
</script>
<body>
<div id="search-container">
<div id="search-space">
<input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search"
placeholder="Search for something...">
<div id="results-container">
</div>
</div>
</div>
<script defer src="https://roadmap.logos.co/js/semantic-search.d4032d4a6a967938235ae76d08a55b46.min.js"></script>
<div class="singlePage">
<header>
<h1 id="page-title"><a href="https://roadmap.logos.co/">Logos Technical Roadmap</a></h1>
<div class="spacer"></div>
<div id="search-icon">
<p>Search</p>
<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 Icon</title><desc id="desc">Icon to open search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"/><circle cx="8" cy="8" r="7"/></g></svg>
</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" xmlns:xlink="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;" xml:space="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,25z" />
</svg>
</label>
<label id="toggle-label-dark" for='darkmode-toggle' tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background='new 0 0 100 100'" xml:space="preserve">
<title>Dark Mode</title>
<path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z" />
</svg>
</label>
</div>
</header>
<article>
<h1>Tag: LogosBFT</h1>
<ul class="section-ul"><li class="section-li">
<div class="section">
<p class="meta">
Oct 28, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/logos-bft/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/LogosBFT/">LogosBFT</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Oct 28, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/overview/" class="internal-link" data-src="/roadmap/consensus/candidates/logos-bft/overview/">Logos BFT Overview</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
<li><a href="https://roadmap.logos.co/tags/candidate/">Candidate</a></li>
<li><a href="https://roadmap.logos.co/tags/LogosBFT/">LogosBFT</a></li>
</ul>
</div>
</li></ul>
</article>
<div id="contact_buttons">
<footer>
<p>Made by Logos using <a href="https://github.com/jackyzha0/quartz">Quartz</a>, © 2022</p>
<ul>
<li><a href="https://roadmap.logos.co/">Home</a></li>
<li><a href="https://github.com/logos-co/roadmap">Github</a></li></ul>
</footer>
</div>
</div>
</body>
</html>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>LogosBFT on </title>
<link>https://roadmap.logos.co/tags/LogosBFT/</link>
<description>Recent content in LogosBFT on </description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language><atom:link href="https://roadmap.logos.co/tags/LogosBFT/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Frequently Asked Questions</title>
<link>https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/FAQ/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/FAQ/</guid>
<description>Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?</description>
</item>
<item>
<title>Logos BFT Overview</title>
<link>https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/overview/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/logos-bft/overview/</guid>
<description>Logos BFT is a consensus candidate for the Logos Network that utilizes Fountain Codes and a committees tree structure to optimize message propagation in the presence of a large number of nodes, while maintaining high througput and fast finality.</description>
</item>
</channel>
</rss>

View File

@ -1 +0,0 @@
<!DOCTYPE html><html><head><title>https://roadmap.logos.co/tags/LogosBFT/</title><link rel="canonical" href="https://roadmap.logos.co/tags/LogosBFT/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://roadmap.logos.co/tags/LogosBFT/" /></head></html>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -344,7 +344,7 @@ Aug 19, 2022
<div class="section">
<p class="meta">
Nov 16, 2022
Nov 28, 2022
</p>

View File

@ -58,7 +58,7 @@ Required Roles Lead Developer (filled) </description>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/</guid>
<description>Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission?</description>
<description>Network Requirements and Assumptions What assumptions do we need Waku to fulfill? - Corey Moh: Waku needs to fill the following requirements, taken from the Carnot paper:</description>
</item>
<item>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
@ -251,6 +251,26 @@ if (!doNotTrack) {
<div class="section">
<p class="meta">
Nov 28, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
@ -276,26 +296,6 @@ Nov 16, 2022
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/" class="internal-link" data-src="/roadmap/consensus/candidates/carnot/FAQ/">Frequently Asked Questions</a></h3>
</div>
<div class="spacer"></div>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/Carnot/">Carnot</a></li>
<li><a href="https://roadmap.logos.co/tags/consensus/">Consensus</a></li>
</ul>
</div>
</li><li class="section-li">
<div class="section">
<p class="meta">
Nov 16, 2022
</p>
<div class="desc">
<h3><a href="https://roadmap.logos.co/roadmap/consensus/overview/" class="internal-link" data-src="/roadmap/consensus/overview/">Consensus Work</a></h3>
@ -544,7 +544,7 @@ Aug 19, 2022
<div class="section">
<p class="meta">
Nov 16, 2022
Nov 28, 2022
</p>

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({

View File

@ -102,7 +102,7 @@
index: data.index,
links: data.links,
})),
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json")
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.2ba8aac6e28d4e8e5bdc03a76966a275.min.json")
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({