Skip to content

Commit 9a749fb

Browse files
committed
deploy: 72e5b71
1 parent fedb935 commit 9a749fb

17 files changed

Lines changed: 563 additions & 97 deletions

3sf_mini.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">
@@ -691,7 +691,7 @@ <h3 id="adaptive-backoff-unique-to-3sf-mini"><a class="header" href="#adaptive-b
691691

692692
<nav class="nav-wrapper" aria-label="Page navigation">
693693
<!-- Mobile navigation buttons -->
694-
<a rel="prev" href="introduction.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
694+
<a rel="prev" href="slots_and_intervals.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
695695
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg></span>
696696
</a>
697697

@@ -705,7 +705,7 @@ <h3 id="adaptive-backoff-unique-to-3sf-mini"><a class="header" href="#adaptive-b
705705
</div>
706706

707707
<nav class="nav-wide-wrapper" aria-label="Page navigation">
708-
<a rel="prev" href="introduction.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
708+
<a rel="prev" href="slots_and_intervals.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
709709
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg></span>
710710
</a>
711711

404.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@
3636
const path_to_root = "";
3737
const default_light_theme = "light";
3838
const default_dark_theme = "navy";
39-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
39+
window.path_to_searchindex_js = "searchindex-a0050628.js";
4040
</script>
4141
<!-- Start loading toc.js asap -->
42-
<script src="toc-274da26b.js"></script>
42+
<script src="toc-54238a3b.js"></script>
4343
</head>
4444
<body>
4545
<div id="mdbook-help-container">

checkpoint_sync.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">

data_storage.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">

fork_choice_visualization.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">

index.html

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">
@@ -186,11 +186,12 @@ <h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h
186186
<p>This book collects the design notes and operator-facing references for ethlambda.
187187
It is split into two parts:</p>
188188
<ul>
189-
<li><strong>Consensus</strong> explains the algorithms ethlambda implements: the
190-
<a href="./3sf_mini.html">3SF-mini</a> justification and finalization rules, and the
191-
<a href="./lmd_ghost.html">LMD-GHOST</a> fork choice algorithm. Both documents are
192-
implementation-agnostic; ethlambda-specific behaviour is called out in
193-
blockquotes.</li>
189+
<li><strong>Consensus</strong> explains how the chain advances: the
190+
<a href="./slots_and_intervals.html">slot and interval structure</a> that schedules every
191+
validator duty, the <a href="./3sf_mini.html">3SF-mini</a> justification and finalization
192+
rules, and the <a href="./lmd_ghost.html">LMD-GHOST</a> fork choice algorithm. These
193+
documents are implementation-agnostic; ethlambda-specific behaviour is called
194+
out in blockquotes.</li>
194195
<li><strong>Operations</strong> documents observable surfaces of a running node:
195196
<a href="./metrics.html">Prometheus metrics</a>, <a href="./checkpoint_sync.html">checkpoint sync</a>,
196197
and the <a href="./fork_choice_visualization.html">fork choice visualization</a> served
@@ -231,7 +232,7 @@ <h2 id="related-projects"><a class="header" href="#related-projects">Related pro
231232
<nav class="nav-wrapper" aria-label="Page navigation">
232233
<!-- Mobile navigation buttons -->
233234

234-
<a rel="next prefetch" href="3sf_mini.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
235+
<a rel="next prefetch" href="slots_and_intervals.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
235236
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/></svg></span>
236237
</a>
237238

@@ -242,7 +243,7 @@ <h2 id="related-projects"><a class="header" href="#related-projects">Related pro
242243

243244
<nav class="nav-wide-wrapper" aria-label="Page navigation">
244245

245-
<a rel="next prefetch" href="3sf_mini.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
246+
<a rel="next prefetch" href="slots_and_intervals.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
246247
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/></svg></span>
247248
</a>
248249
</nav>

