/
index.html
53 lines (50 loc) · 18.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!doctype html>
<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-updates">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.2.0">
<title data-rh="true">Consensus Team Update | Cardano Development Updates</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://input-output-hk.github.io/cardano-updates/2023-01-25-consensus"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Consensus Team Update | Cardano Development Updates"><meta data-rh="true" name="description" content="High level summary"><meta data-rh="true" property="og:description" content="High level summary"><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="article:published_time" content="2023-01-25T00:00:00.000Z"><meta data-rh="true" property="article:author" content="https://github.com/dnadales"><meta data-rh="true" property="article:tag" content="consensus"><link data-rh="true" rel="icon" href="/cardano-updates/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://input-output-hk.github.io/cardano-updates/2023-01-25-consensus"><link data-rh="true" rel="alternate" href="https://input-output-hk.github.io/cardano-updates/2023-01-25-consensus" hreflang="en"><link data-rh="true" rel="alternate" href="https://input-output-hk.github.io/cardano-updates/2023-01-25-consensus" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/cardano-updates/rss.xml" title="Cardano Updates Feed RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cardano-updates/atom.xml" title="Cardano Updates Feed Atom Feed">
<link rel="alternate" type="application/json" href="/cardano-updates/feed.json" title="Cardano Updates Feed JSON Feed">
<link rel="alternate" type="application/rss+xml" href="/cardano-updates/quarterly/rss.xml" title="Cardano Development Updates RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cardano-updates/quarterly/atom.xml" title="Cardano Development Updates Atom Feed">
<script src="https://plausible.io/js/script.js" defer="defer" data-domain="input-output-hk.github.io/cardano-updates"></script><link rel="stylesheet" href="/cardano-updates/assets/css/styles.1b2b551c.css">
<link rel="preload" href="/cardano-updates/assets/js/runtime~main.1282f806.js" as="script">
<link rel="preload" href="/cardano-updates/assets/js/main.870ab849.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/cardano-updates/"><div class="navbar__logo"><img src="/cardano-updates/img/logo.svg" alt="Cardano Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/cardano-updates/img/logo.svg" alt="Cardano Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Cardano Updates</b></a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/cardano-updates/">Home</a><a class="navbar__item navbar__link" href="/cardano-updates/quarterly">Quarterly</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/cardano-updates/tags">Topics</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/cardano-updates/tags">All Topics</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/network">Network</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/consensus">Consensus</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/ledger">Ledger</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/hydra">Hydra</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/db-sync">DB Sync</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/cli-api">Node CLI & API</a></li><li><a class="dropdown__link" href="/cardano-updates/quarterly/tags/cli-api-quarterly">Node CLI & API Quarterly</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/crypto">Crypto</a></li></ul></div><a class="navbar__item navbar__link" href="/cardano-updates/archive">Archive</a><a href="https://github.com/input-output-hk/cardano-updates" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent Posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-24-hydra">Hydra Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-23-db-sync">DB-sync Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-23-mithril">Mithril Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-22-consensus">Consensus Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-22-performance-and-tracing">Performance & tracing update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-21-network">Network Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-17-hydra">Hydra Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-17-ledger">Ledger Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-16-goedel">Goedel Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-10-hydra">Hydra Team Update</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="http://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="http://schema.org/BlogPosting"><header><h1 class="title_f1Hy" itemprop="headline">Consensus Team Update</h1><div class="container_mt6G margin-vert--md"><time datetime="2023-01-25T00:00:00.000Z" itemprop="datePublished">January 25, 2023</time> · <!-- -->3 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://github.com/dnadales" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/dnadales.png" alt="Damian Nadales"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://github.com/dnadales" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Damian Nadales</span></a></div><small class="avatar__subtitle" itemprop="description">Consensus Team Lead</small></div></div></div></div></header><div id="post-content" class="markdown" itemprop="articleBody"><h2 class="anchor anchorWithStickyNavbar_LWe7" id="high-level-summary">High level summary<a class="hash-link" href="#high-level-summary" title="Direct link to heading"></a></h2><p>During the past two weeks, the consensus team finished the testing activities
around the UTxO-HD prototype. This is a very important milestone which will
enable us to run system-level tests and benchmarks, as well as start refactoring
and cleaning the prototype. Regarding our Genesis workstream, we elaborated a
roadmap that gives an indication of the remaining work. We also continued our
work on benchmarking chain-sync-jumping. We also continued working on improving
the way we handle blocks from the future, and advancing the integration of the
new VRF and KES crypto.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="workstreams">Workstreams<a class="hash-link" href="#workstreams" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="utxo-hd-prototype">UTxO HD Prototype<a class="hash-link" href="#utxo-hd-prototype" title="Direct link to heading"></a></h3><p>As the prototype is nearing its completion, it was important to have enough
confidence that we will be able to move additional parts of the ledger state
onto disk. We worked together with the Ledger team to <a href="https://github.com/input-output-hk/ouroboros-network/pull/4296" target="_blank" rel="noopener noreferrer">elaborate a
sketch</a> on how the UTxO-HD design would accommodate the migration of
additional data from memory to disk. This gave us enough confidence that the
current architecture will be extensible in the future.</p><p>On the testing front, we <a href="https://github.com/input-output-hk/ouroboros-network/pull/4274" target="_blank" rel="noopener noreferrer">added</a> property-based tests for the UTxO-HD
type classes. </p><p>We also <a href="https://github.com/input-output-hk/ouroboros-network/issues/4289" target="_blank" rel="noopener noreferrer">enabled disabled components</a>, and addressed several
technical debt issues:</p><ul><li>Implement <code>splitSized</code> anti-diff split (<a href="https://github.com/input-output-hk/ouroboros-network/pull/4269" target="_blank" rel="noopener noreferrer">#4269</a>), and integrate it
into consensus (<a href="https://github.com/input-output-hk/ouroboros-network/pull/4273" target="_blank" rel="noopener noreferrer">#4273</a>).</li><li>Renaming of <code>peekVal</code> to <code>peekMDBVal</code> (<a href="https://github.com/input-output-hk/lmdb-simple/pull/7" target="_blank" rel="noopener noreferrer">#7</a>).</li></ul><p>We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We
found a race condition in the LMDB backing store, which <a href="https://github.com/input-output-hk/ouroboros-network/pull/4283" target="_blank" rel="noopener noreferrer">we fixed</a>.
After the fix we were able to successfully run these benchmarks. The results
were published by <a href="https://github.com/input-output-hk/ouroboros-network/pull/4295" target="_blank" rel="noopener noreferrer">this pull request</a>.</p><p>We used our <code>db-analyser</code> tool to benchmark the cost of reading keys and
flushing values to disk. The following plot shows the duration of these disk
operation in relation to the main ledger operations, where we can see that the
cost of the former are comparatively low. The spike at the beginning of the
graph is when, at the start of the Shelley era, the <em>entire</em> UTxO set is flushed
to disk.</p><p><img loading="lazy" alt="UTxO-HD read and flush benchmarks" src="/cardano-updates/assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png" width="1600" height="800" class="img_ev3q"></p><p>After months of hard work adding tests for the prototype, we are ready to run
end-to-end tests on the node, and system level benchmarks. This signals a very
important milestone for the UTxO-HD workstream 🎉.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="genesis">Genesis<a class="hash-link" href="#genesis" title="Direct link to heading"></a></h3><p>We elaborated a <a href="https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md" target="_blank" rel="noopener noreferrer">high-level decomposition</a> of the remaining
work for Genesis. We also continued benchmarking the chain-sync-jumping
happy-path.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="technical-debt">Technical debt<a class="hash-link" href="#technical-debt" title="Direct link to heading"></a></h3><p>We continued working on improving the way we handle blocks from the future.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="support">Support<a class="hash-link" href="#support" title="Direct link to heading"></a></h3><p>We completed the mapping of <code>Crypto</code> to <code>HeaderCrypto</code> and body <code>Crypto</code>.
<code>HeaderCrypto</code> is moved to <code>cardano-protocol-tpraos</code>. We created a draft <a href="https://github.com/input-output-hk/cardano-ledger/pull/3262" target="_blank" rel="noopener noreferrer">pull
request</a> to facilitate compiling consensus.</p></div><footer class="row docusaurus-mt-lg blogPostFooterDetailsFull_mRVl"><div class="col"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/cardano-updates/tags/consensus">consensus</a></li></ul></div><div class="col margin-top--sm"><a href="https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-25-consensus.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/cardano-updates/2023-01-26-mithril"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">Mithril Team Update</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cardano-updates/2023-01-25-node-cli-api"><div class="pagination-nav__sublabel">Older Post</div><div class="pagination-nav__label">Node API & CLI Team Update</div></a></nav></main><div class="col col--2"><div class="tableOfContents_bqdL thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#high-level-summary" class="table-of-contents__link toc-highlight">High level summary</a></li><li><a href="#workstreams" class="table-of-contents__link toc-highlight">Workstreams</a><ul><li><a href="#utxo-hd-prototype" class="table-of-contents__link toc-highlight">UTxO HD Prototype</a></li><li><a href="#genesis" class="table-of-contents__link toc-highlight">Genesis</a></li><li><a href="#technical-debt" class="table-of-contents__link toc-highlight">Technical debt</a></li><li><a href="#support" class="table-of-contents__link toc-highlight">Support</a></li></ul></li></ul></div></div></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Blog</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/">Home</a></li><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/archive">Archive</a></li><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/tags">Tags</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Input Output Global, Inc. Built with Docusaurus.</div></div></div></footer></div>
<script src="/cardano-updates/assets/js/runtime~main.1282f806.js"></script>
<script src="/cardano-updates/assets/js/main.870ab849.js"></script>
</body>
</html>