introduction.html

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">
@@ -186,11 +186,12 @@ <h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h
186186
<p>This book collects the design notes and operator-facing references for ethlambda.
187187
It is split into two parts:</p>
188188
<ul>
189-
<li><strong>Consensus</strong> explains the algorithms ethlambda implements: the
190-
<a href="./3sf_mini.html">3SF-mini</a> justification and finalization rules, and the
191-
<a href="./lmd_ghost.html">LMD-GHOST</a> fork choice algorithm. Both documents are
192-
implementation-agnostic; ethlambda-specific behaviour is called out in
193-
blockquotes.</li>
189+
<li><strong>Consensus</strong> explains how the chain advances: the
190+
<a href="./slots_and_intervals.html">slot and interval structure</a> that schedules every
191+
validator duty, the <a href="./3sf_mini.html">3SF-mini</a> justification and finalization
192+
rules, and the <a href="./lmd_ghost.html">LMD-GHOST</a> fork choice algorithm. These
193+
documents are implementation-agnostic; ethlambda-specific behaviour is called
194+
out in blockquotes.</li>
194195
<li><strong>Operations</strong> documents observable surfaces of a running node:
195196
<a href="./metrics.html">Prometheus metrics</a>, <a href="./checkpoint_sync.html">checkpoint sync</a>,
196197
and the <a href="./fork_choice_visualization.html">fork choice visualization</a> served
@@ -231,7 +232,7 @@ <h2 id="related-projects"><a class="header" href="#related-projects">Related pro
231232
<nav class="nav-wrapper" aria-label="Page navigation">
232233
<!-- Mobile navigation buttons -->
233234

234-
<a rel="next prefetch" href="3sf_mini.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
235+
<a rel="next prefetch" href="slots_and_intervals.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
235236
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/></svg></span>
236237
</a>
237238

@@ -242,7 +243,7 @@ <h2 id="related-projects"><a class="header" href="#related-projects">Related pro
242243

243244
<nav class="nav-wide-wrapper" aria-label="Page navigation">
244245

245-
<a rel="next prefetch" href="3sf_mini.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
246+
<a rel="next prefetch" href="slots_and_intervals.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
246247
<span class=fa-svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/></svg></span>
247248
</a>
248249
</nav>

lmd_ghost.html

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
const path_to_root = "";
3636
const default_light_theme = "light";
3737
const default_dark_theme = "navy";
38-
window.path_to_searchindex_js = "searchindex-ee57cac9.js";
38+
window.path_to_searchindex_js = "searchindex-a0050628.js";
3939
</script>
4040
<!-- Start loading toc.js asap -->
41-
<script src="toc-274da26b.js"></script>
41+
<script src="toc-54238a3b.js"></script>
4242
</head>
4343
<body>
4444
<div id="mdbook-help-container">
@@ -577,9 +577,9 @@ <h2 id="attestation-pipeline"><a class="header" href="#attestation-pipeline">Att
577577
fixed points
578578
</code></pre>
579579
<blockquote>
580-
<p><strong>In ethlambda:</strong> The two stages are called “new” and “known” attestations, stored
581-
in <code>LatestNewAttestations</code> and <code>LatestKnownAttestations</code> tables respectively.
582-
Promotion happens at tick intervals 0 (if proposing) and 3 (end of slot).</p>
580+
<p><strong>In ethlambda:</strong> The two stages are called “new” and “known” attestations, held in
581+
the in-memory <code>new_payloads</code> and <code>known_payloads</code> buffers of the <code>Store</code> respectively.
582+
Promotion happens at tick intervals 0 (if proposing) and 4 (end of slot).</p>
583583
</blockquote>
584584
<h3 id="why-staged-promotion"><a class="header" href="#why-staged-promotion">Why Staged Promotion?</a></h3>
585585
<p>The staged design serves two purposes:</p>
@@ -727,25 +727,26 @@ <h2 id="ethlambda-implementation-reference"><a class="header" href="#ethlambda-i
727727
<p>This section covers ethlambda-specific details: scheduling, Beacon Chain differences,
728728
source code locations, and performance.</p>
729729
<h3 id="tick-based-scheduling"><a class="header" href="#tick-based-scheduling">Tick-Based Scheduling</a></h3>
730-
<p>ethlambda divides time into <strong>4-second slots</strong>, each split into <strong>4 intervals</strong> (1 second
731-
each). Fork choice operations are scheduled at specific intervals:</p>
732-
<pre><code class="language-text"> ONE SLOT (4 seconds)
733-
┌──────────────┬──────────────┬──────────────┬──────────────┐
734-
│ Interval 0 │ Interval 1 │ Interval 2 │ Interval 3 │
735-
│ (t+0s) │ (t+1s) │ (t+2s) │ (t+3s) │
736-
├──────────────┼──────────────┼──────────────┼──────────────┤
737-
│ │ │ │ │
738-
│ IF PROPOSER: │ NON-PROPOSER:│ update_safe │ accept_new │
739-
│ accept new │ produce │ _target() │ _attestations│
740-
│ attestations│ attestation │ │ () │
741-
│ + propose │ │ (2/3 vote │ │
742-
│ block │ │ threshold) │ update_head()│
743-
│ │ │ │ │
744-
│ update_head()│ │ │ │
745-
│ │ │ │ │
746-
└──────────────┴──────────────┴──────────────┴──────────────┘
747-
748-
◄─────────────── Slot N ──────────────────────────────────────►
730+
<p>ethlambda divides time into <strong>4-second slots</strong>, each split into <strong>5 intervals</strong> (800 ms
731+
each), as described in <a href="./slots_and_intervals.html">Slots and Intervals</a>. Fork choice
732+
operations are scheduled at specific intervals:</p>
733+
<pre><code class="language-text"> ONE SLOT (4000 ms)
734+
┌────────────┬────────────┬────────────┬────────────┬────────────┐
735+
│ Interval 0 │ Interval 1 │ Interval 2 │ Interval 3 │ Interval 4 │
736+
│ t+0 ms │ t+800 ms │ t+1600 ms │ t+2400 ms │ t+3200 ms │
737+
├────────────┼────────────┼────────────┼────────────┼────────────┤
738+
│ │ │ │ │ │
739+
│IF PROPOSER:│ ALL │ aggregators│update_safe │accept_new_ │
740+
│ accept new │ VALIDATORS:│ publish │_target() │attestations│
741+
│ attestation│ produce │ aggregated │ │() │
742+
│ + propose │ attestation│ attestation│ (2/3 vote │ │
743+
│ block │ │ │ threshold) │update_head │
744+
│ │ │ │ │() │
745+
│update_head │ │ │ │ │
746+
│() │ │ │ │ │
747+
└────────────┴────────────┴────────────┴────────────┴────────────┘
748+
749+
◄─────────────── Slot N ──────────────────────────────────────────►
749750
</code></pre>
750751
<p><strong>Detailed sequence:</strong></p>
751752
<pre><code class="language-text"> Interval 0 ─ Slot boundary
@@ -759,20 +760,25 @@ <h3 id="tick-based-scheduling"><a class="header" href="#tick-based-scheduling">T
759760
760761
Interval 1 ─ Attestation production
761762
762-
├── Non-proposers:
763+
├── All validators, proposer included:
763764
│ └── Create attestation with:
764765
│ • head = current fork choice head (newest head)
765766
│ • target = derived from safe_target (for 3SF-mini)
766767
│ • source = latest_justified checkpoint
767768
│ Publish attestation to gossipsub
768769
769-
Interval 2 ─ Safe target update
770+
Interval 2 ─ Aggregation
771+
772+
├── Aggregators: aggregate their subnet's gossip signatures
773+
│ └── Publish the aggregated attestation to gossipsub
774+
775+
Interval 3 ─ Safe target update
770776
771777
├── Recalculate safe_target using 2/3 supermajority threshold
772778
│ └── Only blocks with ≥ ⌈2V/3⌉ attestation weight qualify
773779
│ (V = total validators)
774780
775-
Interval 3 ─ End of slot
781+
Interval 4 ─ End of slot
776782
777783
├── Promote new → known attestations
778784
└── Run fork choice → update_head()

0 commit comments

Comments
 (0)