From cf11059613364eb75d421469f085d96e9b159e47 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Fri, 24 Mar 2023 13:16:12 +0000 Subject: [PATCH] deploy: 1380e7ef61b1eb2f30e3cc7b9139504ffd07a6a8 --- 2022-08-12-network/index.html | 10 +- 2022-08-12-sre/index.html | 10 +- 2022-08-31-consensus/index.html | 10 +- 2022-09-01-ledger/index.html | 10 +- 2022-09-16-ledger/index.html | 10 +- 2022-09-19-db-sync/index.html | 10 +- 2022-09-20-consensus/index.html | 10 +- 2022-09-27-network/index.html | 10 +- 2022-09-30-ledger/index.html | 10 +- 2022-10-02-consensus/index.html | 10 +- 2022-10-04-db-sync/index.html | 10 +- 2022-10-04-node-cli-api/index.html | 10 +- 2022-10-05-consensus/index.html | 10 +- 2022-10-14-hydra/index.html | 10 +- 2022-10-14-ledger/index.html | 10 +- 2022-10-18-consensus/index.html | 10 +- 2022-10-19-node-cli-api/index.html | 10 +- 2022-10-21-hydra/index.html | 10 +- 2022-10-27-crypto/index.html | 10 +- 2022-10-28-hydra/index.html | 10 +- 2022-10-28-network/index.html | 10 +- 2022-10-28-performance-and-tracing/index.html | 10 +- 2022-10-31-open-source/index.html | 10 +- 2022-11-01-db-sync/index.html | 10 +- 2022-11-02-ledger/index.html | 10 +- 2022-11-02-node-cli-api/index.html | 10 +- 2022-11-02-release/index.html | 10 +- 2022-11-02-system-test/index.html | 10 +- 2022-11-03-embedding-quality/index.html | 10 +- 2022-11-04-hydra/index.html | 10 +- 2022-11-04-mithril/index.html | 10 +- 2022-11-11-crypto/index.html | 10 +- 2022-11-11-hydra/index.html | 10 +- 2022-11-11-ledger/index.html | 10 +- 2022-11-11-network/index.html | 10 +- 2022-11-16-consensus/index.html | 10 +- 2022-11-16-node-cli-api/index.html | 10 +- 2022-11-16-performance-and-tracing/index.html | 10 +- 2022-11-18-hydra/index.html | 10 +- 2022-11-18-mithril/index.html | 10 +- 2022-11-23-ledger/index.html | 10 +- 2022-11-25-crypto/index.html | 10 +- 2022-11-25-hydra/index.html | 10 +- 2022-11-28-network/index.html | 10 +- 2022-11-30-consensus/index.html | 10 +- 2022-11-30-node-cli-api/index.html | 10 +- 2022-11-30-performance-and-tracing/index.html | 10 +- 2022-12-01-db-sync/index.html | 10 +- 2022-12-01-mithril/index.html | 10 +- 2022-12-01-system-test/index.html | 10 +- 2022-12-02-hydra/index.html | 10 +- 2022-12-09-crypto/index.html | 10 +- 2022-12-09-hydra/index.html | 10 +- 2022-12-09-ledger/index.html | 10 +- 2022-12-12-network/index.html | 10 +- 2022-12-14-consensus/index.html | 10 +- 2022-12-14-db-sync/index.html | 10 +- 2022-12-14-node-cli-api/index.html | 10 +- 2022-12-14-performance-and-tracing/index.html | 10 +- 2022-12-15-mithril/index.html | 10 +- 2022-12-16-hydra/index.html | 10 +- 2022-12-28-node-cli-api/index.html | 10 +- 2023-01-05-ledger/index.html | 10 +- 2023-01-06-crypto/index.html | 10 +- 2023-01-11-consensus/index.html | 10 +- 2023-01-11-performance-and-tracing/index.html | 10 +- 2023-01-12-mithril/index.html | 10 +- 2023-01-13-hydra/index.html | 10 +- 2023-01-13-release/index.html | 10 +- 2023-01-13-system-test/index.html | 10 +- 2023-01-14-db-sync/index.html | 10 +- 2023-01-19-ledger/index.html | 10 +- 2023-01-20-crypto/index.html | 10 +- 2023-01-20-hydra/index.html | 10 +- 2023-01-20-network/index.html | 10 +- 2023-01-20-sre/index.html | 10 +- 2023-01-25-consensus/index.html | 10 +- 2023-01-25-node-cli-api/index.html | 10 +- 2023-01-26-mithril/index.html | 10 +- 2023-01-27-hydra/index.html | 10 +- 2023-02-02-ledger/index.html | 10 +- 2023-02-03-crypto/index.html | 10 +- 2023-02-03-goedel/index.html | 10 +- 2023-02-03-hydra/index.html | 10 +- 2023-02-08-consensus/index.html | 10 +- 2023-02-08-node-cli-api/index.html | 10 +- 2023-02-08-performance-and-tracing/index.html | 10 +- 2023-02-09-mithril/index.html | 10 +- 2023-02-10-hydra/index.html | 10 +- 2023-02-17-crypto/index.html | 10 +- 2023-02-17-goedel/index.html | 10 +- 2023-02-17-hydra/index.html | 10 +- 2023-02-17-ledger/index.html | 10 +- 2023-02-17-network/index.html | 10 +- 2023-02-21-db-sync/index.html | 10 +- 2023-02-22-consensus/index.html | 10 +- 2023-02-23-mithril/index.html | 10 +- 2023-02-23-performance-and-tracing/index.html | 10 +- 2023-02-24-hydra/index.html | 10 +- 2023-03-02-network/index.html | 10 +- 2023-03-03-crypto/index.html | 10 +- 2023-03-03-goedel/index.html | 10 +- 2023-03-03-hydra/index.html | 10 +- 2023-03-03-ledger/index.html | 10 +- 2023-03-08-consensus/index.html | 10 +- 2023-03-08-performance-and-tracing/index.html | 10 +- 2023-03-09-mithril/index.html | 10 +- 2023-03-10-hydra/index.html | 10 +- 2023-03-16-goedel/index.html | 10 +- 2023-03-17-hydra/index.html | 10 +- 2023-03-17-ledger/index.html | 10 +- 2023-03-21-network/index.html | 10 +- 2023-03-22-consensus/index.html | 10 +- 2023-03-22-performance-and-tracing/index.html | 10 +- 2023-03-23-db-sync/index.html | 12 +- 2023-03-23-mithril/index.html | 10 +- 2023-03-24-hydra/index.html | 29 ++++ 404.html | 8 +- archive/index.html | 10 +- assets/js/04cbd10c.5d5953d5.js | 1 + ...41956.95e93a48.js => 07541956.93c1c1c5.js} | 2 +- ...f95a7.2c8962ca.js => 1e0f95a7.4507a3a6.js} | 2 +- ...219b0.02b2c9c8.js => 372219b0.610d2db8.js} | 2 +- ...5f4e0.7e6157bb.js => 3ab5f4e0.c93ab9d6.js} | 2 +- ...14561.2e58dbb2.js => 3ac14561.c80a951d.js} | 2 +- ...3a65d.659d3a2e.js => 3e93a65d.48cb021a.js} | 2 +- assets/js/3ede3d79.88f4424a.js | 1 + assets/js/3ede3d79.b24f56aa.js | 1 - ...ae651.0b1d1567.js => 47cae651.ee17e7ba.js} | 2 +- ...1b9ee.737129a5.js => 4c91b9ee.b7835508.js} | 2 +- assets/js/4d7c8e78.16e412e8.js | 1 + assets/js/51457b0b.2b856b32.js | 1 + ...ef7ca.b3d5ef11.js => 548ef7ca.954558cc.js} | 2 +- ...9cc01.96596159.js => 60c9cc01.32fab898.js} | 2 +- ...26f4e.b638aebb.js => 66326f4e.f7f38081.js} | 2 +- ...39208.14d50849.js => 79239208.85052b9f.js} | 2 +- ...3b4cd.cedbd0c7.js => 7b73b4cd.a0509691.js} | 2 +- ...ab4f9.d977e931.js => 7d4ab4f9.4ce65bc3.js} | 2 +- ...d4471.71467e5c.js => 82ed4471.4e15a259.js} | 2 +- ...31590.a38788c8.js => 91831590.df9d096a.js} | 2 +- ...0fd8f.5a6e9ed9.js => 9450fd8f.0dbef622.js} | 2 +- ...77053.649871ac.js => 98277053.844e9ed0.js} | 2 +- ...1d9b0.be4db2b0.js => 9a01d9b0.bde05a04.js} | 2 +- ...34cf3.eb5a6039.js => 9e834cf3.7fd3f048.js} | 2 +- ...4c76a.45267a1e.js => a1b4c76a.0a91b111.js} | 2 +- assets/js/ac87db6a.11dc3acd.js | 1 + assets/js/ac87db6a.32725b4a.js | 1 - ...2edbe.f0281ab6.js => acd2edbe.8a6c384c.js} | 2 +- ...0ac17.5e843aff.js => b020ac17.3c7f728e.js} | 2 +- ...45a09.e949681f.js => b4645a09.69f78f77.js} | 2 +- ...f306d.672d668b.js => c94f306d.21f81772.js} | 2 +- ...0e037.a71b9bc5.js => cc30e037.76b33845.js} | 2 +- ...82551.331f0fe5.js => cfb82551.d6fc77a1.js} | 2 +- ...b38ee.b797ef75.js => cfdb38ee.3f271980.js} | 2 +- ...47ba3.dc7233d2.js => d1d47ba3.ac82f040.js} | 2 +- assets/js/d6b66cf4.a1a0de98.js | 1 + assets/js/d6b66cf4.ab13800d.js | 1 - ...68f0c.fb42c13f.js => d8668f0c.a8a472a7.js} | 2 +- assets/js/d957ac34.3a4ac84b.js | 1 + ...8e689.018a467d.js => e5a8e689.4efa87d9.js} | 2 +- ...b1d07.b89c2117.js => ef2b1d07.e9725eaa.js} | 2 +- ...103cc.e05e72b7.js => f5f103cc.baacecab.js} | 2 +- ...eac3b.c79caaf4.js => fc0eac3b.06513615.js} | 2 +- assets/js/main.35106439.js | 2 - assets/js/main.870ab849.js | 2 + ...CENSE.txt => main.870ab849.js.LICENSE.txt} | 0 assets/js/runtime~main.1282f806.js | 1 + assets/js/runtime~main.234b4fac.js | 1 - atom.xml | 20 ++- docs/category/tutorial---basics/index.html | 8 +- docs/category/tutorial---extras/index.html | 8 +- docs/intro/index.html | 8 +- .../congratulations/index.html | 8 +- .../create-a-blog-post/index.html | 8 +- .../create-a-document/index.html | 8 +- docs/tutorial-basics/create-a-page/index.html | 8 +- .../deploy-your-site/index.html | 8 +- .../markdown-features/index.html | 8 +- .../manage-docs-versions/index.html | 8 +- .../translate-your-site/index.html | 8 +- feed.json | 15 ++ index.html | 34 ++--- markdown-page/index.html | 8 +- page/10/index.html | 36 ++++- page/11/index.html | 12 +- page/12/index.html | 12 +- page/13/index.html | 47 +------ page/14/index.html | 77 ++++++----- page/15/index.html | 42 +++++- page/16/index.html | 12 +- page/17/index.html | 25 +--- page/18/index.html | 77 +++-------- page/19/index.html | 75 +++++++--- page/2/index.html | 29 +++- page/20/index.html | 27 ++-- page/21/index.html | 45 ++---- page/22/index.html | 72 +++++----- page/23/index.html | 128 +++++------------- page/24/index.html | 95 ++++++++++++- page/3/index.html | 21 +-- page/4/index.html | 21 ++- page/5/index.html | 16 +-- page/6/index.html | 34 ++--- page/7/index.html | 37 +++-- page/8/index.html | 19 ++- page/9/index.html | 36 +---- quarterly/2022-10-07-node-cli-api/index.html | 8 +- quarterly/2022-11-07-ledger/index.html | 8 +- quarterly/2022-11-09-network/index.html | 8 +- quarterly/2022-11-15-consensus/index.html | 8 +- quarterly/2023-01-13-network/index.html | 8 +- quarterly/2023-01-13-open-source/index.html | 8 +- quarterly/2023-01-18-consensus/index.html | 8 +- quarterly/archive/index.html | 8 +- quarterly/index.html | 8 +- quarterly/tags/cli-api-quarterly/index.html | 8 +- quarterly/tags/consensus/index.html | 8 +- quarterly/tags/index.html | 8 +- quarterly/tags/ledger/index.html | 8 +- quarterly/tags/network/index.html | 8 +- quarterly/tags/open-source/index.html | 8 +- rss.xml | 16 ++- sitemap.xml | 2 +- tags/cli-api/index.html | 10 +- tags/cli-api/page/2/index.html | 10 +- tags/consensus/index.html | 10 +- tags/consensus/page/2/index.html | 10 +- tags/consensus/page/3/index.html | 10 +- tags/crypto/index.html | 10 +- tags/crypto/page/2/index.html | 10 +- tags/db-sync/index.html | 10 +- tags/db-sync/page/2/index.html | 10 +- tags/embedding-quality/index.html | 10 +- tags/goedel/index.html | 10 +- tags/hydra/index.html | 23 ++-- tags/hydra/page/2/index.html | 31 ++--- tags/hydra/page/3/index.html | 27 +++- tags/hydra/page/4/index.html | 14 +- tags/hydra/page/5/index.html | 24 ++++ tags/index.html | 10 +- tags/ledger/index.html | 10 +- tags/ledger/page/2/index.html | 10 +- tags/ledger/page/3/index.html | 10 +- tags/mithril/index.html | 10 +- tags/mithril/page/2/index.html | 10 +- tags/network/index.html | 10 +- tags/network/page/2/index.html | 10 +- tags/open-source/index.html | 10 +- tags/performance-tracing/index.html | 10 +- tags/performance-tracing/page/2/index.html | 10 +- tags/release/index.html | 10 +- tags/sre/index.html | 10 +- tags/system-test/index.html | 10 +- 253 files changed, 1537 insertions(+), 1423 deletions(-) create mode 100644 2023-03-24-hydra/index.html create mode 100644 assets/js/04cbd10c.5d5953d5.js rename assets/js/{07541956.95e93a48.js => 07541956.93c1c1c5.js} (74%) rename assets/js/{1e0f95a7.2c8962ca.js => 1e0f95a7.4507a3a6.js} (74%) rename assets/js/{372219b0.02b2c9c8.js => 372219b0.610d2db8.js} (59%) rename assets/js/{3ab5f4e0.7e6157bb.js => 3ab5f4e0.c93ab9d6.js} (59%) rename assets/js/{3ac14561.2e58dbb2.js => 3ac14561.c80a951d.js} (74%) rename assets/js/{3e93a65d.659d3a2e.js => 3e93a65d.48cb021a.js} (74%) create mode 100644 assets/js/3ede3d79.88f4424a.js delete mode 100644 assets/js/3ede3d79.b24f56aa.js rename assets/js/{47cae651.0b1d1567.js => 47cae651.ee17e7ba.js} (76%) rename assets/js/{4c91b9ee.737129a5.js => 4c91b9ee.b7835508.js} (75%) create mode 100644 assets/js/4d7c8e78.16e412e8.js create mode 100644 assets/js/51457b0b.2b856b32.js rename assets/js/{548ef7ca.b3d5ef11.js => 548ef7ca.954558cc.js} (75%) rename assets/js/{60c9cc01.96596159.js => 60c9cc01.32fab898.js} (75%) rename assets/js/{66326f4e.b638aebb.js => 66326f4e.f7f38081.js} (75%) rename assets/js/{79239208.14d50849.js => 79239208.85052b9f.js} (71%) rename assets/js/{7b73b4cd.cedbd0c7.js => 7b73b4cd.a0509691.js} (75%) rename assets/js/{7d4ab4f9.d977e931.js => 7d4ab4f9.4ce65bc3.js} (75%) rename assets/js/{82ed4471.71467e5c.js => 82ed4471.4e15a259.js} (75%) rename assets/js/{91831590.a38788c8.js => 91831590.df9d096a.js} (78%) rename assets/js/{9450fd8f.5a6e9ed9.js => 9450fd8f.0dbef622.js} (75%) rename assets/js/{98277053.649871ac.js => 98277053.844e9ed0.js} (81%) rename assets/js/{9a01d9b0.be4db2b0.js => 9a01d9b0.bde05a04.js} (74%) rename assets/js/{9e834cf3.eb5a6039.js => 9e834cf3.7fd3f048.js} (74%) rename assets/js/{a1b4c76a.45267a1e.js => a1b4c76a.0a91b111.js} (74%) create mode 100644 assets/js/ac87db6a.11dc3acd.js delete mode 100644 assets/js/ac87db6a.32725b4a.js rename assets/js/{acd2edbe.f0281ab6.js => acd2edbe.8a6c384c.js} (75%) rename assets/js/{b020ac17.5e843aff.js => b020ac17.3c7f728e.js} (74%) rename assets/js/{b4645a09.e949681f.js => b4645a09.69f78f77.js} (68%) rename assets/js/{c94f306d.672d668b.js => c94f306d.21f81772.js} (78%) rename assets/js/{cc30e037.a71b9bc5.js => cc30e037.76b33845.js} (78%) rename assets/js/{cfb82551.331f0fe5.js => cfb82551.d6fc77a1.js} (78%) rename assets/js/{cfdb38ee.b797ef75.js => cfdb38ee.3f271980.js} (82%) rename assets/js/{d1d47ba3.dc7233d2.js => d1d47ba3.ac82f040.js} (75%) create mode 100644 assets/js/d6b66cf4.a1a0de98.js delete mode 100644 assets/js/d6b66cf4.ab13800d.js rename assets/js/{d8668f0c.fb42c13f.js => d8668f0c.a8a472a7.js} (59%) create mode 100644 assets/js/d957ac34.3a4ac84b.js rename assets/js/{e5a8e689.018a467d.js => e5a8e689.4efa87d9.js} (74%) rename assets/js/{ef2b1d07.b89c2117.js => ef2b1d07.e9725eaa.js} (84%) rename assets/js/{f5f103cc.e05e72b7.js => f5f103cc.baacecab.js} (75%) rename assets/js/{fc0eac3b.c79caaf4.js => fc0eac3b.06513615.js} (75%) delete mode 100644 assets/js/main.35106439.js create mode 100644 assets/js/main.870ab849.js rename assets/js/{main.35106439.js.LICENSE.txt => main.870ab849.js.LICENSE.txt} (100%) create mode 100644 assets/js/runtime~main.1282f806.js delete mode 100644 assets/js/runtime~main.234b4fac.js create mode 100644 tags/hydra/page/5/index.html diff --git a/2022-08-12-network/index.html b/2022-08-12-network/index.html index 9ba2783014..5af27f96a8 100644 --- a/2022-08-12-network/index.html +++ b/2022-08-12-network/index.html @@ -12,12 +12,12 @@ - - + +
-
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

The networking team took an active part in the project iteration (PI) planning +

Network Team Update

· One min read
Marcin Szamotulski

The networking team took an active part in the project iteration (PI) planning session, see cardano-node backlog for detailed outcomes.

  • We started working on a detailed design / implementation plan for gossip.

  • We merged input-output-hk/ouroboros-network#3859 which sets the ouroboros-network repository for the single relay release.

  • We identified a bug in the network simulator, which is fixed in the @@ -31,7 +31,7 @@ identify and fix a bug in the simulator. The simulation contains 50 nodes. Dashed lines indicate and established connection, while solid lines indicate a TCP connection with fully open TCP window.

- - + + \ No newline at end of file diff --git a/2022-08-12-sre/index.html b/2022-08-12-sre/index.html index 19d39afe4a..1d832eb926 100644 --- a/2022-08-12-sre/index.html +++ b/2022-08-12-sre/index.html @@ -12,12 +12,12 @@ - - + +
-

SRE Team Update

· 4 min read
Michael Fellinger

High level summary

The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +

SRE Team Update

· 4 min read
Michael Fellinger

High level summary

The SRE team is heavily working on the Equinix Metal migration, replacing Hydra with Cicero, and a new version of Spongix.

Lower level summary

OpenZiti

  • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
  • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
  • Multiple issues filed, and a lot of discussion with the OpenZiti developers, we're making pretty rapid progress thanks to them.
  • Work on getting Equinix baremetal machines integrated into AWS World Bitte clusters utilizing a Ziti ZTNA network overlay to bridge the networking of @@ -40,7 +40,7 @@ to get stuck in pending
  • Discovered Cicero race condition bug around concurrent transactions for codependent actions.
  • Fixed tullia task order bug in [cardano-addresses]
  • Diagnose Cicero action not triggered in [abcirdc]
  • Fixed meta/description of the Tullia package in [tullia-pull-7]
  • Add Vault token loop alerts in [bitte-cells-pull-40]
  • Ongoing investigation on recurring Patroni and nomad-follower issues related to token rotation.
- - + + \ No newline at end of file diff --git a/2022-08-31-consensus/index.html b/2022-08-31-consensus/index.html index 0516f98576..9174f3ed16 100644 --- a/2022-08-31-consensus/index.html +++ b/2022-08-31-consensus/index.html @@ -12,12 +12,12 @@ - - + +
-

Consensus Team Update

· 9 min read
Damian Nadales

Executive summary

- - + + \ No newline at end of file diff --git a/2022-09-01-ledger/index.html b/2022-09-01-ledger/index.html index e67440d6cb..c247f711f4 100644 --- a/2022-09-01-ledger/index.html +++ b/2022-09-01-ledger/index.html @@ -12,12 +12,12 @@ - - + +
-

Ledger Team Update

· 2 min read
Jared Corduan

Ledger Update

Since finishing up support for the Vasil Hardfork, the ledger team has been +

Ledger Team Update

· 2 min read
Jared Corduan

Ledger Update

Since finishing up support for the Vasil Hardfork, the ledger team has been focused on two main things: a new ledger era and technical debt.

New minimal ledger era

We have implemented a new ledger era named conway which is nearly identical to the babbage era. This has been the first time that we have been able to see what a minimal ledger era looks like. We have finished this task, modulo any @@ -40,7 +40,7 @@ valid serializations. There is room within CBOR to serialize the same data structure in multiple ways, and it is helpful to have the generators use a wide variety.

  • We have begun re-organizing our test suites.
  • - - + + \ No newline at end of file diff --git a/2022-09-16-ledger/index.html b/2022-09-16-ledger/index.html index 4b4601664c..891f49c105 100644 --- a/2022-09-16-ledger/index.html +++ b/2022-09-16-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 2 min read
    Jared Corduan

    Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    - - + + \ No newline at end of file diff --git a/2022-09-19-db-sync/index.html b/2022-09-19-db-sync/index.html index afa861643a..01af5a80e0 100644 --- a/2022-09-19-db-sync/index.html +++ b/2022-09-19-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB Sync Team Update

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +

    DB Sync Team Update

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last release 13.0.4. It is currently under testing. The Changelog is here and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. @@ -37,7 +37,7 @@ This allows db-sync to restart much faster, without the need to delete data and reinsert them. In the future it can also facilitate migrations in cases where the ledger snapshots have a breaking change, without the need to resync everything from genesis.

    - - + + \ No newline at end of file diff --git a/2022-09-20-consensus/index.html b/2022-09-20-consensus/index.html index 858e398711..fe70add578 100644 --- a/2022-09-20-consensus/index.html +++ b/2022-09-20-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 4 min read
    Damian Nadales

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    - - + + \ No newline at end of file diff --git a/2022-09-27-network/index.html b/2022-09-27-network/index.html index 2b02731c0e..9d92e24a81 100644 --- a/2022-09-27-network/index.html +++ b/2022-09-27-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 3 min read
    Marcin Szamotulski

    Network Update

    Ouroboros Network

    - - + + \ No newline at end of file diff --git a/2022-09-30-ledger/index.html b/2022-09-30-ledger/index.html index 92472309bd..64fd41368c 100644 --- a/2022-09-30-ledger/index.html +++ b/2022-09-30-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. A lot of design work has begun for the next ledger era, but we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the cardano-prelude package. It was barely used in the ledger repository, and it added a dependency @@ -44,7 +44,7 @@ formal ledger model do not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger serializers.
    - - + + \ No newline at end of file diff --git a/2022-10-02-consensus/index.html b/2022-10-02-consensus/index.html index 7cacc06404..0278480790 100644 --- a/2022-10-02-consensus/index.html +++ b/2022-10-02-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the +

    Consensus Team Update

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the UTxO HD prototype. We completed the era-transition and backing store tests, and the mempool tests are advancing at a steady pace. Regarding our work in the Genesis design, we continued our collaboration with the research and networking @@ -70,7 +70,7 @@ selection. This PR involved correcting potentially misleading names of VRF-related functions, and providing context for a particular VRF value is used for tie-breaking.

    - - + + \ No newline at end of file diff --git a/2022-10-04-db-sync/index.html b/2022-10-04-db-sync/index.html index 237166443a..1947eea8fe 100644 --- a/2022-10-04-db-sync/index.html +++ b/2022-10-04-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB Sync Team Update

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts +

    DB Sync Team Update

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts 1266. This has been one of db-sync main objectives for this period. Restarts are now very fast, because db-sync deletes almost nothing from the db, it just replays the ledger rules until it @@ -37,7 +37,7 @@ 1276. The issue which is described in 1270

    - - + + \ No newline at end of file diff --git a/2022-10-04-node-cli-api/index.html b/2022-10-04-node-cli-api/index.html index 56a9668979..60150e9173 100644 --- a/2022-10-04-node-cli-api/index.html +++ b/2022-10-04-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    - - +

    Node API & CLI Team Update

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + \ No newline at end of file diff --git a/2022-10-05-consensus/index.html b/2022-10-05-consensus/index.html index 50ff61ab1e..845fd717b3 100644 --- a/2022-10-05-consensus/index.html +++ b/2022-10-05-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the +

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the performance of the ChainSync jumping logic, which is needed for Genesis. We also rewrote the implementation of the mempool in the UTxO HD prototype which solved the issues that prevented us from running system level benchmarks. Also on the @@ -46,7 +46,7 @@ Byron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few capabilities, or to adapt the default number of capabilities (potentially just while syncing).

    - - + + \ No newline at end of file diff --git a/2022-10-14-hydra/index.html b/2022-10-14-hydra/index.html index e5ae016f1e..c285792da0 100644 --- a/2022-10-14-hydra/index.html +++ b/2022-10-14-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    - - +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    + + \ No newline at end of file diff --git a/2022-10-14-ledger/index.html b/2022-10-14-ledger/index.html index a856f56f41..4dbc84b43e 100644 --- a/2022-10-14-ledger/index.html +++ b/2022-10-14-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing technical debt. We now have the infrastructure for versioning our serialization schemes, @@ -47,7 +47,7 @@ The protocol parameters, in particular, are being worked on. [pull-3045]

  • We are also renaming record fields to be consistent across the repository. [pull-3062]
  • We are now cleaning up all the work we did to understand the performance of the TICKF transition. We have some improvements to the computatation as well. [pull-3068]
  • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
  • The formal ledger is adding support for finite set theory. [pull-20]
  • - - + + \ No newline at end of file diff --git a/2022-10-18-consensus/index.html b/2022-10-18-consensus/index.html index 66d72a19bb..460a3ef045 100644 --- a/2022-10-18-consensus/index.html +++ b/2022-10-18-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for +

    Consensus Team Update

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for different aspects of the UTxO HD prototype: era transitions, mempool, and backing store. Thanks to these tests we were able to uncover a bug in the prototype. On the Genesis front, we benchmarked a different version of the @@ -58,7 +58,7 @@ like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and continuing a good part into Shelley (with the dashed line indicating the Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    - - + + \ No newline at end of file diff --git a/2022-10-19-node-cli-api/index.html b/2022-10-19-node-cli-api/index.html index ffbdfda24f..701430bf99 100644 --- a/2022-10-19-node-cli-api/index.html +++ b/2022-10-19-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + \ No newline at end of file diff --git a/2022-10-21-hydra/index.html b/2022-10-21-hydra/index.html index 02c0c07f2c..5e7a434716 100644 --- a/2022-10-21-hydra/index.html +++ b/2022-10-21-hydra/index.html @@ -12,18 +12,18 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the new HeadV1 specification, completing a list the of identified gaps between specification and implementation while doing so. In the wake of the recent demonstration of SundaeSwap running their DEX in a Hydra Head, they met with them to capture feature ideas & incorporate their feedback on the roadmap, as well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts
    - - + + \ No newline at end of file diff --git a/2022-10-27-crypto/index.html b/2022-10-27-crypto/index.html index d0b540cdf3..c53e09d2d3 100644 --- a/2022-10-27-crypto/index.html +++ b/2022-10-27-crypto/index.html @@ -12,17 +12,17 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to meeting the acceptance criteria in cardano-base, which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    - - + + \ No newline at end of file diff --git a/2022-10-28-hydra/index.html b/2022-10-28-hydra/index.html index 701488e7da..cd58fdff68 100644 --- a/2022-10-28-hydra/index.html +++ b/2022-10-28-hydra/index.html @@ -12,18 +12,18 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the hydra-tui and hydra-node, and delivered a first version of persisted head states by publishing release version 0.8.0. Besides this, they met with researchers on topic of the HeadV1 specification and kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)
    - - + + \ No newline at end of file diff --git a/2022-10-28-network/index.html b/2022-10-28-network/index.html index 83169bdacf..2032566fdd 100644 --- a/2022-10-28-network/index.html +++ b/2022-10-28-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 3 min read
    Marcin Szamotulski

    High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    - - + + \ No newline at end of file diff --git a/2022-10-28-performance-and-tracing/index.html b/2022-10-28-performance-and-tracing/index.html index ac92c90779..3b623eab8b 100644 --- a/2022-10-28-performance-and-tracing/index.html +++ b/2022-10-28-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Performance & Tracing Team Update

    · 2 min read
    Serge Kosyrev

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    - - +

    Performance & Tracing Team Update

    · 2 min read
    Serge Kosyrev

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    + + \ No newline at end of file diff --git a/2022-10-31-open-source/index.html b/2022-10-31-open-source/index.html index f30af81621..ac64d16189 100644 --- a/2022-10-31-open-source/index.html +++ b/2022-10-31-open-source/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Open-Source Team

    · 2 min read
    Marcin Szamotulski

    High Level Summary

    - - + + \ No newline at end of file diff --git a/2022-11-01-db-sync/index.html b/2022-11-01-db-sync/index.html index 31fed94ed7..d457a6e01e 100644 --- a/2022-11-01-db-sync/index.html +++ b/2022-11-01-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB Sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +

    DB Sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, unique and foreign keys. It also provides a way to fix older values and migrates without the need to resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing #1295 @@ -29,7 +29,7 @@ #1294

    Release

    The release has been mostly cherry-picked from master #1294 and its scope can be seen release view

    - - + + \ No newline at end of file diff --git a/2022-11-02-ledger/index.html b/2022-11-02-ledger/index.html index 47f74b1f1c..3a98cc17c8 100644 --- a/2022-11-02-ledger/index.html +++ b/2022-11-02-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the formal ledger repository in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure to the model. In particular, we now have a lot of support for axiomatic set theory. @@ -46,7 +46,7 @@ See [pull-3091].

  • We removed dead code. See [pull-3089].
  • We moved a lot of code from the Shelley specific libraries to the ledger core library. See [pull-3109] and [pull-3110].
  • We've removed more of the awkward legacy template Haskell names. See [pull-3108].
  • - - + + \ No newline at end of file diff --git a/2022-11-02-node-cli-api/index.html b/2022-11-02-node-cli-api/index.html index 0448126923..eb5f88d028 100644 --- a/2022-11-02-node-cli-api/index.html +++ b/2022-11-02-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + \ No newline at end of file diff --git a/2022-11-02-release/index.html b/2022-11-02-release/index.html index 4a87b8b716..9e342340dd 100644 --- a/2022-11-02-release/index.html +++ b/2022-11-02-release/index.html @@ -12,14 +12,14 @@ - - + +
    -

    Node Release Team Update

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +

    Node Release Team Update

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    - - + + \ No newline at end of file diff --git a/2022-11-02-system-test/index.html b/2022-11-02-system-test/index.html index f516e92b5f..8039a537e7 100644 --- a/2022-11-02-system-test/index.html +++ b/2022-11-02-system-test/index.html @@ -12,13 +12,13 @@ - - + +
    -

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    - - +

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    + + \ No newline at end of file diff --git a/2022-11-03-embedding-quality/index.html b/2022-11-03-embedding-quality/index.html index 007eabe0f4..da5d8d3a8c 100644 --- a/2022-11-03-embedding-quality/index.html +++ b/2022-11-03-embedding-quality/index.html @@ -12,14 +12,14 @@ - - + +
    -

    Embedding Quality Workstream

    · One min read
    Dorin Solomon

    High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    - - + + \ No newline at end of file diff --git a/2022-11-04-hydra/index.html b/2022-11-04-hydra/index.html index 47e5016e15..1251a70147 100644 --- a/2022-11-04-hydra/index.html +++ b/2022-11-04-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452
    - - +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452
    + + \ No newline at end of file diff --git a/2022-11-04-mithril/index.html b/2022-11-04-mithril/index.html index c58fdfa695..a57dcee067 100644 --- a/2022-11-04-mithril/index.html +++ b/2022-11-04-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    - - +

    Mithril Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    + + \ No newline at end of file diff --git a/2022-11-11-crypto/index.html b/2022-11-11-crypto/index.html index ba064f2649..6fb93d3034 100644 --- a/2022-11-11-crypto/index.html +++ b/2022-11-11-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.
    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.
    + + \ No newline at end of file diff --git a/2022-11-11-hydra/index.html b/2022-11-11-hydra/index.html index 1816921eff..7f28b70f7a 100644 --- a/2022-11-11-hydra/index.html +++ b/2022-11-11-hydra/index.html @@ -12,14 +12,14 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    - - + + \ No newline at end of file diff --git a/2022-11-11-ledger/index.html b/2022-11-11-ledger/index.html index 3430fb9940..54f09162c9 100644 --- a/2022-11-11-ledger/index.html +++ b/2022-11-11-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have had since the Shelley phase. It will take time to properly review it, and we will need to put in a lot of effort to integrate it with the downstream components, but this is a huge @@ -50,7 +50,7 @@ See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].

  • We have added a few things to the ledger repository to make it conform to the Cardano Engineering Handbook See [pull-3139].
  • - - + + \ No newline at end of file diff --git a/2022-11-11-network/index.html b/2022-11-11-network/index.html index 0c1f712208..b8205254a7 100644 --- a/2022-11-11-network/index.html +++ b/2022-11-11-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster +

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster (which consists of 50 nodes). There is a performance regression in the header notification metric. The P2P cluster is constructed with the same topology as the non-p2p reference one this indicates some regression which @@ -31,7 +31,7 @@ pool operator. They can indicate a problem in the deployed system, but also they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    - - + + \ No newline at end of file diff --git a/2022-11-16-consensus/index.html b/2022-11-16-consensus/index.html index bc3b979f43..28d0a9a200 100644 --- a/2022-11-16-consensus/index.html +++ b/2022-11-16-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 6 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team started documenting the +

    Consensus Team Update

    · 6 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team started documenting the implementation of the UTxO HD feature and continued developing tests for it. As part of our work on UTxO HD, we improved the Haskell support for LMDB. We also spent time working on the LSM tree prototype, and designed a parameter tuning @@ -78,7 +78,7 @@ computation of the TICKF rule can help alleviating the growing block production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the networking team, which is intended for use in the adoption of P2P.

    - - + + \ No newline at end of file diff --git a/2022-11-16-node-cli-api/index.html b/2022-11-16-node-cli-api/index.html index 4e24dbffc1..253d023732 100644 --- a/2022-11-16-node-cli-api/index.html +++ b/2022-11-16-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -
    - - +
    + + \ No newline at end of file diff --git a/2022-11-16-performance-and-tracing/index.html b/2022-11-16-performance-and-tracing/index.html index 1712917e56..8b0a3db50d 100644 --- a/2022-11-16-performance-and-tracing/index.html +++ b/2022-11-16-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    - - +

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    + + \ No newline at end of file diff --git a/2022-11-18-hydra/index.html b/2022-11-18-hydra/index.html index 10c1d54a6b..c10e35259d 100644 --- a/2022-11-18-hydra/index.html +++ b/2022-11-18-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    - - +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    + + \ No newline at end of file diff --git a/2022-11-18-mithril/index.html b/2022-11-18-mithril/index.html index 3a147293fd..d538669b73 100644 --- a/2022-11-18-mithril/index.html +++ b/2022-11-18-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398
    - - +

    Mithril Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398
    + + \ No newline at end of file diff --git a/2022-11-23-ledger/index.html b/2022-11-23-ledger/index.html index 4c115b6577..180d9281ce 100644 --- a/2022-11-23-ledger/index.html +++ b/2022-11-23-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, our proposal for entering the Voltaire phase. Please come join the discussion, this will be an incredibly exciting transition for Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. @@ -44,7 +44,7 @@ We have deduplicated a some things: pull-3129, pull-3162. We have memoized a problematic computation (though more due diligence is needed before we can merge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    - - + + \ No newline at end of file diff --git a/2022-11-25-crypto/index.html b/2022-11-25-crypto/index.html index 3a43e136cd..2443f47ee5 100644 --- a/2022-11-25-crypto/index.html +++ b/2022-11-25-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    + + \ No newline at end of file diff --git a/2022-11-25-hydra/index.html b/2022-11-25-hydra/index.html index 4ab6f22d57..2a698fce4d 100644 --- a/2022-11-25-hydra/index.html +++ b/2022-11-25-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    - - +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    + + \ No newline at end of file diff --git a/2022-11-28-network/index.html b/2022-11-28-network/index.html index 39387566ed..a31029efe7 100644 --- a/2022-11-28-network/index.html +++ b/2022-11-28-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +

    Network Team Update

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with Robust Optimised Peer Selection also more commonly known as P2P. In the last update, we informed about a performance regression, but it turns out it only affects block producers, and thus we highly advise against running it on @@ -58,7 +58,7 @@ (as captured by ‘∆Q’) are being used to both frame the necessary notions and provide a basis for assuring the refinement and reification of such systems, from initial concept to operational infrastructure.

    You can download the slides from here.

    - - + + \ No newline at end of file diff --git a/2022-11-30-consensus/index.html b/2022-11-30-consensus/index.html index 6d0f99eba2..87233de76a 100644 --- a/2022-11-30-consensus/index.html +++ b/2022-11-30-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic cursor API that was needed to implement LMDB range reads, which is in turn required for the implementation of the UTxO HD feature. We added tables to several tests in for the UTxO HD feature, which increases our confidence in the @@ -48,7 +48,7 @@ documentation of ouroboros-network (#4197). This overview describes the consensus components and adds a hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    - - + + \ No newline at end of file diff --git a/2022-11-30-node-cli-api/index.html b/2022-11-30-node-cli-api/index.html index 09ab134844..14d4b71170 100644 --- a/2022-11-30-node-cli-api/index.html +++ b/2022-11-30-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-11-30 - 2022-12-13

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-11-30 - 2022-12-13

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + \ No newline at end of file diff --git a/2022-11-30-performance-and-tracing/index.html b/2022-11-30-performance-and-tracing/index.html index a75cdb9924..61d56f9d9a 100644 --- a/2022-11-30-performance-and-tracing/index.html +++ b/2022-11-30-performance-and-tracing/index.html @@ -12,15 +12,15 @@ - - + +
    -

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    - - + + \ No newline at end of file diff --git a/2022-12-01-db-sync/index.html b/2022-12-01-db-sync/index.html index 5639f69dc5..27a927f434 100644 --- a/2022-12-01-db-sync/index.html +++ b/2022-12-01-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +

    DB sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces migrations. This release finalises the objectives that were set for db-sync for the previous 3 months period and part of the syncing speed objective set for the next period @@ -30,7 +30,7 @@ release and development process, so that it takes into account migrations release process

  • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for docker.

  • - - + + \ No newline at end of file diff --git a/2022-12-01-mithril/index.html b/2022-12-01-mithril/index.html index 16036747d3..bc99d22642 100644 --- a/2022-12-01-mithril/index.html +++ b/2022-12-01-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398
    + + \ No newline at end of file diff --git a/2022-12-01-system-test/index.html b/2022-12-01-system-test/index.html index 9668362c5f..263a3a8c62 100644 --- a/2022-12-01-system-test/index.html +++ b/2022-12-01-system-test/index.html @@ -12,14 +12,14 @@ - - + +
    -

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
    - - + + \ No newline at end of file diff --git a/2022-12-02-hydra/index.html b/2022-12-02-hydra/index.html index ecf1bbd462..fba0daae5d 100644 --- a/2022-12-02-hydra/index.html +++ b/2022-12-02-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress after last week's summit. They have extended their model-based testing (MBT) approach with transaction creation & observation #410, solved @@ -25,7 +25,7 @@ initialization #439. Also, the Hydra researchers updated the security proofs of the Coordinated Hydra Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working
    - - + + \ No newline at end of file diff --git a/2022-12-09-crypto/index.html b/2022-12-09-crypto/index.html index add2ac1314..c9b558b8a9 100644 --- a/2022-12-09-crypto/index.html +++ b/2022-12-09-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    + + \ No newline at end of file diff --git a/2022-12-09-hydra/index.html b/2022-12-09-hydra/index.html index 429e9585b8..6204182118 100644 --- a/2022-12-09-hydra/index.html +++ b/2022-12-09-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    - - +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    + + \ No newline at end of file diff --git a/2022-12-09-ledger/index.html b/2022-12-09-ledger/index.html index 511aa32352..f0d1887ccb 100644 --- a/2022-12-09-ledger/index.html +++ b/2022-12-09-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly cardano-ledger-api package! A GitHub project will be filled out in the days ahead, @@ -53,7 +53,7 @@ a serialization bug.

  • pull-3172 - We removed dead code.
  • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to dislike. We made these two ledger eras now uniform with the rest of our code base.
  • pull-3184 - We organized our property testing code.
  • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the ledger state to the Plutus script context.
  • - - + + \ No newline at end of file diff --git a/2022-12-12-network/index.html b/2022-12-12-network/index.html index 7b9e5ff6ff..f528ca5eed 100644 --- a/2022-12-12-network/index.html +++ b/2022-12-12-network/index.html @@ -12,17 +12,17 @@ - - + +
    -

    Network Team Update

    · One min read
    Marcin Szamotulski

    High level summary

    In last sprint the team focused on preparations for the conference talk at +

    Network Team Update

    · One min read
    Marcin Szamotulski

    High level summary

    In last sprint the team focused on preparations for the conference talk at OPODIS 2022. We also worked on preparations to publish io-sim and related packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol versiones are serialised in cardano-node log (PR #4691).

    - - + + \ No newline at end of file diff --git a/2022-12-14-consensus/index.html b/2022-12-14-consensus/index.html index 0fb5965231..e91b708b20 100644 --- a/2022-12-14-consensus/index.html +++ b/2022-12-14-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the backing store and Mempool on the UTxO-HD branch with important discoveries regarding parallel QSM testing. We also worked with the Ledger team to envisage the modifications that are required in Ledger and Consensus to accommodate the @@ -59,7 +59,7 @@ documentation of ouroboros-network. This overview describes the consensus components and adds a hyperlinked map to the modules documentation.

    - - + + \ No newline at end of file diff --git a/2022-12-14-db-sync/index.html b/2022-12-14-db-sync/index.html index a5df138423..483ccbbef6 100644 --- a/2022-12-14-db-sync/index.html +++ b/2022-12-14-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses reverse indexes, same as the release #1320 @@ -27,7 +27,7 @@ they also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the number of queries that db-sync does during syncing an make syncing faster.
    - - + + \ No newline at end of file diff --git a/2022-12-14-node-cli-api/index.html b/2022-12-14-node-cli-api/index.html index 140adb00ce..b5620254db 100644 --- a/2022-12-14-node-cli-api/index.html +++ b/2022-12-14-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + \ No newline at end of file diff --git a/2022-12-14-performance-and-tracing/index.html b/2022-12-14-performance-and-tracing/index.html index 82642cc52f..0da49a82e9 100644 --- a/2022-12-14-performance-and-tracing/index.html +++ b/2022-12-14-performance-and-tracing/index.html @@ -12,17 +12,17 @@ - - + +
    -

    Performance & tracing update

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +

    Performance & tracing update

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.
    - - + + \ No newline at end of file diff --git a/2022-12-15-mithril/index.html b/2022-12-15-mithril/index.html index f88ecab410..85c4ffc4e7 100644 --- a/2022-12-15-mithril/index.html +++ b/2022-12-15-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    + + \ No newline at end of file diff --git a/2022-12-16-hydra/index.html b/2022-12-16-hydra/index.html index b2e10b4166..47d603a1d9 100644 --- a/2022-12-16-hydra/index.html +++ b/2022-12-16-hydra/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    - - +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    + + \ No newline at end of file diff --git a/2022-12-28-node-cli-api/index.html b/2022-12-28-node-cli-api/index.html index 55f8791d6e..c9d3101cb1 100644 --- a/2022-12-28-node-cli-api/index.html +++ b/2022-12-28-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + \ No newline at end of file diff --git a/2023-01-05-ledger/index.html b/2023-01-05-ledger/index.html index 2395981c6c..deb3a18425 100644 --- a/2023-01-05-ledger/index.html +++ b/2023-01-05-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, +

    Ledger Team Update

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, built out the new Conway era transaction body (in line with CIP-1694), greatly reduce some problematically large calculations on the epoch boundary, and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. @@ -65,7 +65,7 @@ reducing many constraints.

  • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
  • pull-3170 - We set the cabal-version to 3.0 in our projects.
  • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
  • pull-3225 - We switch from ormolu to fourmolu. The reason was to be able to finally have more diff friendly code!
  • - - + + \ No newline at end of file diff --git a/2023-01-06-crypto/index.html b/2023-01-06-crypto/index.html index 0e6d2f0e46..5659330326 100644 --- a/2023-01-06-crypto/index.html +++ b/2023-01-06-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    + + \ No newline at end of file diff --git a/2023-01-11-consensus/index.html b/2023-01-11-consensus/index.html index 6f03a957b8..b9c76f5555 100644 --- a/2023-01-11-consensus/index.html +++ b/2023-01-11-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and discussing with the Ledger team the changes that might be required for the next iterations. The pull request that adds the Conway era is waiting for a second @@ -47,7 +47,7 @@ is in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the explanations about the tests are easier to find in the relevant modules, and the documentation is easier to keep up to date.

    - - + + \ No newline at end of file diff --git a/2023-01-11-performance-and-tracing/index.html b/2023-01-11-performance-and-tracing/index.html index 4e1bafd406..f9c8efeb91 100644 --- a/2023-01-11-performance-and-tracing/index.html +++ b/2023-01-11-performance-and-tracing/index.html @@ -12,15 +12,15 @@ - - + +
    -

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +

    Performance & tracing update

    · 2 min read
    Serge Kosyrev

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    - - + + \ No newline at end of file diff --git a/2023-01-12-mithril/index.html b/2023-01-12-mithril/index.html index 7215de556f..4d6ce81e51 100644 --- a/2023-01-12-mithril/index.html +++ b/2023-01-12-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    + + \ No newline at end of file diff --git a/2023-01-13-hydra/index.html b/2023-01-13-hydra/index.html index 4b4296ac00..c8b7ae7400 100644 --- a/2023-01-13-hydra/index.html +++ b/2023-01-13-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the technical specification, closed gaps in hydra-plutus scripts, made the unique headId available to Hydra clients through the API, allow the hydra-node to explicitly synchronize from genesis (if configured), and fixed smaller log and @@ -31,7 +31,7 @@ by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also an outlook where Hydra is headed for in 2023.

  • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest version in this repository.
  • Add unique headId to API and hence make it available to clients.
  • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
  • Closed gaps in hydra-plutus scripts
    • bounded transaction validity (ADR21)
    • enforcing contract continuity via state token in output
  • Fixed JSON for some logs and smaller build issues reported by new users.
  • What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.
    - - + + \ No newline at end of file diff --git a/2023-01-13-release/index.html b/2023-01-13-release/index.html index 8dcdf4fbfd..58132cd7ba 100644 --- a/2023-01-13-release/index.html +++ b/2023-01-13-release/index.html @@ -12,15 +12,15 @@ - - + +
    -

    Node Release Team Update

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +

    Node Release Team Update

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on release/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. This work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    - - + + \ No newline at end of file diff --git a/2023-01-13-system-test/index.html b/2023-01-13-system-test/index.html index 16563ef71d..bc5c8a1075 100644 --- a/2023-01-13-system-test/index.html +++ b/2023-01-13-system-test/index.html @@ -12,16 +12,16 @@ - - + +
    -

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +

    System Test Team Update

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === to === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests
    - - + + \ No newline at end of file diff --git a/2023-01-14-db-sync/index.html b/2023-01-14-db-sync/index.html index 0345c45a46..4aabf9ad37 100644 --- a/2023-01-14-db-sync/index.html +++ b/2023-01-14-db-sync/index.html @@ -12,18 +12,18 @@ - - + +
    -

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP #1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 #1332
    • Technical debt: Add code formatter fourmolu #1334
    • Preparing and tracking Conway and UTxO integration
    - - + + \ No newline at end of file diff --git a/2023-01-19-ledger/index.html b/2023-01-19-ledger/index.html index d2210fab95..d3156c88c4 100644 --- a/2023-01-19-ledger/index.html +++ b/2023-01-19-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 (restructuring the ledger state), fixed the PDF hosting problem (mostly the formal specs), built out more of the new user-friendly ledger API, @@ -42,7 +42,7 @@ (a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative of not just an initial state, generate a single random valid block, and then test our properties. The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    - - + + \ No newline at end of file diff --git a/2023-01-20-crypto/index.html b/2023-01-20-crypto/index.html index 0ae0e851b7..a1fa18b21d 100644 --- a/2023-01-20-crypto/index.html +++ b/2023-01-20-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
    + + \ No newline at end of file diff --git a/2023-01-20-hydra/index.html b/2023-01-20-hydra/index.html index 1fca3c0b57..3cf19b379e 100644 --- a/2023-01-20-hydra/index.html +++ b/2023-01-20-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 specification. Of which a first version has been aggregated and is currently under review. They aligned the on-chain scripts of reimbursing funds on abort like defined in the specification, improved the mutation test framework to have @@ -25,7 +25,7 @@ TUI example client make hydra-node easier to use and a first experiment of a Hydra Head explorer was showing the utility of this - see what Heads exist on the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)
    - - + + \ No newline at end of file diff --git a/2023-01-20-network/index.html b/2023-01-20-network/index.html index fbb5b80c68..fdfa417e06 100644 --- a/2023-01-20-network/index.html +++ b/2023-01-20-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking teams gave a green light for the release, and we made decent progress with some CI problem which we encountered on the way (PR #4612). We are also working on peer sharing, making improvements in our testing infrastructure, reducing @@ -28,7 +28,7 @@ its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes reviewing two PRs: PR #57 and PR #60 as well as writing an announcement blog post.

    - - + + \ No newline at end of file diff --git a/2023-01-20-sre/index.html b/2023-01-20-sre/index.html index b83c2bdf0f..5d7e905703 100644 --- a/2023-01-20-sre/index.html +++ b/2023-01-20-sre/index.html @@ -12,14 +12,14 @@ - - + +
    -

    SRE Team Update

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +

    SRE Team Update

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds
    - - + + \ No newline at end of file diff --git a/2023-01-25-consensus/index.html b/2023-01-25-consensus/index.html index b925097076..8267a230b5 100644 --- a/2023-01-25-consensus/index.html +++ b/2023-01-25-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team finished the testing activities +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    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 @@ -47,7 +47,7 @@ happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull request to facilitate compiling consensus.

    - - + + \ No newline at end of file diff --git a/2023-01-25-node-cli-api/index.html b/2023-01-25-node-cli-api/index.html index 3420cfc6b2..ac3765c650 100644 --- a/2023-01-25-node-cli-api/index.html +++ b/2023-01-25-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + \ No newline at end of file diff --git a/2023-01-26-mithril/index.html b/2023-01-26-mithril/index.html index 6cd6f3cb64..289e3eea44 100644 --- a/2023-01-26-mithril/index.html +++ b/2023-01-26-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    + + \ No newline at end of file diff --git a/2023-01-27-hydra/index.html b/2023-01-27-hydra/index.html index 5146a53283..3633d36097 100644 --- a/2023-01-27-hydra/index.html +++ b/2023-01-27-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, contributors and interested people from the community. The monthly repot for January 2023 is a digest of the things presented and also includes a summary of the meeting. The Hydra @@ -26,7 +26,7 @@ information on every PR and also on the website now.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.
    - - + + \ No newline at end of file diff --git a/2023-02-02-ledger/index.html b/2023-02-02-ledger/index.html index eb486b003d..d37a0855ce 100644 --- a/2023-02-02-ledger/index.html +++ b/2023-02-02-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, +

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, cleaning up and debugging some serialization issues, adding tests, and work on large projects that are still ongoing. We also released a CIP this week that aims to make the ledger @@ -29,7 +29,7 @@ Towards this end, we are now properly gating the new flexible encoders until version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators. See the previous ledger update for more information about this project.

    - - + + \ No newline at end of file diff --git a/2023-02-03-crypto/index.html b/2023-02-03-crypto/index.html index 37da403cd8..6a974b6858 100644 --- a/2023-02-03-crypto/index.html +++ b/2023-02-03-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
    - - +

    Crypto Team Update

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
    + + \ No newline at end of file diff --git a/2023-02-03-goedel/index.html b/2023-02-03-goedel/index.html index 142aa05256..36613d7a81 100644 --- a/2023-02-03-goedel/index.html +++ b/2023-02-03-goedel/index.html @@ -12,19 +12,19 @@ - - + +
    -

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC 2023 conference
    • Finished preparing and submitted a paper on performance engineering to an ACM workshop
    • Preparing a draft paper for future submission about verifying design refinements for distributed system design
    • Consulting on performance design of other IO projects
    - - + + \ No newline at end of file diff --git a/2023-02-03-hydra/index.html b/2023-02-03-hydra/index.html index 1e5a8d8682..b101985dd0 100644 --- a/2023-02-03-hydra/index.html +++ b/2023-02-03-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about rollbacks and updated graphs (#448). In a next step, the specification will be made more approachable and an open standard. They @@ -25,7 +25,7 @@ environment and continued aligning the hydra-plutus scripts with the specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs #448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    - - + + \ No newline at end of file diff --git a/2023-02-08-consensus/index.html b/2023-02-08-consensus/index.html index dda3d21324..40f1512e04 100644 --- a/2023-02-08-consensus/index.html +++ b/2023-02-08-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level benchmarks. We have created a new repository that contains the anti-diff packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to audit the implementation design, and we continued working on basic tests and @@ -36,7 +36,7 @@ to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via BlockFetch and ChainSync. This tool can help in assisting our local benchmarking efforts (for instance Genesis' ChainSync jumping prototype).

    - - + + \ No newline at end of file diff --git a/2023-02-08-node-cli-api/index.html b/2023-02-08-node-cli-api/index.html index 43c6c25374..4bdc855f8b 100644 --- a/2023-02-08-node-cli-api/index.html +++ b/2023-02-08-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-02-08 - 2023-02-21

    High level summary

    More maintenance and resolving raised issues.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-02-08 - 2023-02-21

    High level summary

    More maintenance and resolving raised issues.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + \ No newline at end of file diff --git a/2023-02-08-performance-and-tracing/index.html b/2023-02-08-performance-and-tracing/index.html index 7bb84346c1..f41d67f806 100644 --- a/2023-02-08-performance-and-tracing/index.html +++ b/2023-02-08-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Performance & tracing update

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    - - +

    Performance & tracing update

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    + + \ No newline at end of file diff --git a/2023-02-09-mithril/index.html b/2023-02-09-mithril/index.html index 9bdb416bea..aeb4049335 100644 --- a/2023-02-09-mithril/index.html +++ b/2023-02-09-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    + + \ No newline at end of file diff --git a/2023-02-10-hydra/index.html b/2023-02-10-hydra/index.html index e504d773cf..80a098aef9 100644 --- a/2023-02-10-hydra/index.html +++ b/2023-02-10-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts implementation further with the specification. This also resulted in a slight improvement on Hydra script size and costs. They consequently analysed the asymptotic complexity of collect and fanout and how they relate. Also plutus-tx @@ -25,7 +25,7 @@ on-chain performance. In discussions with researchers and internal auditors, they also uncovered next steps on further securing the Head protocl using a "full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)
    - - + + \ No newline at end of file diff --git a/2023-02-17-crypto/index.html b/2023-02-17-crypto/index.html index f772cfc236..7ad64a69ab 100644 --- a/2023-02-17-crypto/index.html +++ b/2023-02-17-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
    + + \ No newline at end of file diff --git a/2023-02-17-goedel/index.html b/2023-02-17-goedel/index.html index 5f46341656..2a82518ab4 100644 --- a/2023-02-17-goedel/index.html +++ b/2023-02-17-goedel/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one technical report, distributivity properties of deltaQ, and consulting @@ -25,7 +25,7 @@ paper revisions accordingly

  • Investigating distributivity properties of DeltaQ

  • Preparing sections on the thorn calculus and idempotency laws for draft paper about verifying design refinements for distributed system design

  • Consulting on performance design with Marlowe team

  • - - + + \ No newline at end of file diff --git a/2023-02-17-hydra/index.html b/2023-02-17-hydra/index.html index a74fcd1648..71ccef740f 100644 --- a/2023-02-17-hydra/index.html +++ b/2023-02-17-hydra/index.html @@ -12,17 +12,17 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests during the contestation period. These will now always push out the deadline and hence contestation periods are easier to pick (depending on the network a Head runs on). Furthermore, they added an important acceptance test and completed internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    - - + + \ No newline at end of file diff --git a/2023-02-17-ledger/index.html b/2023-02-17-ledger/index.html index 9968e34df6..3ce1423976 100644 --- a/2023-02-17-ledger/index.html +++ b/2023-02-17-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +

    Ledger Team Update

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base and ouroboros-network repositories. The vast majority of the effort involved all the changes to the ledger serialization libraries (and the interplay with cardano-base) which now support proper versioning. @@ -41,7 +41,7 @@ and writing actual property tests for the ledger, but the approach still seems viable and we are hopeful that it could replace our trace generators. The WIP can be followed here: pull-3219.

    - - + + \ No newline at end of file diff --git a/2023-02-17-network/index.html b/2023-02-17-network/index.html index a6c8ad47b4..45419e1217 100644 --- a/2023-02-17-network/index.html +++ b/2023-02-17-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · One min read
    Marcin Szamotulski

    High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one +

    Network Team Update

    · One min read
    Marcin Szamotulski

    High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one fix to 1.35.6 release, another one will likely be part of next release. The first one is already included in ouroboros-network-0.3.0.1 release. These bugs could only affect nodes which are out of sync and thus should not impose @@ -26,7 +26,7 @@ implementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query network protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with cardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)
    - - + + \ No newline at end of file diff --git a/2023-02-21-db-sync/index.html b/2023-02-21-db-sync/index.html index ff7b4ced18..7ce013439d 100644 --- a/2023-02-21-db-sync/index.html +++ b/2023-02-21-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. +

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. We also investigated and had the first working UTxO-HD integration which is one of the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't use the full on disk storage but keeps things in memory and the plan is to keep @@ -29,7 +29,7 @@ We try to make these procedures work also on older schema version, without the need to migrate to newer schema, which can be very useful for fixing existing snapshots.
    - - + + \ No newline at end of file diff --git a/2023-02-22-consensus/index.html b/2023-02-22-consensus/index.html index 66f97c76d8..d0475e920a 100644 --- a/2023-02-22-consensus/index.html +++ b/2023-02-22-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks for UTxO HD. They showed a substantial performance regression, so we spent some time analyzing the results. We found out the frequency at which ledger snapshots were taken was too high, so we requested the benchmarking team a new run with a @@ -53,7 +53,7 @@ 0.3.0.0 to CHaP. Remember that we decided to split the packages related to Consensus into two bundles, one with the core functionality, Cardano-agnostic code, and another bundle with instantiations specific to Cardano.

    - - + + \ No newline at end of file diff --git a/2023-02-23-mithril/index.html b/2023-02-23-mithril/index.html index a907096c85..13d4a3a4e0 100644 --- a/2023-02-23-mithril/index.html +++ b/2023-02-23-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    + + \ No newline at end of file diff --git a/2023-02-23-performance-and-tracing/index.html b/2023-02-23-performance-and-tracing/index.html index 610106c99b..e9f631c752 100644 --- a/2023-02-23-performance-and-tracing/index.html +++ b/2023-02-23-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Performance & tracing update

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    - - +

    Performance & tracing update

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    + + \ No newline at end of file diff --git a/2023-02-24-hydra/index.html b/2023-02-24-hydra/index.html index d28e802a95..d8c89c48bd 100644 --- a/2023-02-24-hydra/index.html +++ b/2023-02-24-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team continue closing many gaps and aligning the +

    Hydra Team Update

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team continue closing many gaps and aligning the implementation with the specification. More over, they have groomed a plan to make Hydra Mainnet compatible. Also, they continue moving forward with the internal auditing and have published some auditing guidelines to receive @@ -31,7 +31,7 @@ #746 and added support for building on aarch64 #673

  • Met with a potential customer of Hydra for Payments
  • What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification
    - - + + \ No newline at end of file diff --git a/2023-03-02-network/index.html b/2023-03-02-network/index.html index 5b4da911ef..baa9fd344a 100644 --- a/2023-03-02-network/index.html +++ b/2023-03-02-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the current sprint the networking team focused on fixing bugs and pushing +

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the current sprint the networking team focused on fixing bugs and pushing forward implementation of eclipse evasion. We also found a bug in our simulation testing setup (in integration of test node). We also overviewed the work on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-netork-0.4.0.1 and @@ -38,7 +38,7 @@ simulated restarts) store of blocks which does chain selection. This ensures that the simulated node is using block-fetch to download blocks announced by chain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    - - + + \ No newline at end of file diff --git a/2023-03-03-crypto/index.html b/2023-03-03-crypto/index.html index 0f2105b468..06a84a57c3 100644 --- a/2023-03-03-crypto/index.html +++ b/2023-03-03-crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    - - +

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    + + \ No newline at end of file diff --git a/2023-03-03-goedel/index.html b/2023-03-03-goedel/index.html index e6c0ea9fa6..4d1842f915 100644 --- a/2023-03-03-goedel/index.html +++ b/2023-03-03-goedel/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one technical report, improving the deltaQ tutorial, consulting on @@ -28,7 +28,7 @@ laws for draft paper about verifying design refinements for distributed system design

  • Studying Cardano chain sync protocol

  • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin Protocol" has been accepted for publication at IEEE ICBC 2023

  • - - + + \ No newline at end of file diff --git a/2023-03-03-hydra/index.html b/2023-03-03-hydra/index.html index cf910ee80b..e116b9450e 100644 --- a/2023-03-03-hydra/index.html +++ b/2023-03-03-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.9.0 - a version of the hydra-node with fully specified behavior of on-chain scripts and off-chain head-logic, decreased costs for opening/closing a Head and scalable @@ -27,7 +27,7 @@ plans to extend invitations through the new Hydra #announcements discord channel for the next months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution
    - - + + \ No newline at end of file diff --git a/2023-03-03-ledger/index.html b/2023-03-03-ledger/index.html index 3891bae9dd..26e0488e7e 100644 --- a/2023-03-03-ledger/index.html +++ b/2023-03-03-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing support for the main ledger properties. @@ -29,7 +29,7 @@ lexicographically ordered in the Plutus script context. See pull-3306.

  • We fixed a problem with the address deserialiazation (we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). See pull-3307.
  • We fixed a problem with our nix build. See pull-3311.
  • We fixed a problem with our NoThunks tests. See pull-3310.
  • We improved our nightly tests. See pull-3316.
  • - - + + \ No newline at end of file diff --git a/2023-03-08-consensus/index.html b/2023-03-08-consensus/index.html index 4427d9a6c6..4574762007 100644 --- a/2023-03-08-consensus/index.html +++ b/2023-03-08-consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +

    Consensus Team Update

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD prototype, and introducing improvements to the lmdb related packages. In particular we identified an opportunity to gain performance by handling locks in a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and @@ -47,7 +47,7 @@ ouroboros-network to ouroboros-consensus, in preparation for migrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions, thereby reducing the time CI jobs take.

    - - + + \ No newline at end of file diff --git a/2023-03-08-performance-and-tracing/index.html b/2023-03-08-performance-and-tracing/index.html index b9b5dcce08..c6e9878c71 100644 --- a/2023-03-08-performance-and-tracing/index.html +++ b/2023-03-08-performance-and-tracing/index.html @@ -12,18 +12,18 @@ - - + +
    -

    Performance & tracing update

    · 2 min read
    Michael Karg
    • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
    • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
    • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
    • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
    • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

    Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +

    Performance & tracing update

    · 2 min read
    Michael Karg
    • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
    • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
    • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
    • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
    • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

    Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking data more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable third parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    - - + + \ No newline at end of file diff --git a/2023-03-09-mithril/index.html b/2023-03-09-mithril/index.html index 9a86ec501f..761cce7d93 100644 --- a/2023-03-09-mithril/index.html +++ b/2023-03-09-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    + + \ No newline at end of file diff --git a/2023-03-10-hydra/index.html b/2023-03-10-hydra/index.html index c8063907b1..0ef001c00a 100644 --- a/2023-03-10-hydra/index.html +++ b/2023-03-10-hydra/index.html @@ -12,17 +12,17 @@ - - + +
    -

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved the test suite of the hydra-plutus scripts. The specification is constantly getting improved upon reviewer feedback on overleaf - this week the graphical notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution
    - - + + \ No newline at end of file diff --git a/2023-03-16-goedel/index.html b/2023-03-16-goedel/index.html index 47821bc897..8efeaa908a 100644 --- a/2023-03-16-goedel/index.html +++ b/2023-03-16-goedel/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    Goedel Team Update

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers improving the deltaQ tutorial, consulting on performance design, and @@ -25,7 +25,7 @@ improvement in performance

  • Preparing sections on the communication language and bisimulation proofs for draft paper about verifying design refinements for distributed system design

  • Camera ready version of Djed paper under preparation

  • - - + + \ No newline at end of file diff --git a/2023-03-17-hydra/index.html b/2023-03-17-hydra/index.html index 46b81d6106..cce705fd52 100644 --- a/2023-03-17-hydra/index.html +++ b/2023-03-17-hydra/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +

    Hydra Team Update

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the hydra-node. They added a golden test suite for hydra-plutus scripts, added some detection of hydra-node misconfiguration, established a limit of 100 ADA per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra @@ -30,7 +30,7 @@ changes #772

  • Removed hardcoded error codes in plutus scripts #768
  • Detect misconfiguration of a hydra-node given persistent state #767
  • Met with potential users for hydra-pay
  • Prepared hydra workshop
  • What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature
    - - + + \ No newline at end of file diff --git a/2023-03-17-ledger/index.html b/2023-03-17-ledger/index.html index 9e7d937261..cf54af613d 100644 --- a/2023-03-17-ledger/index.html +++ b/2023-03-17-ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. +

    Ledger Team Update

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. In particular, we expanded the ledger API significantly, including lots of governance features. We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. @@ -27,7 +27,7 @@ For the (conway) per-DRep distribution, this is will allow those who have delegated their votes to a DRep to have time to react to any votes that they disapprove of. (Sorry, no code to share just yet, more to come.)

    Technical debt

    - - + + \ No newline at end of file diff --git a/2023-03-21-network/index.html b/2023-03-21-network/index.html index 3dff445e19..b218fb252f 100644 --- a/2023-03-21-network/index.html +++ b/2023-03-21-network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +

    Network Team Update

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P functionality.

    We received reports from some SPOs who encountered problems with their non P2P block producing nodes not being able to connect to their P2P relay. Karl Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a @@ -35,7 +35,7 @@ refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see #73).

    We merged a fix of configuration of accepted connections limit in cardano-node (see #4902).

    - - + + \ No newline at end of file diff --git a/2023-03-22-consensus/index.html b/2023-03-22-consensus/index.html index 1bbf5db116..36ce23ab74 100644 --- a/2023-03-22-consensus/index.html +++ b/2023-03-22-consensus/index.html @@ -12,19 +12,19 @@ - - + +
    -

    Consensus Team Update

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +

    Consensus Team Update

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD prototype, and design and testing of Genesis. We also extracted the fs-sim package, which provides a file-system abstraction layer that can be used for testing and simulation. This makes the Consensus code base smaller, while providing a package that the community can reuse and contribute to. We also fixed a failing property test related to iterators. We are also working on mempool and VRF improvements.

    Low-level details

    - - + + \ No newline at end of file diff --git a/2023-03-22-performance-and-tracing/index.html b/2023-03-22-performance-and-tracing/index.html index e74aea3749..b4ad2d0789 100644 --- a/2023-03-22-performance-and-tracing/index.html +++ b/2023-03-22-performance-and-tracing/index.html @@ -12,19 +12,19 @@ - - + +
    -

    Performance & tracing update

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +

    Performance & tracing update

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points for users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will increase confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    - - + + \ No newline at end of file diff --git a/2023-03-23-db-sync/index.html b/2023-03-23-db-sync/index.html index 261c750e2f..544e8aea10 100644 --- a/2023-03-23-db-sync/index.html +++ b/2023-03-23-db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +

    DB-sync Team Update

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an epoch, but also the first epoch of the last epoch. #1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values @@ -26,8 +26,8 @@ #1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync mainnet in hours. -#1379
    - - +#1379
    + + \ No newline at end of file diff --git a/2023-03-23-mithril/index.html b/2023-03-23-mithril/index.html index b92dd4c95b..c88c586aa3 100644 --- a/2023-03-23-mithril/index.html +++ b/2023-03-23-mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818
    - - +

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818
    + + \ No newline at end of file diff --git a/2023-03-24-hydra/index.html b/2023-03-24-hydra/index.html new file mode 100644 index 0000000000..b85e30c3a3 --- /dev/null +++ b/2023-03-24-hydra/index.html @@ -0,0 +1,29 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + +
    +

    Hydra Team Update

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693
    + + + + \ No newline at end of file diff --git a/404.html b/404.html index be72b90462..64cd4e15a7 100644 --- a/404.html +++ b/404.html @@ -12,13 +12,13 @@ - - + +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - - + + \ No newline at end of file diff --git a/archive/index.html b/archive/index.html index acb2830b18..0401d2468e 100644 --- a/archive/index.html +++ b/archive/index.html @@ -12,13 +12,13 @@ - - + +
    -

    Archive

    Archive

    2022

    2023

    - - +

    Archive

    Archive

    2022

    2023

    + + \ No newline at end of file diff --git a/assets/js/04cbd10c.5d5953d5.js b/assets/js/04cbd10c.5d5953d5.js new file mode 100644 index 0000000000..8d02334ce2 --- /dev/null +++ b/assets/js/04cbd10c.5d5953d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7245],{4032:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":21}')}}]); \ No newline at end of file diff --git a/assets/js/07541956.95e93a48.js b/assets/js/07541956.93c1c1c5.js similarity index 74% rename from assets/js/07541956.95e93a48.js rename to assets/js/07541956.93c1c1c5.js index dc7106b988..3012d129c1 100644 --- a/assets/js/07541956.95e93a48.js +++ b/assets/js/07541956.93c1c1c5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9419],{95884:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/15","page":15,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/14","nextPage":"/cardano-updates/page/16","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9419],{95884:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/15","page":15,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/14","nextPage":"/cardano-updates/page/16","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1e0f95a7.2c8962ca.js b/assets/js/1e0f95a7.4507a3a6.js similarity index 74% rename from assets/js/1e0f95a7.2c8962ca.js rename to assets/js/1e0f95a7.4507a3a6.js index 3ca0983914..618ead2188 100644 --- a/assets/js/1e0f95a7.2c8962ca.js +++ b/assets/js/1e0f95a7.4507a3a6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5123],{85782:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/17","page":17,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/16","nextPage":"/cardano-updates/page/18","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5123],{85782:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/17","page":17,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/16","nextPage":"/cardano-updates/page/18","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/372219b0.02b2c9c8.js b/assets/js/372219b0.610d2db8.js similarity index 59% rename from assets/js/372219b0.02b2c9c8.js rename to assets/js/372219b0.610d2db8.js index ed34a36446..98fe7153b8 100644 --- a/assets/js/372219b0.02b2c9c8.js +++ b/assets/js/372219b0.610d2db8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4251],{13598:a=>{a.exports=JSON.parse('[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync","count":8},{"label":"mithril","permalink":"/cardano-updates/tags/mithril","count":10},{"label":"consensus","permalink":"/cardano-updates/tags/consensus","count":14},{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing","count":9},{"label":"network","permalink":"/cardano-updates/tags/network","count":10},{"label":"hydra","permalink":"/cardano-updates/tags/hydra","count":20},{"label":"ledger","permalink":"/cardano-updates/tags/ledger","count":15},{"label":"goedel","permalink":"/cardano-updates/tags/goedel","count":4},{"label":"crypto","permalink":"/cardano-updates/tags/crypto","count":8},{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api","count":9},{"label":"release","permalink":"/cardano-updates/tags/release","count":5},{"label":"sre","permalink":"/cardano-updates/tags/sre","count":2},{"label":"system-test","permalink":"/cardano-updates/tags/system-test","count":3},{"label":"open-source","permalink":"/cardano-updates/tags/open-source","count":1},{"label":"embedding-quality","permalink":"/cardano-updates/tags/embedding-quality","count":1}]')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4251],{13598:a=>{a.exports=JSON.parse('[{"label":"hydra","permalink":"/cardano-updates/tags/hydra","count":21},{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync","count":8},{"label":"mithril","permalink":"/cardano-updates/tags/mithril","count":10},{"label":"consensus","permalink":"/cardano-updates/tags/consensus","count":14},{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing","count":9},{"label":"network","permalink":"/cardano-updates/tags/network","count":10},{"label":"ledger","permalink":"/cardano-updates/tags/ledger","count":15},{"label":"goedel","permalink":"/cardano-updates/tags/goedel","count":4},{"label":"crypto","permalink":"/cardano-updates/tags/crypto","count":8},{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api","count":9},{"label":"release","permalink":"/cardano-updates/tags/release","count":5},{"label":"sre","permalink":"/cardano-updates/tags/sre","count":2},{"label":"system-test","permalink":"/cardano-updates/tags/system-test","count":3},{"label":"open-source","permalink":"/cardano-updates/tags/open-source","count":1},{"label":"embedding-quality","permalink":"/cardano-updates/tags/embedding-quality","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/3ab5f4e0.7e6157bb.js b/assets/js/3ab5f4e0.c93ab9d6.js similarity index 59% rename from assets/js/3ab5f4e0.7e6157bb.js rename to assets/js/3ab5f4e0.c93ab9d6.js index 20dfd2aead..b87d4d3467 100644 --- a/assets/js/3ab5f4e0.7e6157bb.js +++ b/assets/js/3ab5f4e0.c93ab9d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4376],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/cardano-updates/2023-03-23-db-sync",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/cardano-updates/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},nextItem:{title:"Mithril Team Update",permalink:"/cardano-updates/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4376],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/cardano-updates/2023-03-23-db-sync",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/cardano-updates/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/cardano-updates/2023-03-24-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/cardano-updates/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ac14561.2e58dbb2.js b/assets/js/3ac14561.c80a951d.js similarity index 74% rename from assets/js/3ac14561.2e58dbb2.js rename to assets/js/3ac14561.c80a951d.js index ef42d20786..c32433b22a 100644 --- a/assets/js/3ac14561.2e58dbb2.js +++ b/assets/js/3ac14561.c80a951d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9765],{30455:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/12","page":12,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/11","nextPage":"/cardano-updates/page/13","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9765],{30455:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/12","page":12,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/11","nextPage":"/cardano-updates/page/13","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3e93a65d.659d3a2e.js b/assets/js/3e93a65d.48cb021a.js similarity index 74% rename from assets/js/3e93a65d.659d3a2e.js rename to assets/js/3e93a65d.48cb021a.js index e4b2ed2b7f..1d5611f9c3 100644 --- a/assets/js/3e93a65d.659d3a2e.js +++ b/assets/js/3e93a65d.48cb021a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1164],{35089:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/20","page":20,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/19","nextPage":"/cardano-updates/page/21","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1164],{35089:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/20","page":20,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/19","nextPage":"/cardano-updates/page/21","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3ede3d79.88f4424a.js b/assets/js/3ede3d79.88f4424a.js new file mode 100644 index 0000000000..3c3420662d --- /dev/null +++ b/assets/js/3ede3d79.88f4424a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2221],{4562:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-03-24-hydra","metadata":{"permalink":"/cardano-updates/2023-03-24-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-24-hydra.md","source":"@site/blog/2023-03-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-24T00:00:00.000Z","formattedDate":"March 24, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.95,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-24-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-03-23-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra had a team workshop and conducted the monthly review\\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\\nthe hydraw demo application. While this marks an important milestone, they also\\nemphasized that more features are still to be added as needed for applications\\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\\ndiscussions and provide more space for user requests.\\n\\n## What did the team achieve this week\\n\\n- Monthly review meeting [slides](https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392)/[recording](https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c), full report of March next week\\n - Opened a head on mainnet with hydraw demonstration\\n - Hydra pay updates\\n- Team workshop in Austria\\n - Hydra presentation at the Cardano Foundation in Zurich\\n - In-person grooming session, marked many items as candidates to be rather :idea: dicussions\\n - Improved head protocol [#786](https://github.com/input-output-hk/hydra/pull/786) and investigated a potential bug in rollback handling [#784](https://github.com/input-output-hk/hydra/issues/784)\\n - Team building and retrospective\\n\\n## What are the goals of next week\\n\\n- Follow-up on backlog and roadmap clean-up\\n- Complete mainnet compatibility feature (documentation updates)\\n- Make API more configurable [#380](https://github.com/input-output-hk/hydra/issues/380)\\n- Integrate Hydra specification into repository [#693](https://github.com/input-output-hk/hydra/issues/693)"},{"id":"2023-03-23-db-sync","metadata":{"permalink":"/cardano-updates/2023-03-23-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md","source":"@site/blog/2023-03-23-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.755,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-03-23-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-24-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"}},"content":"## High level summary\\n\\nThe DBSync team worked in performance enhancements issues, on providing new db-sync options and on\\ntechnical debt and bug fixing. The DBSync team also on boarded a new member.\\n\\n## Low level summary\\n- Worked on an issue which causes `ada_pots` tables to include the values related not only to an\\nepoch, but also the first epoch of the last epoch.\\n[#1367](https://github.com/input-output-hk/cardano-db-sync/pull/1367)\\n- Fixed an issue where the `epoch` table didn\'t rollback and caused wrong values\\n[#1370](https://github.com/input-output-hk/cardano-db-sync/pull/1370)\\n- Fixed an issue were users with `disable-ledger` option had to provide the state dir option, even\\nthough it was never used. Also refactored the no ledger part of the codebase.\\n[#1378](https://github.com/input-output-hk/cardano-db-sync/pull/1378)\\n- Improved the perforance by using the cache more. Also provided many new options which enables or\\ndisables parts of db-sync. In addition a new `--turbo` mode is enables which allows db-sync to sync\\nmainnet in hours.\\n[#1379](https://github.com/input-output-hk/cardano-db-sync/pull/1379)"},{"id":"2023-03-23-mithril","metadata":{"permalink":"/cardano-updates/2023-03-23-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-mithril.md","source":"@site/blog/2023-03-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.615,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-03-23-db-sync"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2310.0`](https://github.com/input-output-hk/mithril/releases/tag/2310.0) distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.\\n\\nFinally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano `mainnet` and they have fixed some bugs. \\n\\n## Low level overview\\n- Completed the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed handling the API version switch at era transition [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Completed on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n - Worked on the migration/adaptation of the `epoch_settings` table [#813](https://github.com/input-output-hk/mithril/issues/813)\\n - Worked on the migration/adaptation of the `signed-entity-type` table [#815](https://github.com/input-output-hk/mithril/issues/815)\\n - Completed the creation of a stake distribution service [#799](https://github.com/input-output-hk/mithril/issues/799)\\n- Completed the testing of Mithril with Cardano `mainnet` network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Completed qualifying the computation of the stake distribution [#810](https://github.com/input-output-hk/mithril/issues/810)\\n- Completed the testing of the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)\\n- Worked on bugs and optimizations:\\n - Fixed a bug that made computation of the stake distribution occur multiple times during an epoch [#804](https://github.com/input-output-hk/mithril/issues/804)\\n - Fixed a bug that created deadlocks on the SQLite connection [#807](https://github.com/input-output-hk/mithril/issues/807)\\n - Optimized the error message and the behavior of the signer node when KES keys have expired [#820](https://github.com/input-output-hk/mithril/issues/820)\\n - Upgraded the infrastructure of the `testing-preview` and `pre-release-preview` networks [#801](https://github.com/input-output-hk/mithril/issues/801)\\n - Re-genesis of the `testing-preview` network [#803](https://github.com/input-output-hk/mithril/issues/803)\\n - Re-genesis of the `pre-release-preview` network [#818](https://github.com/input-output-hk/mithril/issues/818)"},{"id":"2023-03-22-consensus","metadata":{"permalink":"/cardano-updates/2023-03-22-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-22-consensus.md","source":"@site/blog/2023-03-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":0.63,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"}},"content":"## High level summary\\n\\nThis week the consensus team continued working on the refactoring of the UTxO HD\\nprototype, and design and testing of Genesis. We also extracted the `fs-sim`\\npackage, which provides a file-system abstraction layer that can be used for\\ntesting and simulation. This makes the Consensus code base smaller, while\\nproviding a package that the community can reuse and contribute to. We also\\nfixed a failing property test related to iterators. We are also working on\\nmempool and VRF improvements.\\n\\n\\n## Low-level details\\n\\n- Extraction of `fs-sim` code from `ouroboros-network`:\\n - https://github.com/input-output-hk/ouroboros-network/pull/4425\\n - https://github.com/input-output-hk/fs-sim/pull/1\\n - https://github.com/input-output-hk/fs-sim/pull/2\\n - https://github.com/input-output-hk/ouroboros-network/pull/4460\\n- Smaller changes in `fs-sim` code (some required by `UTxO-HD`):\\n - https://github.com/input-output-hk/fs-sim/pull/5\\n - https://github.com/input-output-hk/fs-sim/pull/6\\n - https://github.com/input-output-hk/fs-sim/pull/7\\n - https://github.com/input-output-hk/fs-sim/pull/8\\n- Released cardano-lmdb-simple-0.6.0.0\\n - https://github.com/input-output-hk/lmdb-simple/pull/20\\n - https://github.com/input-output-hk/cardano-haskell-packages/pull/150"},{"id":"2023-03-22-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-03-22-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-22-performance-and-tracing.md","source":"@site/blog/2023-03-22-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.5,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-22-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"}},"content":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we\'re currently improving documentation and creating setup guidelines for end users.\\n* Analysis pipeline: Our refined metrics PR has been merged. We\'re working on including variance analysis to our reporting machinery.\\n* Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we\'re laying the groundwork for enabling GHC 9.2 in our benchmarks.\\n* Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.\\n* Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.\\n\\n# Performance\\n\\n### New tracing\\nThe new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.\\n\\n### GHC RTS parametrization\\nWe\'re currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.\\n\\n### Open Sourcing\\nOur API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we\'re refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.\\n\\n# Tracing\\nFor the new tracing system we\'re currently undertaking an effort to multi-layered documentation: a condensed version, as well\\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\\nfor users of the new system, depending on their wants and needs. \\n\\n# Infrastructure & Analysis\\n\\n### General\\nHaving included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we\'re laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\\nincrease confidence in specific metrics.\\n\\n### Nomad backend\\nWe have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We\'re confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries."},{"id":"2023-03-21-network","metadata":{"permalink":"/cardano-updates/2023-03-21-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-21-network.md","source":"@site/blog/2023-03-21-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-21T00:00:00.000Z","formattedDate":"March 21, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.315,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-21-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"}},"content":"## High level summary\\n\\nIn the last spring we released `cardano-node-1.35.6` with dynamic P2P\\nfunctionality.\\n\\nWe received reports from some SPOs who encountered problems with their non\\nP2P block producing nodes not being able to connect to their P2P relay. Karl\\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\\nit and found a bug in the legacy non p2p code. The bug is only possible to\\ntrigger with a P2P node which is binding its outbound connection port to\\na fixed IP address and port (default in p2p). A possible solution was found.\\nFor more information see [#4465].\\n\\nWe released `cardano-ping-0.1.0.0` package to `CHaP`. `cardano-ping` is no\\nlonger available as a standalone binary, but instead it will become part of\\n`cardano-cli` (see [#4664])\\n\\nWe are testing `cardano-node` with peer sharing functionality ([#4019]).\\n\\nWe are working on _eclipse evasion_. We added new class of peers: big ledger\\npeers to the outbound governor, implemented tests and fixed found issues\\n([#4462]). We also made the information if a given peer plays the role of\\na big ledger peer to the mini-protocols. This will allow to modify\\nmini-protocol applications for such peers. As part of this functionality we\\nrefactored some core types in the network code which simplifies exposed API.\\n\\nTogether with Moritz Angerman we started to update `io-sim` to `ghc-9.6.1` (see\\n[#73]).\\n\\nWe merged a fix of configuration of accepted connections limit in\\n`cardano-node` (see [#4902]).\\n\\n\\n[#4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[#4465]: https://github.com/input-output-hk/ouroboros-network/issues/4465\\n[#4664]: https://github.com/input-output-hk/cardano-node/pull/4664\\n[#73]: https://github.com/input-output-hk/io-sim/pull/73\\n[#4902]: https://github.com/input-output-hk/cardano-node/pull/4902"},{"id":"2023-03-17-hydra","metadata":{"permalink":"/cardano-updates/2023-03-17-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-17-hydra.md","source":"@site/blog/2023-03-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has continued work on the mainnet compatibility of the\\nhydra-node. They added a golden test suite for `hydra-plutus` scripts, added\\nsome detection of `hydra-node` misconfiguration, established a limit of 100 ADA\\nper commit and other smaller tasks to prepare for a mainnet beta release.\\n\\nNext week there will be a small team workshop to push for demonstrating a Hydra\\nHead on the Cardano mainnet, ideally just in time for the monthly review\\nmeeting. See the hydra channels on the IOG Technical Community discord server\\nfor details.\\n\\n## What did the team achieve this week\\n\\n- Implement a 100 ADA hard-coded commit limit in the hydra-node\\n [#763](https://github.com/input-output-hk/hydra/pull/763)\\n- Pay back funds to faucet after smoke-test run\\n [#773](https://github.com/input-output-hk/hydra/pull/773)\\n- Setup custom github runner for smoke-tests on mainnet\\n [#775](https://github.com/input-output-hk/hydra/pull/775)\\n- Created golden tests to assure the script hash stays the same between\\n changes [#772](https://github.com/input-output-hk/hydra/pull/772)\\n- Removed hardcoded error codes in plutus scripts\\n [#768](https://github.com/input-output-hk/hydra/pull/768)\\n- Detect misconfiguration of a hydra-node given persistent state\\n [#767](https://github.com/input-output-hk/hydra/pull/767)\\n- Met with potential users for hydra-pay\\n- Prepared hydra workshop\\n\\n## What are the goals of next week\\n\\n- Hydra monthly meeting\\n- Open a multi-party head on mainnet\\n- Complete mainnet compatibility feature"},{"id":"2023-03-17-ledger","metadata":{"permalink":"/cardano-updates/2023-03-17-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-17-ledger.md","source":"@site/blog/2023-03-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.415,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"}},"content":"## High level summary\\n\\nWe made further progress on the conway ledger era.\\nIn particular, we expanded the ledger API significantly, including lots of governance features.\\nWe also made progress on the specification and corresponding work in the Haskell implementation.\\n\\nWe also continued to integrate the latest ledger packages into cardano node and addressed\\ntechnical debt.\\n\\n## Low level summary\\n\\n### Expanded ledger API\\n\\nThe ledger API was significantly expanded to include:\\n* a lot of protocol parameter support\\n* versioning support (type level ledger eras and protocol versions)\\n* auxiliary data support\\n* many new lenses\\n* support for witnesses\\n* support for conway governance\\n\\nSee [pull-3328].\\n\\n### Conway ledger rules\\n\\nWe have made progress on the formal ledger specification for the Conway era.\\nMoreover, the corresponding Haskell updates were also completed:\\n\\n* See [pull-3339]\\n* See [pull-3326]\\n* See [pull-3330]\\n\\n### Incremental SPO/DRep stake distribution computation\\n\\nWe have a working (and correct) proof of concept for how to use the incremental lambda calculus\\nto maintain several of the stake distributions incrementally.\\nFor the per-SPO distribution, this is a performance improvement.\\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\\nto a DRep to have time to react to any votes that they disapprove of.\\n(Sorry, no code to share just yet, more to come.)\\n\\n### Technical debt\\n\\n* Improved CBOR testing facilities [pull-3332]\\n* GitHub actions improvement [pull-3320]\\n* Move ToJSON orphans from cardano-node [pull-3323] [pull-3338]\\n* Minor OCert improvements [pull-3327]\\n* Remove duplication [pull-3341]\\n* Enforce unique elements in CBOR sets [pull-3331] \\n\\n[pull-3320]: https://github.com/input-output-hk/cardano-ledger/pull/3320\\n[pull-3323]: https://github.com/input-output-hk/cardano-ledger/pull/3323\\n[pull-3326]: https://github.com/input-output-hk/cardano-ledger/pull/3326\\n[pull-3327]: https://github.com/input-output-hk/cardano-ledger/pull/3327\\n[pull-3328]: https://github.com/input-output-hk/cardano-ledger/pull/3328\\n[pull-3330]: https://github.com/input-output-hk/cardano-ledger/pull/3330\\n[pull-3331]: https://github.com/input-output-hk/cardano-ledger/pull/3331\\n[pull-3332]: https://github.com/input-output-hk/cardano-ledger/pull/3332\\n[pull-3338]: https://github.com/input-output-hk/cardano-ledger/pull/3338\\n[pull-3339]: https://github.com/input-output-hk/cardano-ledger/pull/3339\\n[pull-3341]: https://github.com/input-output-hk/cardano-ledger/pull/3341"},{"id":"2023-03-16-goedel","metadata":{"permalink":"/cardano-updates/2023-03-16-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-16-goedel.md","source":"@site/blog/2023-03-16-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-16T00:00:00.000Z","formattedDate":"March 16, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.55,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-16-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers\\nimproving the deltaQ tutorial, consulting on performance design, and\\nthe final version of the Djed paper.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for ICE 2023\\n\\n* Successful outcome of Marlowe consultancy leading to substantial\\n improvement in performance\\n\\n* Preparing sections on the communication language and bisimulation\\n proofs for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Camera ready version of Djed paper under preparation"},{"id":"2023-03-10-hydra","metadata":{"permalink":"/cardano-updates/2023-03-10-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-10-hydra.md","source":"@site/blog/2023-03-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-10T00:00:00.000Z","formattedDate":"March 10, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.825,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team addressed issues with committing complex UTxOs into a\\nHydra Head, prepared the `hydra-node` to be run on mainnet (soon) and improved\\nthe test suite of the `hydra-plutus` scripts. The specification is constantly\\ngetting improved upon reviewer feedback on overleaf - this week the graphical\\nnotation was refined to be more transaction-focused.\\n\\n## What did the team achieve this week\\n\\n- Clarified “bug” of committing UTxOs with reference scripts to a Hydra head [#737](https://github.com/input-output-hk/hydra/issues/737)\\n- Prepare usage of `hydra-node` on mainnet by updating command line options [#715](https://github.com/input-output-hk/hydra/pull/715)\\n- Improved our mutation test suite to all expected errors [#705](https://github.com/input-output-hk/hydra/issues/705)\\n- Re-opened our persistent hydraw demo head on `preprod` using version `0.9.0`\\n- Updated on-chain graphs to be more transaction-focused in the specification\\n\\n## What are the goals of next week\\n\\n- Complete mainnet compatibility feature\\n- Prepare the Hydra workshop\\n- Address all todo\u2019s in the Hydra specification\\n- Unblock the auctions project with “commit from script” a solution"},{"id":"2023-03-09-mithril","metadata":{"permalink":"/cardano-updates/2023-03-09-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-09-mithril.md","source":"@site/blog/2023-03-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-09T00:00:00.000Z","formattedDate":"March 9, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.42,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-08-consensus"}},"content":"## High level overview\\nThe Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano `mainnet` and computes the stake distribution with the optimized unreleased Cardano CLI command.\\n\\nFinally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.\\n\\n## Low level overview\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the deployment of the era behavior switch to the test networks [#752](https://github.com/input-output-hk/mithril/issues/752)\\n - Completed the enhancement of datum generation for era markers [#786](https://github.com/input-output-hk/mithril/issues/786)\\n - Worked on handling the API version with an era switch [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Worked on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n- Completed the refactoring of errors in the signer and aggregator state machines [#665](https://github.com/input-output-hk/mithril/issues/665)\\n- Worked on testing Mithril with a `mainnet` Cardano network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Worked on fixing bugs with the Docker client image:\\n - Fixed a bug that made the Docker client container crash at startup [#769](https://github.com/input-output-hk/mithril/issues/769)\\n - Fixed a bug that prevented the restoration of a snapshot with a Docker client [#791](https://github.com/input-output-hk/mithril/issues/791)\\n - Worked on testing the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)"},{"id":"2023-03-08-consensus","metadata":{"permalink":"/cardano-updates/2023-03-08-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-08-consensus.md","source":"@site/blog/2023-03-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.46,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-09-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-08-performance-and-tracing"}},"content":"## High level summary\\n\\nThe Consensus team continued working on refactoring and improving the UTxO-HD\\nprototype, and introducing improvements to the `lmdb` related packages. In\\nparticular we identified an opportunity to gain performance by handling locks in\\na more optimal way.\\n\\nOn the Genesis front, we sketched a mitigation for an issue that `PNSol` and\\nResearchers caught. We also came op with a road map for not only testing the\\nGenesis prototypes, but also for enriching the tests we already have.\\n\\nRegarding technical debt, next to some minor improvements, we created\\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\\nresults of these benchmarks will be published in the `ouroboros-consensus` [web\\npage][oc-web-page].\\n\\nWe also finished moving the Consensus documentation to the `ouroboros-consensus`\\nrepository, released `ouroboros-consensus` `0.3.0.0`, and reduced the time\\nGitHub actions take in `ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD Prototype\\n\\nWe continued working on refactoring and improving the UTxO-HD prototype. As a\\nresult of the first round of sytem-level benchmarks, we identified an\\nopportunity to optimise the way we handle locks to improve performance\\n([#4393][issue-4393]).\\n\\nAlso, we introduced several improvements to the `lmdb` related packages:\\n- [New tests][pull-19] for read-only transaction handles.\\n- [New functions][pull-18] and [data types][pull-13].\\n- [Updates][pull-11] to support improved type safety and smaller constraints in\\n the UTxO HD prototype.\\n- Windows and MacOS [CI support][pull-8].\\n\\n### Genesis\\n\\nWe sketched out a mitigation of the issue that `PNSol` and Researchers caught in\\nthe Genesis design.\\n\\nWe came up with a road map for testing the Genesis prototypes, including early\\nmilestones that are applicable to today\'s master branch, ie tests that are\\nuseful before Genesis, and that will be nicely enriched when we do add Genesis.\\n\\nWe developed the aforementioned tests, specifically a `QuickCheck` generator for\\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\\nleader schedule that together satisfy the Praos properties that the Consensus\\ndesign takes as invariants.\\n\\nWe investigated why the improved `ChainDB` queueing implementation behaves\\ndifferently in the baseline compared to the prototype, and we are close to\\nhaving a full picture of how the Consensus components interact during bulk sync.\\n\\n### Technical debt\\n\\nWe [created][pull-4400] component-level micro-benchmarks for adding transactions\\nto the mempool. We plan on extending this to more mempool actions and different\\ntypes of blocks. We [store][pull-4422] the benchmark data to make it available\\nto the GitHub action that [publishes][pull-12] the benchmarks results.\\n\\nOther minor improvements include:\\n\\n- [Removal][pull-4429] of `Test.Util.Classify` in favour of `Test.StateMachine.Labelling`.\\n- [Addition][pull-4423] of `-Wunused-packages` to the default `ghc-options` for Consensus\\n packages.\\n\\n### Fostering collaboration\\n\\nWe finished moving the Consensus documentation [from][pull-4374]\\n`ouroboros-network` [to][pull-8] `ouroboros-consensus`, in preparation for\\nmigrating the code to the latter repository.\\n\\n### Support\\n\\nWe [released][pull-4412] ouroboros-consensus 0.3.0.0.\\n\\nWe [reduced][pull-4421] the load in the `ouroboros-network` GitHub actions,\\nthereby reducing the time CI jobs take.\\n\\n[issue-4393]: https://github.com/input-output-hk/ouroboros-network/issues/4393\\n[pull-19]: https://github.com/input-output-hk/lmdb-simple/pull/19\\n[pull-18]: https://github.com/input-output-hk/lmdb-simple/pull/18\\n[pull-13]: https://github.com/input-output-hk/lmdb-simple/pull/13\\n[pull-11]: https://github.com/input-output-hk/lmdb-simple/pull/11\\n[pull-8]: https://github.com/input-output-hk/haskell-lmdb/pull/8\\n[pull-4400]: https://github.com/input-output-hk/ouroboros-network/pull/4400\\n[pull-4422]: https://github.com/input-output-hk/ouroboros-network/pull/4422\\n[pull-12]: https://github.com/input-output-hk/ouroboros-consensus/pull/12\\n[pull-4429]: https://github.com/input-output-hk/ouroboros-network/pull/4429\\n[pull-4423]: https://github.com/input-output-hk/ouroboros-network/pull/4423\\n[pull-4374]: https://github.com/input-output-hk/ouroboros-network/pull/4374\\n[pull-8]: https://github.com/input-output-hk/ouroboros-consensus/pull/8\\n[pull-4412]: https://github.com/input-output-hk/ouroboros-network/pull/4412\\n[pull-4421]: https://github.com/input-output-hk/ouroboros-network/pull/4421\\n[oc-web-page]: https://input-output-hk.github.io/ouroboros-consensus/"},{"id":"2023-03-08-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-03-08-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-08-performance-and-tracing.md","source":"@site/blog/2023-03-08-performance-and-tracing.md","title":"Performance & tracing update","description":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.805,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-08-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-08-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-03-03-crypto"}},"content":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.\\n* Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.\\n* Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.\\n* Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.\\n\\n\\n# Performance\\n\\n### 1.35.6 release\\nBenchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.\\n\\n### Analysis pipeline\\nOur analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\\ndata more easily accessible.\\n\\n### Open Sourcing\\nAs a prerequisite for going live with our benchmarking data, we\'re currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we\'ve begun working on a small visualization demo and interactive API documentation. Those will enable \\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example.\\n\\n# Tracing\\nThe new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.\\n\\n# Infrastructure\\n\\n### Nomad backend\\nThe Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented."},{"id":"2023-03-03-crypto","metadata":{"permalink":"/cardano-updates/2023-03-03-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-crypto.md","source":"@site/blog/2023-03-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-03-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.\\n* cardano-base: BLS branch is now ready for review. We are workign forward its merge. \\n* KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.\\n* Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs\\n## Low level summary\\n### Mithril\\n* Bumped to version [0.2.0](https://crates.io/crates/kes-summed-ed25519/0.2.0) the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using `mlock`.\\n* Opened [PR#783](https://github.com/input-output-hk/mithril/pull/783) to update dependency\\n* Improved testing for batch opening of mtree, [PR#773](https://github.com/input-output-hk/mithril/pull/773)\\n* Improved testing for batch verification of STM sigs [PR#774](https://github.com/input-output-hk/mithril/pull/774)\\n* RFP for crypto audit almost ready.\\n### cardano-base\\n* BLS12-381 branch finally ready for review [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n### KES agent\\nTeam off for one week. Other progress:\\n- Learning about raw direct-bearer abstraction. An interface for sockets in consensus.\\n- use that for direct ser/deser\\n- written those syntaxes for ouroboros (coming PR)\\n- the kes agent will depend on that. \\t\\n### Sidechains\\nProgress with familiarisation of Halo2 library to write circuits."},{"id":"2023-03-03-goedel","metadata":{"permalink":"/cardano-updates/2023-03-03-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-goedel.md","source":"@site/blog/2023-03-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.815,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-03-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, improving the deltaQ tutorial, consulting on\\nperformance design, and the Djed paper has been accepted for\\npublication.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for FORTE 2023\\n\\n* Extending the technical report on which the above paper is based\\n\\n* Consulting with an external company on performance engineering of Plutus contracts\\n\\n* Planning improvements and collecting material for the deltaQ\\n tutorial based on experience with systems that manage risk at\\n multiple timescales\\n\\n* Preparing sections on the communication language and idempontency\\n laws for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Studying Cardano chain sync protocol\\n\\n* \\"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\\n Protocol\\" has been accepted for publication at IEEE ICBC 2023"},{"id":"2023-03-03-hydra","metadata":{"permalink":"/cardano-updates/2023-03-03-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-hydra.md","source":"@site/blog/2023-03-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.19,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-03-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version\\n[0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0) - a version\\nof the `hydra-node` with fully specified behavior of on-chain scripts and\\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\\ncontestation deadline semantics. Check out the full release notes for details.\\n\\nFurthermore, they published the [monthly\\nreport](https://hydra.family/head-protocol/monthly/2023-03) of the Hydra project\\nand conducted a review meeting with an increasingly wider audience. The team\\nplans to extend invitations through the new Hydra\\n[#announcements](https://discord.gg/Bwdy2jNdm2) discord channel for the next\\nmonths, stay tuned!\\n\\n## What did the team achieve this week\\n\\n- Monthly review meeting with report published [on website](https://hydra.family/head-protocol/monthly/2023-03)\\n- Fixed smoke tests [#726](https://github.com/input-output-hk/hydra/pull/726)\\n- Reduced the cost of opening/closing a Head (error codes [#748](https://github.com/input-output-hk/hydra/pull/748) + head reference script [#701](https://github.com/input-output-hk/hydra/pull/701))\\n- Released version [0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0)\\n- Conducted a first experiment on mainnet compatibility [#713](https://github.com/input-output-hk/hydra/issues/713)\\n- New discord category with [#announcements](https://discord.gg/Bwdy2jNdm2) channel\\n- Received a demo about the Hydra for Voting project\\n- Lightning talk on mutation-based testing (to be shared)\\n- New [themes view](https://github.com/orgs/input-output-hk/projects/21/views/26) in on our roadmap and some rearranging as we align it with high-level objectives\\n- Clarified things with researchers, but mostly identified action items for them\\n\\n## What are the goals of next week\\n\\n- Redraw transaction graphs and address TODOs specification\\n- Run hydraw with 0.9.0 on preprod\\n- Make smoke tests on mainnet possible\\n- Groom the explorer item\\n- Unblock the auctions projecth with “commit from script” a solution"},{"id":"2023-03-03-ledger","metadata":{"permalink":"/cardano-updates/2023-03-03-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-ledger.md","source":"@site/blog/2023-03-03-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-03-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-02-network"}},"content":"## High level summary\\n\\nWe have focused the last two weeks on CIP-1694, integration of the last several months of ledger\\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.\\n\\n## Low level summary\\n\\n### Conway rules\\n\\nWe made a major update to the conway era so that the implementation is now in sync with the spec\\nwith respect to the ratification and enactment logic.\\n\\nSee the notes in [pull-3291] for more details.\\n\\n### Constraint based generators\\n\\nThis week we hit a major milestone in our efforts to build out better property based testing\\nsupport for the main ledger properties.\\nThe new constraint based generators can now generate full ledger states with what is probably\\nvery close to the real constraints (if anything, it is under constrained).\\nNext we will work on generating a transaction in the context of a ledger state, which would allow\\nus to actually start using these generators for real tests.\\n\\nSee [pull-3219].\\n\\n### Preparing a release, now with proper versioning\\n\\nAfter quite some time, we are ready to release a version of ledger that will work with a new\\nversion of consensus, using CHaPs.\\n\\nSee [pull-3308].\\n\\n### Technical debt\\n\\n* We cleaned up the redeemer serialization code (to prevent future mistakes). See [pull-3269].\\n* We added a note to the Alonzo spec, specifying that the transaction inputs are\\n lexicographically ordered in the Plutus script context. See [pull-3306].\\n* We fixed a problem with the address deserialiazation\\n (we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\\n See [pull-3307].\\n* We fixed a problem with our nix build. See [pull-3311].\\n* We fixed a problem with our `NoThunks` tests. See [pull-3310].\\n* We improved our nightly tests. See [pull-3316].\\n\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3306]: https://github.com/input-output-hk/cardano-ledger/pull/3306\\n[pull-3307]: https://github.com/input-output-hk/cardano-ledger/pull/3307\\n[pull-3308]: https://github.com/input-output-hk/cardano-ledger/pull/3308\\n[pull-3310]: https://github.com/input-output-hk/cardano-ledger/pull/3310\\n[pull-3311]: https://github.com/input-output-hk/cardano-ledger/pull/3311\\n[pull-3316]: https://github.com/input-output-hk/cardano-ledger/pull/3316"},{"id":"2023-03-02-network","metadata":{"permalink":"/cardano-updates/2023-03-02-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-02-network.md","source":"@site/blog/2023-03-02-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-02T00:00:00.000Z","formattedDate":"March 2, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.85,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-02-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-03-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-24-hydra"}},"content":"## High level summary\\n\\nIn the current sprint the networking team focused on fixing bugs and pushing\\nforward implementation of eclipse evasion. We also found a bug in our\\nsimulation testing setup (in integration of test node). We also overviewed the\\nwork on extending handshake protocol which is delivered by Galois Inc.\\n\\nWe published `ouroboros-netork-0.4.0.1` and\\n`ouroboros-network-protocols-0.3.0.0` to [CHaP][PR #147].\\n\\nWe also fixed a bug in `cardano-node` which results in not being able to\\nconfigure inbound connection limits, see [PR #4902].\\n\\nTogether with Karl Knutsson (CF) we realised an issue in `cardano-cli`: it\'s\\nvalidation of DNS names, IP address & ports when registering a stake pool\\nshould be more strict to protect against common mistakes which we identified on\\nthe chain. See [issue #4929].\\n\\n## Detailed work log\\n\\nIn [PR #4385] we fixed two bugs in peer state actions. First one results in\\na busy loop if demotion from hot to warm times outs. This busy loop is\\neventually exited when mux exits (we reported this in our previous report).\\nThis fix made it to `1.35.6` release as well.\\n\\nIn addition the [PR #4385] also fixes another bug which results in `hot -> warm\\n-> hot` demotion / promotion busy loop.\\n\\nThe [PR #4385] also fixed a bug in a node only used in simulation which\\nresulted in not using `chain-sync` or `block-fetch` mini-protocols. In the\\nreview process, we realised that the header-body split in the simulated node\\nrequires further work (see [PR #4419], which is under review).\\n\\nThe [PR #4385] also extend our generators, which together with the above fix,\\ncover the `hot -> warm -> hot` demotion / promotion busy loop.\\n\\nIn [PR #4419] we introduce a `ChainDB` for our simulation node, which plays\\nsimilar role to `ChainDB` in the `ouroboros-consensus`: a persistent (across\\nsimulated restarts) store of blocks which does chain selection. This ensures\\nthat the simulated node is using `block-fetch` to download blocks announced by\\n`chain-sync` mini-protocol.\\n\\nWe also made progress with reviewing [PR #4019] - peer sharing.\\n\\nWe also fixed [issue #4370] - a connection manager test failure, see [PR #4384].\\n\\n[PR #147]: https://github.com/input-output-hk/cardano-haskell-packages/pull/147\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4384]: https://github.com/input-output-hk/ouroboros-network/pull/4384\\n[PR #4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[PR #4419]: https://github.com/input-output-hk/ouroboros-network/pull/4419\\n[PR #4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n[issue #4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue #4929]: https://github.com/input-output-hk/cardano-node/issues/4929"},{"id":"2023-02-24-hydra","metadata":{"permalink":"/cardano-updates/2023-02-24-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-24-hydra.md","source":"@site/blog/2023-02-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-24T00:00:00.000Z","formattedDate":"February 24, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-24-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-02-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-23-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team continue closing many gaps and aligning the\\nimplementation with the specification. More over, they have groomed a plan to\\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\\ninternal auditing and have published some auditing guidelines to receive\\ncontributions from the community.\\n\\n## What did the team achieve this week\\n\\n- Completed [#452](https://github.com/input-output-hk/hydra/issues/452) (what is\\n remaining in there)\\n- Aligned the Head protocol logic implementation with the specification\\n- Completed full minting policy implementation and spec\\n [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Clarified message authentication with researchers\\n- Groomed what is left to do for Mainnet compatibility\\n [#713](https://github.com/input-output-hk/hydra/issues/713) and drafted a\\n 0.10.0 version\\n- Added a tutorial by [@perturbing](https://github.com/perturbing/) to the\\n website [LINK](https://hydra.family/head-protocol/docs/tutorial/)\\n- Published auditing guidelines\\n [LINK](https://hydra.family/head-protocol/audit-guidelines)\\n- Made hydra-node work for macos\\n [#746](https://github.com/input-output-hk/hydra/issues/746) and added support\\n for building on aarch64\\n [#673](https://github.com/input-output-hk/hydra/issues/673)\\n- Met with a potential customer of Hydra for Payments\\n\\n## What are the goals of next week\\n\\n- Have the monthly review meeting incl. the report\\n- Have smoke tests fixed and running regularly\\n- Release 0.9.0 with updated scripts\\n- Redraw transaction graphs for specification"},{"id":"2023-02-23-mithril","metadata":{"permalink":"/cardano-updates/2023-02-23-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-23-mithril.md","source":"@site/blog/2023-02-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.47,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-24-hydra"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-23-performance-and-tracing"}},"content":"## High level overview\\nThe Mithril team released a new [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0) distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes\u2019 CLI that allows generating and signing an era marker\u2019s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.\\n\\n## Low level overview\\n- Released the new distribution [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0)\\n- Completed the epic that implements signer versions deployment monitoring [#718](https://github.com/input-output-hk/mithril/issues/718):\\n - Completed the implementation an event producer/consumer via channel [#738](https://github.com/input-output-hk/mithril/issues/738)\\n - Completed the creation of a database and its configuration to save the events on the consumer side [#740](https://github.com/input-output-hk/mithril/issues/740)\\n - Completed the creation of events and sending them on the channel on the producer side [#741](https://github.com/input-output-hk/mithril/issues/741)\\n - Completed the creation of the signer registration event [#742](https://github.com/input-output-hk/mithril/issues/742)\\n - Completed the creation a query to extract the node versions stakes distribution [#743](https://github.com/input-output-hk/mithril/issues/743)\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the loading of era reader adapters from config in the signer and the aggregator [#732](https://github.com/input-output-hk/mithril/issues/732)\\n - Completed the implementation of an era cli command in the aggregator [#755](https://github.com/input-output-hk/mithril/issues/755)\\n - Completed the implementation of a dynamic matrix of cases in CI end to end tests [#760](https://github.com/input-output-hk/mithril/issues/760)\\n- Fixed some bugs:\\n - Fixed the unsupported `unixepoch()` function [#757](https://github.com/input-output-hk/mithril/issues/757)\\n - Fixed the problem that prevented some signers from signing on the `testing-preview` network [#730](https://github.com/input-output-hk/mithril/issues/730)\\n - Update SQLite version to `3.40` in aggregator infrastructure [#765](https://github.com/input-output-hk/mithril/issues/765)"},{"id":"2023-02-23-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-02-23-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-23-performance-and-tracing.md","source":"@site/blog/2023-02-23-performance-and-tracing.md","title":"Performance & tracing update","description":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.245,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-23-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-23-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-22-consensus"}},"content":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.\\n* Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.\\n* UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.\\n* New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.\\n* Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.\\n* Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.\\n\\n# Performance\\n\\n### SECP\\n1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.\\n2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.\\n3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking. \\n\\n### UTxO-HD\\n1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.\\n2. We\'re currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.\\n\\n### 1.35.6 release\\nBenchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.\\n\\n# Tracing\\nWork on the new tracing system\'s introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.\\n\\n# Infrastructure\\n\\n### Nomad backend\\n1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.\\n2. Locality assumptions were removed and job monitoring was refactored.\\n3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.\\n4. We\'re currently evaluating different options for genesis distribution in said cluster.\\n\\n### NixOps backend\\nThe NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery."},{"id":"2023-02-22-consensus","metadata":{"permalink":"/cardano-updates/2023-02-22-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-22-consensus.md","source":"@site/blog/2023-02-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-22T00:00:00.000Z","formattedDate":"February 22, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.45,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-23-performance-and-tracing"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-02-21-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks we got the results from the system level benchmarks\\nfor UTxO HD. They showed a substantial performance regression, so we spent some\\ntime analyzing the results. We found out the frequency at which ledger snapshots\\nwere taken was too high, so we requested the benchmarking team a new run with a\\nmore realistic snapshotting policy. We continued refactoring and improving the\\nprototype, and we released UTxO-HD related packages to CHaP.\\n\\nWe met with IOG researchers and networking specialists to discuss the Genesis\\ndesign, which was well received. We continued working on testing and\\nbenchmarking different Genesis prototypes.\\n\\nWe are also working on solving a test failure related to iterators. This work\\nderived in several improvements such as better documentation, a framework for\\nwriting unit (and regression) tests, and the possibility of debugging\\n`QuickCheck` counter examples in the REPL.\\n\\nFinally, we released `ouroboros-consensus` 0.2.0.0 and\\n`ouroboros-consensus-cardano` 0.3.0.0 to CHaP\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe got the results of the first system level benchmarks for UTxO HD. They seemed\\nto indicate a significant regression in performance. After looking into the\\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\\noften, due to the default snapshotting policy depending on `k`, and `k` being so\\nsmall in the benchmark runs. Therefore, the next step is to re-run the\\nbenchmarks with a snapshotting policy that more closely resembles the one from\\nmainnet.\\n\\nAt the same time, we continued refactoring and cleaning up the prototype. \\n\\nAlso, we prepared the `anti-diff` packages (`fingertree-rm`, `diff-containers`,\\n`simple-semigroupoids`) and the `lmdb` related packages (`cardano-lmdb` and\\n`cardano-lmdb-simple`) to [CHaP][chap].\\n\\n### Genesis\\n\\nThe Genesis design was presented to the IOG researchers and Peter Thompson from\\nNSol. It was well received. They pointed out one blindspot, but we think it\'ll\\nbe relatively simple to mitigate.\\n\\nIn parallel, we continued developing test and benchmarks for the Genesis\\nprototypes. I particular we tested and implemented a potential fix for\\n[increased ChainDB dequeue timings][increased-dequeue-timings], which partly\\nbehaved as we expected, but still needs further investigation. Also we obtained\\n[new benchmarking data][new-bench-data] for the prototype.\\n\\n### Technical debt\\n\\nRelated to [#4183][pull-4183], we developed a [DSL][pull-4379] for specifying\\n`ChainDB` unit tests. This will allow us to better understand the\\ncounter-examples returned by QuickCheck tests, and to write [regression\\ntests][pull-4383] for them. Also, we [added a module][pull-4358] to enable\\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\\nfeedback. Also, we improved the documentation related to followers\\n([#4372][pull-4372]).\\n\\nWe are also working on a design for optimizing the way we handle blocks from the\\nfuture.\\n\\n### Support\\n\\nWe released `ouroboros-consensus` 0.2.0.0 and `ouroboros-consensus-cardano`\\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\\ncode, and another bundle with instantiations specific to Cardano.\\n\\n[new-bench-data]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1434745031\\n[increased-dequeue-timings]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1439708022\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages\\n[pull-4358]: https://github.com/input-output-hk/ouroboros-network/pull/4358\\n[pull-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4372]: https://github.com/input-output-hk/ouroboros-network/pull/4372\\n[pull-4379]: https://github.com/input-output-hk/ouroboros-network/pull/4379\\n[pull-4383]: https://github.com/input-output-hk/ouroboros-network/pull/4383"},{"id":"2023-02-21-db-sync","metadata":{"permalink":"/cardano-updates/2023-02-21-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-21-db-sync.md","source":"@site/blog/2023-02-21-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-02-21T00:00:00.000Z","formattedDate":"February 21, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-02-21-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-22-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-17-crypto"}},"content":"## High level summary\\n\\nThe db-sync team created a new tag `13.1.0.2` which is ready to release.\\nWe also investigated and had the first working UTxO-HD integration which is one\\nof the potential future risks for db-sync.\\n\\n## Low level summary\\n\\n- Integrated the UTxO-HD feauture branch in `kderme/utxo-hd-1`. This doesn\'t\\nuse the full on disk storage but keeps things in memory and the plan is to keep\\nit this way for the first iteration. The integration still has some performance\\nissues which we investigate\\n- Created tag `13.1.0.2` which upgrades the dependencies of db-sync\\n- Fixed an issue related to errors appearing in SMASH\\n[#1353](https://github.com/input-output-hk/cardano-db-sync/pull/1353)\\n- Continued with ghc-9.2 integration\\n[#1339](https://github.com/input-output-hk/cardano-db-sync/pull/1339)\\n- Worked on an new fixing procedure for\\n[#1348](https://github.com/input-output-hk/cardano-db-sync/issues/1348).\\nWe try to make these procedures work also on older schema version, without the\\nneed to migrate to newer schema, which can be very useful for fixing existing\\nsnapshots."},{"id":"2023-02-17-crypto","metadata":{"permalink":"/cardano-updates/2023-02-17-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-crypto.md","source":"@site/blog/2023-02-17-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.43,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-17-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-02-21-db-sync"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-17-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril\'s core library (decided to add audit of KES). Design proposal for viable registration.\\n* cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.\\n* KES agent: using snockets and making things testable in IOSim\\n* MuSig2: started implementation in rust.\\n\\n## Low level summary\\n\\n### Mithril\\n* Transmute helpers merged [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope. \\n* We are working in a modification of KES to require caller to allocate the secret key buffer.\\n* Proposed a solution for signer registration of [Mithril](https://github.com/input-output-hk/mithril/wiki/Mithril-registration-procedure#cost).\\n### cardano-base\\n* Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 [proof](https://github.com/input-output-hk/plutus/tree/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks).\\n\\t* Results are promising, with using only 23% of the execution budget to verify a realistic proof. \\n\\t* Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.\\n* KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.\\n* Conversion finally merged [PR#344](https://github.com/input-output-hk/cardano-base/pull/344).\\n\\n### KES agent\\n* Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation\\n* Figuring out how to go from fake file descriptor to write the raw bytes\\n\\n### MuSig2\\n* Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental."},{"id":"2023-02-17-goedel","metadata":{"permalink":"/cardano-updates/2023-02-17-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-goedel.md","source":"@site/blog/2023-02-17-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.53,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-17-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-17-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-17-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, distributivity properties of deltaQ, and consulting\\non performance design with the Marlowe team.\\n\\n## Details\\n\\n* Processing reviews on performance engineering paper and planning\\n paper revisions accordingly\\n\\n* Investigating distributivity properties of DeltaQ\\n\\n* Preparing sections on the thorn calculus and idempotency laws for\\n draft paper about verifying design refinements for distributed\\n system design\\n\\n* Consulting on performance design with Marlowe team"},{"id":"2023-02-17-hydra","metadata":{"permalink":"/cardano-updates/2023-02-17-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-hydra.md","source":"@site/blog/2023-02-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-17-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed work on dealing differently with contests\\nduring the contestation period. These will now always push out the deadline and\\nhence contestation periods are easier to pick (depending on the network a Head\\nruns on). Furthermore, they added an important acceptance test and completed\\ninternal refactoring of the protocol logic making future changes easier.\\n\\n## What did the team achieve this week\\n\\n- Push contestation deadline on each contest [#716](https://github.com/input-output-hk/hydra/pull/716)\\n- Wrote an acceptance (property) test “can always close/fanout when collect is successful”\\n- Internal refactoring of our `HeadLogic`\\n- Groomed remaining things from [#452](https://github.com/input-output-hk/hydra/issues/452) into dedicated features\\n\\n## What are the goals of next week\\n\\n- Complete full minting policy [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Release 0.9.0 with updated scripts\\n- Plan mainnet milestone and a 0.10.0 version\\n- Redraw transaction graphs for specification (upon feedback)\\n- Have smoke tests fixed and running regularly"},{"id":"2023-02-17-ledger","metadata":{"permalink":"/cardano-updates/2023-02-17-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-ledger.md","source":"@site/blog/2023-02-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.33,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-17-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-02-17-network"}},"content":"## High level summary\\n\\nThis past two weeks saw many months worth of ledger changes integrated with the `cardano-base`\\nand `ouroboros-network` repositories.\\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\\n(and the interplay with `cardano-base`) which now support proper versioning.\\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\\nto a whole new system of governance, also played a noticeable part in the integration.\\n\\nBesides the integration work, the team continues to address technical debt, improve the\\ndocumentation, make our testing infrastructure better (such as experimenting with better\\nnightly tests), and formally specifying more parts of CIP-1694.\\n\\n## Lower level summary\\n\\n### Integration work\\n\\nBelow is all the integration work completed, which will enable a release to node from\\nthe current ledger master. Many thanks to\\n[Alexey](https://github.com/lehins) for this colossal undertaking!\\n\\n* [pull-3303]\\n* [pull-3302]\\n* [pull-3300]\\n* [pull-3299]\\n* [pull-3298]\\n* [pull-3297]\\n* [pull-3292]\\n* [pull-3289]\\n* [pull-3288]\\n* [pull-3279]\\n* [pull-3282]\\n* [pull-4349]\\n\\n### Technical debt\\n\\nStarting in major protocol version 9, zero-valued multi-assets will no longer be permitted\\nin the CBOR specification. See [pull-3241].\\n\\nWe now have our `.cabal` files being checked for a consistent formatting given by\\n`cabal format` in our CI. See [pull-3286].\\n\\nWe are still experimenting with better nightly tests for our long running\\nproperty based tests. See [pull-3276] and [pull-3296].\\n\\n### Small documentation improvements\\n\\nThe hand proofs of the preservation ADA property have been added back to the\\nShelley ledger specification. See [pull-3295].\\n\\nWe have clarified how the script integrity hash is computed in the CDDL description.\\nSee [pull-3290].\\n\\n### Specifying CIP-1694\\n\\nOur new formal specifications backed by Agda have seen a lot of progress!\\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\\nand we no longer have to rely on our custom fork. See [pull-50].\\n\\nOur progress on formally specifying CIP-1694 can be followed here:\\n* in Agda: [pull-40]\\n* the corresponding Haskell: [pull-3291]\\n\\n### Constraint based testing\\n\\nWe are still actively working on our new constraint based property testing framework.\\nWe have nearly all of the constraints for an entire ledger state\\nhooked into generators, and tests that the generators do indeed obey the constraints.\\nThe variable count in the constraints is over 100!\\nThere is still much work to do on shrinking, making the generators faster,\\nand writing actual property tests for the ledger, but the approach still seems viable and\\nwe are hopeful that it could replace our trace generators.\\nThe WIP can be followed here: [pull-3219].\\n\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3279]: https://github.com/input-output-hk/cardano-ledger/pull/3279\\n[pull-3282]: https://github.com/input-output-hk/cardano-ledger/pull/3282\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n\\n[pull-50]: https://github.com/input-output-hk/formal-ledger-specifications/pull/50\\n[pull-40]: https://github.com/input-output-hk/formal-ledger-specifications/pull/40\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349"},{"id":"2023-02-17-network","metadata":{"permalink":"/cardano-updates/2023-02-17-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-network.md","source":"@site/blog/2023-02-17-network.md","title":"Network Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":0.865,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-02-17-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-10-hydra"}},"content":"## High level summary\\n\\nRecently QA found a bug in P2P code, which results in busy loops. We added one\\nfix to `1.35.6` release, another one will likely be part of next release. The\\nfirst one is already included in `ouroboros-network-0.3.0.1` release. These\\nbugs could only affect nodes which are out of sync and thus should not impose\\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\\none of the relays as a P2P node, which shields from possible consequences.\\n\\nWe recently finished design phase of eclipse evasion and we started\\nimplementing it (see [issue #3886] for progress).\\n\\nGalois finished implementing Handshake extension which will allow to query\\nnetwork protocol versions (see [pr #4256]).\\n\\nWe also recently released a newer set of network packages to be integrated with\\n`cardano-node` `master` branch, this includes:\\n * monoidal-synchronisation-0.1.0.2\\n * cardano-client-0.1.0.2\\n * network-mux-0.3.0.0\\n * ouroboros-network-api-0.1.0.0\\n * ouroboros-network-protocols-0.2.0.0\\n * ouroboros-network-testing-0.2.0.1\\n * ouroboros-network-mock-0.1.0.0\\n * ouroboros-network-framework-0.3.0.0\\n * ouroboros-network-0.4.0.0 (it doesn\'t not yet include the fix we included\\n in `0.3.0.1`)\\n\\n[issue #3886]: https://github.com/orgs/input-output-hk/projects/19/views/16?pane=issue&itemId=19819205\\n[pr #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256"},{"id":"2023-02-10-hydra","metadata":{"permalink":"/cardano-updates/2023-02-10-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-10-hydra.md","source":"@site/blog/2023-02-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-10T00:00:00.000Z","formattedDate":"February 10, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.14,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-02-17-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team closed several gaps to align the Hydra scripts\\nimplementation further with the specification. This also resulted in a slight\\nimprovement on Hydra script size and costs. They consequently analysed the\\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\\nprofiling toolchain was evaluated and set up for future improvements on Hydra\\non-chain performance. In discussions with researchers and internal auditors,\\nthey also uncovered next steps on further securing the Head protocl using a\\n\\"full\\" minting policy.\\n\\n## What did the team achieve this week\\n\\n- Closed several gaps to align script implementation with specification [#452](https://github.com/input-output-hk/hydra/issues/452)\\n - Allow contest only once [#680](https://github.com/input-output-hk/hydra/pull/680)\\n - Optimization through head output at index 0 [#700](https://github.com/input-output-hk/hydra/pull/700)\\n - Value is preserved [#702](https://github.com/input-output-hk/hydra/pull/702) + optimized exact value equality [#709](https://github.com/input-output-hk/hydra/pull/709)\\n- Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to [#721](https://github.com/input-output-hk/hydra/pull/721)\\n ![](https://user-images.githubusercontent.com/2621189/218124686-7a85b40d-12f7-4b00-ad16-128c99f5b707.png)\\n- Fixed our tooling around the Haskell language server\\n- Discussed full minting policy with researchers\\n- Started grooming \u201cwhat we need for mainnet\u201d on [this](https://github.com/input-output-hk/hydra/issues/713) idea ticket and [milestone](https://github.com/input-output-hk/hydra/milestone/8)\\n\\n## What are the goals of next week\\n\\n- Implement full minting policy\\n- All remaining protocol discrepancies are implemented or groomed as individual features\\n- Ideally release 0.9.0 with updated scripts\\n- Discuss what we need for mainnet (milestone planning)\\n- Redraw transaction graphs for specification (upon feedback)"},{"id":"2023-02-09-mithril","metadata":{"permalink":"/cardano-updates/2023-02-09-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-09-mithril.md","source":"@site/blog/2023-02-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-09T00:00:00.000Z","formattedDate":"February 9, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-08-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1) distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.\\n\\nFinally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version `1.35.5` on their `devnet` and infrastructure.\\n\\n## Low level overview\\n- Released the new distribution [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1)\\n- Fixed a bug that prevented some signers to sign with `2304.0-prerelease` [#716](https://github.com/input-output-hk/mithril/issues/716)\\n- Completed the implementation of an `EraChecker` that checks if an era is active [#708](https://github.com/input-output-hk/mithril/issues/708)\\n- Completed the implementation of an `EraReader` that gathers era activation data [#709](https://github.com/input-output-hk/mithril/issues/709)\\n- Completed the implementation of an `EraReader` adapter with on chain transaction as source [#710](https://github.com/input-output-hk/mithril/issues/710)\\n- Completed the relational design of the aggregator store [#476](https://github.com/input-output-hk/mithril/issues/476)\\n- Completed adding a new SPO on the `testing-preview` network [#729](https://github.com/input-output-hk/mithril/issues/729)\\n- Completed the upgrade of the Cardano node to `1.35.5` [#725](https://github.com/input-output-hk/mithril/issues/725)\\n- Fixed flakiness in the CI [#734](https://github.com/input-output-hk/mithril/issues/734)"},{"id":"2023-02-08-consensus","metadata":{"permalink":"/cardano-updates/2023-02-08-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-consensus.md","source":"@site/blog/2023-02-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":1.5,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-09-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-02-08-node-cli-api"}},"content":"## High level summary\\n\\nWe continue refactoring the UTxO HD prototype while we wait for the system level\\nbenchmarks. We have created a new repository that contains the `anti-diff`\\npackages used in this prototype.\\n\\nOn the Genesis front, we are preparing another meeting with the researchers to\\naudit the implementation design, and we continued working on basic tests and\\nsimplifications.\\n\\nDuring the past two weeks we also introduced two new tools. One for dumping CBOR\\nencoded blocks to JSON, and another to serve a local immutable DB.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe are in the process of refactoring the UTxO HD prototype, while we wait for\\nthe system level benchmarks to confirm if the performance of the prototype is\\nsatisfactory.\\n\\nWe also set up a repository for the [`anti-diff`][anti-diff] package, which\\nrequired us to refactor the code, write documentation, and prepare a release to\\n[CHaP][chap].\\n\\n### Genesis\\n\\nWe worked on [basic tests][issue-4347] for the _Limit on Eagerness_ property of\\nGenesis. We also introduced further robustness and simplifications in the\\nGenesis Density governor. Finally, we developed a presentation to engage again\\nwith the researchers on our Genesis implementation design.\\n\\n### Technical debt\\n\\n### Fostering collaboration \\n\\nWe are in the process of [polishing][pull-6] the `ouroboros-consensus`\\ndocumentation site, which we will use a the entry point for Consensus related\\ndocumentation. The first version will not be complete, but we plan on\\nsystematically improving it.\\n\\n### Support\\n\\nWe [added a tool][pull-4335] to `ouroboros-consensus-cardano-tools` which allows\\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON.\\n\\nWe also added [another tool][pull-4339] that serves an existing immutable DB via\\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\\nefforts (for instance Genesis\' ChainSync jumping prototype).\\n\\n\\n[pull-6]: https://github.com/input-output-hk/ouroboros-consensus/pull/6\\n[pull-4335]: https://github.com/input-output-hk/ouroboros-network/pull/4335\\n[pull-4339]: https://github.com/input-output-hk/ouroboros-network/pull/4339 \\n[issue-4347]: https://github.com/input-output-hk/ouroboros-network/issues/4347\\n[anti-diff]: https://github.com/input-output-hk/anti-diffs\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages"},{"id":"2023-02-08-node-cli-api","metadata":{"permalink":"/cardano-updates/2023-02-08-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-node-cli-api.md","source":"@site/blog/2023-02-08-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-02-08-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-08-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-08-performance-and-tracing"}},"content":"# 2023-02-08 - 2023-02-21\\n\\n## High level summary\\nMore maintenance and resolving raised issues.\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Remove use of multiline literals](https://github.com/input-output-hk/cardano-node/pull/4889)\\n- [Markdown links CI check](https://github.com/input-output-hk/cardano-node/pull/4775)\\n- [Date ranges for copyright](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Re-add support for decoding GenesisExtendedKey text envelope](https://github.com/input-output-hk/cardano-node/pull/4894)\\n- [Disallow empty cost model for create update proposal](https://github.com/input-output-hk/cardano-node/pull/4885)\\n- [Refactor code using onLeft and onNothing](https://github.com/input-output-hk/cardano-node/pull/4815)\\n\\n### cardano-api\\n- [Simplify SerialiseAsRawBytes type class](https://github.com/input-output-hk/cardano-node/pull/4876)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-02-08-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-02-08-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-performance-and-tracing.md","source":"@site/blog/2023-02-08-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.445,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-08-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-02-08-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-03-crypto"}},"content":"## High level summary\\n\\n1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we\'re currently running what we consider the final benchmark, to validate the underlying assumptions.\\n2. Release benchmarking: we\'ve performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.\\n3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.\\n4. New tracing: before going live, we\'re performing the documentation update, as well as reworking the end user migration guide.\\n5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.\\n6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.\\n7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.\\n\\n## Performance\\n\\nWe are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:\\n\\n- we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,\\n- after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,\\n- finally, we\'re redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.\\n\\nIn addition, we started benchmarks of the 1.35.6 release.\\n\\n## Tracing\\n\\nA rework of the new tracing system\'s internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.\\n\\nSpecifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.\\n\\n## Infrastructure\\n\\nOn the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we\'ll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.\\n\\nThe work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.\\n\\nThe Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops."},{"id":"2023-02-03-crypto","metadata":{"permalink":"/cardano-updates/2023-02-03-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-crypto.md","source":"@site/blog/2023-02-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":2.47,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril\'s core library. Exploring future paths of mithril. \\n* cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting. \\n* KES agent: using snockets and making things testable in IOSim \\n* MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.\\n\\n## Low level summary\\n\\n### Mithril\\n* Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.\\n* We are exploring possible paths of how mithril could be used \'as-a-service\'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.\\n### cardano-base\\n* There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it\'s trade-offs. Seems that the most interesting curve to have on main-net is still 381. \\n* The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.\\n* The update VRF [PR#341](https://github.com/input-output-hk/cardano-base/pull/341) is finally merged, and we are ready to merge [PR#344](https://github.com/input-output-hk/cardano-base/pull/344), which implements conversion functions from the compatible types between Praos and PraosBatchCompat.\\n\\n### KES agent\\n* Use of snockets to send the data directly from the socket to secure memory. \\n* We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives\\n* Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.\\n\\n### MuSig2\\nThe GitHub Action [linelint](https://github.com/fernandrone/linelint) is used to check the files.\\n* A new job for linting is added to the file `/.github/workflows/ci.yml`. The rules are configured in the file `/.github/workflows/.linelint.yml`. Some files from the configuration of `libsecp` were failing, so in the rules in `.linelint.yml` the failing files are denoted to be ignored by the linter.\\n* Folders are reorganized. We created a folder to handle the example. This folder includes the `examplemusig2.c`, a distinct `config.h`, and `helper.c`. The example is enhanced by implementing the functions in the helper for the configuration given in `config.h`. The number of messages is different than the tests. The example is made more generic to run with a loop."},{"id":"2023-02-03-goedel","metadata":{"permalink":"/cardano-updates/2023-02-03-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-goedel.md","source":"@site/blog/2023-02-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.57,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been preparing several papers for peer review\\nand knowledge sharing and consulting within IO and the community.\\n\\n## Details\\n\\n* R&D Seminar on experience participating in a member based organisation\\n* Full day tutorial on performance engineering presented at HiPEAC\\n 2023 conference\\n* Finished preparing and submitted a paper on performance engineering\\n to an ACM workshop\\n* Preparing a draft paper for future submission about verifying design\\n refinements for distributed system design\\n* Consulting on performance design of other IO projects"},{"id":"2023-02-03-hydra","metadata":{"permalink":"/cardano-updates/2023-02-03-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-hydra.md","source":"@site/blog/2023-02-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.12,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-02-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed the Hydra specification with a section about\\nrollbacks and updated graphs\\n([#448](https://github.com/input-output-hk/hydra/issues/448)). In a next step,\\nthe specification will be made more approachable and an open standard. They\\nimproved their `hydra-cluster` tool to launch a local `--devnet` sandbox\\nenvironment and continued aligning the `hydra-plutus` scripts with the\\nspecification by hardening the checks on `close` and `contest` transactions.\\n\\n## What did the team achieve this week\\n\\n- Completed the specification with a section about rollbacks and updated graphs\\n [#448](https://github.com/input-output-hk/hydra/issues/448), with a follow-up on making it more approachable and an open standard.\\n- Continued spec review with internal auditor and incorporated changes.\\n- Talked to TxPipe about how Demeter and Hydra could work together\\n- The `hydra-cluster` executable can be used to launch a local `--devnet` sandbox environment.\\n- Reproduced the \u201chead being stuck on network outage\u201d bug\\n - relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.\\n- Progressed with higher velocity by addressing more and more gaps [#677](https://github.com/input-output-hk/hydra/pull/677)\\n\\n## What are the goals of next week\\n\\n- Upstream our JSON instances to the ledger\\n- Close all transaction security related on-chain gaps\\n- Ideally release 0.9.0 with updated scripts\\n- Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap"},{"id":"2023-02-02-ledger","metadata":{"permalink":"/cardano-updates/2023-02-02-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-02-ledger.md","source":"@site/blog/2023-02-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-02T00:00:00.000Z","formattedDate":"February 2, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.23,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-03-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-27-hydra"}},"content":"## High level summary\\n\\nMuch of the work the past two weeks involved integration efforts,\\ncleaning up and debugging some serialization issues,\\nadding tests, and work on large projects that are still ongoing.\\nWe also released a CIP this week that aims to make the ledger\\na registered CIP category.\\n\\n## Lower level summary\\n\\n### Ledger evolution CIP\\n\\nWe published a\\n[CIP](https://github.com/cardano-foundation/CIPs/pull/456)\\nthat will make the Cardano ledger a registered category of the CIP process.\\n\\n### Serialization issues\\n\\nWe had previously thought that we had found a serialization problem with the redeemers,\\nbut it turned out to just be particularly confusing code.\\nWe have now clarified the issue for the future.\\n\\nSee [pull-3263], [pull-3269], and [pull-3268].\\n\\nStarting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.\\n\\nSee [pull-3277].\\n\\n### New tests\\n\\nWe added a new property test suite for some of our custom containers.\\n\\nSee [pull-3270].\\n\\n### Progress on a better cost model serialization situation.\\n\\nWe are still working our way through [issue-2902].\\nTowards this end, we are now properly gating the new flexible encoders\\nuntil version 9.\\n\\nSee [pull-3274].\\n\\n### Nightly tests\\n\\nWe are still experimenting with moving more CI actions to GitHub actions.\\n\\nSee [pull-3276].\\n\\n### Constraint based generators\\n\\nWe continue to add to our proof of concept for constraint based generators.\\nSee the previous ledger update for more information about this project.\\n\\n[pull-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3268]: https://github.com/input-output-hk/cardano-ledger/pull/3268\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3270]: https://github.com/input-output-hk/cardano-ledger/pull/3270\\n[pull-3274]: https://github.com/input-output-hk/cardano-ledger/pull/3274\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902"},{"id":"2023-01-27-hydra","metadata":{"permalink":"/cardano-updates/2023-01-27-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-27-hydra.md","source":"@site/blog/2023-01-27-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-27T00:00:00.000Z","formattedDate":"January 27, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.945,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-27-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-02-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-26-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team had a monthly review meeting with their stakeholders,\\ncontributors and interested people from the community. The monthly repot for\\n[January 2023](https://hydra.family/head-protocol/monthly/2023-01) is a digest\\nof the things presented and also includes a summary of the meeting. The Hydra\\nspecification was getting discussed and the team is incorporating suggested\\nchanges of reviewers. Last but not least, they compute and publish script\\ninformation on every PR and also on the\\n[website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\nnow.\\n\\n## What did the team achieve this week\\n\\n- Had the monthly review meeting with a broader audience\\n- Published the monthly report for [January 2023](https://hydra.family/head-protocol/monthly/2023-01)\\n- Reviewed the spec and discussed individual aborts with researchers\\n- Compute and publish script information along benchmarks on every PR and [website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\n\\n## What are the goals of next week\\n\\n- Add rollback section to Hydra spec, update pictures and publish it as part of repository\\n- Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.\\n- Groom & plan actions required for a maintainable Head explorer + break down “align gaps” feature."},{"id":"2023-01-26-mithril","metadata":{"permalink":"/cardano-updates/2023-01-26-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-26-mithril.md","source":"@site/blog/2023-01-26-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-26T00:00:00.000Z","formattedDate":"January 26, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.175,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-26-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-27-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-25-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0) distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.\\n\\nFinally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.\\n\\n## Low level overview\\n- Released the new distribution [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0)\\n- Implemented a backward/forward compatibility mechanism for API messages [#688](https://github.com/input-output-hk/mithril/issues/688):\\n - Implement the mechanism for the signer registration [#689](https://github.com/input-output-hk/mithril/issues/689)\\n - Implement the mechanism for the signature registration [#693](https://github.com/input-output-hk/mithril/issues/693)\\n - Implement the mechanism for epoch settings [#695](https://github.com/input-output-hk/mithril/issues/695)\\n - Implement the mechanism for certificate pending [#696](https://github.com/input-output-hk/mithril/issues/696)\\n - Implement the mechanism for certificate [#697](https://github.com/input-output-hk/mithril/issues/697)\\n - Implement the mechanism for snapshots list [#698](https://github.com/input-output-hk/mithril/issues/698)\\n - Implement the mechanism for snapshot [#699](https://github.com/input-output-hk/mithril/issues/699)\\n - Update enforcement of API version with Semver [#705](https://github.com/input-output-hk/mithril/issues/705)\\n- Completed the PoC implementation of backward compatibility with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Completed the PoC implementation of backward compatibility with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Completed the PoC to Read/Write transaction on chain for Era activations [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Completed the upgrade Cardano devnet to 1.35.4 [#523](https://github.com/input-output-hk/mithril/issues/523)"},{"id":"2023-01-25-consensus","metadata":{"permalink":"/cardano-updates/2023-01-25-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-25-consensus.md","source":"@site/blog/2023-01-25-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.27,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-26-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-01-25-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team finished the testing activities\\naround the UTxO-HD prototype. This is a very important milestone which will\\nenable us to run system-level tests and benchmarks, as well as start refactoring\\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\\nroadmap that gives an indication of the remaining work. We also continued our\\nwork on benchmarking chain-sync-jumping. We also continued working on improving\\nthe way we handle blocks from the future, and advancing the integration of the\\nnew VRF and KES crypto.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nAs the prototype is nearing its completion, it was important to have enough\\nconfidence that we will be able to move additional parts of the ledger state\\nonto disk. We worked together with the Ledger team to [elaborate a\\nsketch][pull-4296] on how the UTxO-HD design would accommodate the migration of\\nadditional data from memory to disk. This gave us enough confidence that the\\ncurrent architecture will be extensible in the future.\\n\\nOn the testing front, we [added][pull-4274] property-based tests for the UTxO-HD\\ntype classes. \\n\\nWe also [enabled disabled components][pull-4289], and addressed several\\ntechnical debt issues:\\n\\n- Implement `splitSized` anti-diff split ([#4269][pull-4269]), and integrate it\\n into consensus ([#4273][pull-4273]).\\n- Renaming of `peekVal` to `peekMDBVal` ([#7][pull-7]).\\n\\nWe ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\\nfound a race condition in the LMDB backing store, which [we fixed][pull-4283].\\nAfter the fix we were able to successfully run these benchmarks. The results\\nwere published by [this pull request][pull-4295].\\n\\nWe used our `db-analyser` tool to benchmark the cost of reading keys and\\nflushing values to disk. The following plot shows the duration of these disk\\noperation in relation to the main ledger operations, where we can see that the\\ncost of the former are comparatively low. The spike at the beginning of the\\ngraph is when, at the start of the Shelley era, the *entire* UTxO set is flushed\\nto disk.\\n\\n![UTxO-HD read and flush benchmarks](/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png)\\n\\nAfter months of hard work adding tests for the prototype, we are ready to run\\nend-to-end tests on the node, and system level benchmarks. This signals a very\\nimportant milestone for the UTxO-HD workstream :tada:.\\n\\n### Genesis \\n\\nWe elaborated a [high-level decomposition][genesis-roadmap] of the remaining\\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\\nhappy-path.\\n\\n### Technical debt\\n\\nWe continued working on improving the way we handle blocks from the future.\\n\\n### Support \\n\\nWe completed the mapping of `Crypto` to `HeaderCrypto` and body `Crypto`.\\n`HeaderCrypto` is moved to `cardano-protocol-tpraos`. We created a draft [pull\\nrequest][pull-3262] to facilitate compiling consensus.\\n\\n[pull-4274]: https://github.com/input-output-hk/ouroboros-network/pull/4274\\n[pull-4296]: https://github.com/input-output-hk/ouroboros-network/pull/4296\\n[pull-4289]: https://github.com/input-output-hk/ouroboros-network/issues/4289\\n[pull-4295]: https://github.com/input-output-hk/ouroboros-network/pull/4295\\n[genesis-roadmap]: https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md\\n[pull-4269]: https://github.com/input-output-hk/ouroboros-network/pull/4269\\n[pull-4273]: https://github.com/input-output-hk/ouroboros-network/pull/4273\\n[pull-7]: https://github.com/input-output-hk/lmdb-simple/pull/7\\n[pull-4283]: https://github.com/input-output-hk/ouroboros-network/pull/4283\\n[pull-3262]: https://github.com/input-output-hk/cardano-ledger/pull/3262"},{"id":"2023-01-25-node-cli-api","metadata":{"permalink":"/cardano-updates/2023-01-25-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-25-node-cli-api.md","source":"@site/blog/2023-01-25-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.585,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-01-25-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-25-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-20-crypto"}},"content":"# 2023-01-25 - 2023-02-07\\n\\n## High level summary\\nGeneral clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the `cardano-cli query stake-snapshot` command. \\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix how changed files are selected in stylish-haskell CI check](https://github.com/input-output-hk/cardano-node/pull/4853)\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n- [Remove hlint from nix required CI](https://github.com/input-output-hk/cardano-node/pull/4848)\\n- [Remove reconfigure-hlint.sh script](https://github.com/input-output-hk/cardano-node/pull/4838)\\n- [Fix hlint warnings](https://github.com/input-output-hk/cardano-node/pull/4837)\\n- [Implement ADR-2: Restructure modules for generators](https://github.com/input-output-hk/cardano-node/pull/4833)\\n- [Stylish Haskell in CI](https://github.com/input-output-hk/cardano-node/pull/4803)\\n- [Revert skip doc in ci](https://github.com/input-output-hk/cardano-node/pull/4802)\\n- [Skip CI on doc only changes](https://github.com/input-output-hk/cardano-node/pull/4800)\\n- [Skip CI if only changes are documentation](https://github.com/input-output-hk/cardano-node/pull/4792)\\n- [Build all of cardano-node in CI](https://github.com/input-output-hk/cardano-node/pull/4776)\\n- [Check cabal files in CI](https://github.com/input-output-hk/cardano-node/pull/4766)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Straight line error handling](https://github.com/input-output-hk/cardano-node/pull/4785)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n\\n### cardano-api\\n- [New NodeToClientVersionOf typeclass](https://github.com/input-output-hk/cardano-node/pull/4787)\\n- [Remove NoImplicitPrelude from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4832)\\n- [Add ReaderT of NodeToClientVersion to LocalStateQueryExpr](https://github.com/input-output-hk/cardano-node/pull/4809)\\n- [Use hoistMaybe](https://github.com/input-output-hk/cardano-node/pull/4808)\\n- [Better error message for query utxo without oops](https://github.com/input-output-hk/cardano-node/pull/4788)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [New query stake-snapshot integration test](https://github.com/input-output-hk/cardano-node/pull/4805)\\n- [Make leadership-schedule test less flaky](https://github.com/input-output-hk/cardano-node/pull/4671)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-01-20-crypto","metadata":{"permalink":"/cardano-updates/2023-01-20-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-crypto.md","source":"@site/blog/2023-01-20-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-20-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-01-25-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-20-hydra"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We explored whether some uses of `transmute` could be removed, but it resulted in considerable regression. \\n* cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision. \\n* KES agent: An inconsistency between `contra-tracer` available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the `contra-tracer` used by consensus. \\n\\n## Low level summary\\n\\n### Mithril\\n* We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average [PR#675](https://github.com/input-output-hk/mithril/pull/675). We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing. \\n* We are writing a RFP for the audit of the core library. \\n### cardano-base\\n* A problem with Nix is blocking merge of [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* Plutus team ran [benchmarks](https://github.com/input-output-hk/plutus/blob/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks/Main.hs) of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we\'ll be able to verify some proofs in a single script execution.\\n* Team is fully digesting the Plonk paper. \\n* There\'s been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used. \\n\\n### KES agent\\n* A little unforseen delay has been caused by a mismatch in the use of `contra-tracer`. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are [doing the change](https://github.com/input-output-hk/cardano-base/pull/255/commits/39b2d9473aa296976825248360a73cf066065431), but still the CI is not happy.\\n* The [same](https://github.com/input-output-hk/cardano-base/pull/317/commits/39b2d9473aa296976825248360a73cf066065431) was needed for the KES agents prerequisites [PR#317](https://github.com/input-output-hk/cardano-base/pull/317).\\n* We\'ve started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency"},{"id":"2023-01-20-hydra","metadata":{"permalink":"/cardano-updates/2023-01-20-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-hydra.md","source":"@site/blog/2023-01-20-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-20-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-20-crypto"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-01-20-network"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\\nspecification. Of which a first version has been aggregated and is currently\\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\\nlike defined in the specification, improved the mutation test framework to have\\nmore control when testing plutus scripts. The added HeadId in the API and the\\nTUI example client make `hydra-node` easier to use and a first experiment of a\\nHydra Head explorer was showing the utility of this - see what Heads exist on\\nthe `preview` network [here](http://explorer.hydra.family).\\n\\n## What did the team achieve this week\\n\\n- HeadId to API and display in the TUI [#678](https://github.com/input-output-hk/hydra/pull/678)\\n- Experiment of creating a hydra explorer, first result hosted [here](http://explorer.hydra.family)\\n- Improved mutation framework allowing to fail for the right reason [#679](https://github.com/input-output-hk/hydra/pull/679)\\n- Correctly reimburse funds in abort (matching the spec) [#670](https://github.com/input-output-hk/hydra/pull/670)\\n- Finished a first write-up of the Hydra HeadV1 spec: [Read it on overleaf](https://www.overleaf.com/read/bbqzmptcxryj) ([Communication channels](https://github.com/input-output-hk/hydra/blob/master/SUPPORT.md) for feedback)\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting with a broader audience\\n- Groom & plan actions required for a maintainable Head explorer\\n- Break \u201calign gaps\u201d feature into smaller chunks (at least on- /off-chain) and groom it\\n- Review the spec & discuss individual aborts with researchers (a bigger open question)"},{"id":"2023-01-20-network","metadata":{"permalink":"/cardano-updates/2023-01-20-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-network.md","source":"@site/blog/2023-01-20-network.md","title":"Network Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":1.045,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-01-20-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-20-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2023-01-20-sre"}},"content":"## High level summary\\n\\nWe have been working towards `cardano-node-1.35.5` release. QA & benchmarking\\nteams gave a green light for the release, and we made decent progress with some\\nCI problem which we encountered on the way ([PR #4612]). We are also working on\\npeer sharing, making improvements in our testing infrastructure, reducing\\ntechnical debt and making progress towards `io-sim-1.0.0.0`. Galois is making\\nprogress on Handshake improvements.\\n\\n## Low level summary\\n\\nOur diffusion simulation network now includes a mixed network of `initiator\\nonly` and `initiator and responder` nodes. [issue #4222]\\n\\nWe are now reviewing the [peer sharing pull request][PR #4019].\\n\\nWe are also reviewing pull request which introduces handshake query flag. [PR #4256]\\n\\nWe fixed a bug in our network simulator. The bug was triggered when a node\\ndied when performing a simultaneous TCP open (a corner case of a corner case!). [PR #4265]\\n\\nWe also refactored `Snocket` interface and removed the bearer construction from\\nits methods. [PR #4260]\\n\\nWe are working towards releasing `io-sim-1.0.0.0` on Hackage, which includes\\nreviewing two PRs: [PR #57] and [PR #60] as well as writing an announcement\\nblog post. \\n\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[PR #4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[PR #4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[PR #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[issue #4222]: https://github.com/input-output-hk/ouroboros-network/issues/4222"},{"id":"2023-01-20-sre","metadata":{"permalink":"/cardano-updates/2023-01-20-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-sre.md","source":"@site/blog/2023-01-20-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"sre","permalink":"/cardano-updates/tags/sre"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-01-20-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-01-20-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-19-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\\nsupport for cardano-world.\\n\\n## Lower level summary\\n\\n### Cicero\\n\\n- Fixed various race conditions around transformers.\\n- Brought our CI up to date.\\n- Migrated to the Nomad exec driver with Nix support for many actions.\\n- Moved Nix builds to the Nomad clients for much better cache locality.\\n- Ongoing work on vastly improving the action matching and evaluation speed.\\n- \\n\\n### Tullia\\n\\n- Made it easier to support cloning from a PR\'s fork\\n- Update to latest std\\n- Add workaround for cgroup issue: [nomad#12877](https://github.com/hashicorp/nomad/issues/12877)\\n- github preset: add `github.ci.remote` and `(read|get)Repository` functions\\n- Fix various issues around CUE handling\\n\\n### Bitte\\n\\n- Upgrade to NixOS 22.11\\n- Prototype usage of [Colmena](https://colmena.cli.rs) for deploys instead of [deploy-rs](https://github.com/serokell/deploy-rs)\\n- Finalized work on Equinix Metal support\\n- Prototype better secrets management with [ragenix](https://github.com/yaxitech/ragenix) instead of [sops-nix](https://github.com/Mic92/sops-nix)\\n- Improve CI and bring it up to date\\n\\n### cardano-world\\n\\n- Fixd various OOM issues on preview and preprod\\n- Rotated KES keys on preview and preprod\\n- Optimize mainnet db-sync to cope with higher load\\n- Fix an issue where PostgreSQL would fail after a reboot\\n\\n### bitte-world\\n\\n- Updated to NixOS 22.11\\n\\n### ci-world\\n\\n- Updated to NixOS 22.11\\n- Added Equnix cluster\\n- Improve caching of Nix builds"},{"id":"2023-01-19-ledger","metadata":{"permalink":"/cardano-updates/2023-01-19-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-19-ledger.md","source":"@site/blog/2023-01-19-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-19T00:00:00.000Z","formattedDate":"January 19, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-19-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2023-01-20-sre"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-01-14-db-sync"}},"content":"## High level summary\\n\\nThe ledger team completed some preliminary ground work in preparation for CIP-1694\\n(restructuring the ledger state),\\nfixed the PDF hosting problem (mostly the formal specs),\\nbuilt out more of the new user-friendly ledger API,\\nfinished a proof of concept for constraint-based generators for property tests\\n(with the hopes of being able to replace our trace generators one day),\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Restructuring the ledger state\\n\\nThe existing governance structures will be replace in the conway ledger era,\\nas described in CIP-1694.\\nIn particular, the ledger rules will be restructured as follows:\\n\\n\\n```\\n BBODY\\n |\\n |-------------------------------|\\n v v\\n TICK LEDGERS\\n | |\\n |---------| |\\n v v v\\n RUPD ~NEWEPOCH~ ~LEDGER~\\n | |\\n |----------| |--------|-------------------|-----------|\\n v v v v v\\n ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+\\n | | |\\n |---------|------------| v |\\n v v v DELPL v\\n SNAP POOLREAP -UPEC- | UTXO\\n |--------| |\\n v v v\\n POOL DELEG ~UTXOS~\\n\\n-..- Removed\\n+..+ Added\\n~..~ Modified\\n```\\n\\nMoreover, the ledger state will also be restructured in accordance with the new rules.\\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\\nWe have also adapted all the data structures in the ledger state.\\n\\nSee:\\n\\n* [pull-3216]\\n\\n### PDF hosting\\n\\nWe now build all of our PDFs using a GitHub action which is triggered by pushing a tag\\nwith a specific form, `cardano-ledger-spec-YYYY-MM-DD`.\\nThe action creates a GitHub release containing the PDFs.\\nThe links in the main ledger README now point to the PDFs in the latest release.\\n\\nSee:\\n\\n* [pull-3245]\\n* [pull-3260]\\n\\n### Powering the new ledger API\\n\\nWe have now removed all the `HasField` instances from the protocol parameter data types,\\nand replaced them with lenses.\\nThis is probably the last major restructuring that the ledger team will do on the code base\\nfor the API for a while\\n(the Plutus tools team will be working on it next, see [here](https://github.com/input-output-hk/cardano-ledger/projects/5)).\\nWe also added a new helpful function `ensureMinCoinTxOut`.\\n\\nSee:\\n\\n* [pull-3242]\\n* [pull-3248]\\n\\n### Constraint-based generators\\n\\nOur largest scale property tests generate an initial ledger state and a long sequence of valid blocks\\nwhich span several epochs, mimicking a real network.\\nThese tests are, in theory, excellent for checking properties.\\nThey are, however, very difficult to maintain and are not as random as we would like\\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).\\n\\nWe would like to switch to tests which instead generate a random ledger state representative\\nof not just an initial state, generate a single random valid block, and then test our properties.\\nThe hope is that these will be much more random and easier to maintain.\\n\\nWe have finished a proof of concept are encouraged that this approach could work!\\n\\nSee:\\n\\n* [pull-3219]\\n\\n### Technical debt\\n\\n* [pull-3244] massive CI speedup\\n* [pull-3249] better types for fees in the protocol parameters\\n* [pull-3264] move our annotator code to the `cardano-ledger-binary` package where it belongs\\n* [pull-3239] move the `Wdrls` type to the `Core` module.\\n\\n\\n[pull-3244]: https://github.com/input-output-hk/cardano-ledger/pull/3244\\n[pull-3245]: https://github.com/input-output-hk/cardano-ledger/pull/3245\\n[pull-3248]: https://github.com/input-output-hk/cardano-ledger/pull/3248\\n[pull-3249]: https://github.com/input-output-hk/cardano-ledger/pull/3249\\n[pull-3260]: https://github.com/input-output-hk/cardano-ledger/pull/3260\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\n[pull-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\n[pull-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219"},{"id":"2023-01-14-db-sync","metadata":{"permalink":"/cardano-updates/2023-01-14-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-14-db-sync.md","source":"@site/blog/2023-01-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-01-14T00:00:00.000Z","formattedDate":"January 14, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.36,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-01-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-19-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-13-hydra"}},"content":"## High level summary\\n\\nAfter spending the last months on improving DBSync and releasing `13.1.0.0` the DBSync team focused\\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\\nnew leger core and ghc-9.2.4\\n\\n## Lower level summary\\n- Integrate CHaP\\n[#1331](https://github.com/input-output-hk/cardano-db-sync/pull/1331)\\n- Integrate new ledger core `0.1.1.1` and ghc-9.2\\n[#1332](https://github.com/input-output-hk/cardano-db-sync/pull/1332)\\n- Technical debt: Add code formatter fourmolu\\n[#1334](https://github.com/input-output-hk/cardano-db-sync/pull/1334)\\n- Preparing and tracking Conway and UTxO integration"},{"id":"2023-01-13-hydra","metadata":{"permalink":"/cardano-updates/2023-01-13-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-hydra.md","source":"@site/blog/2023-01-13-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.56,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-13-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-01-14-db-sync"},"nextItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2023-01-13-release"}},"content":"## High-level summary\\n\\nSince last weekly update before christmas, the Hydra team worked on the\\ntechnical specification, closed gaps in `hydra-plutus` scripts, made the unique\\n`headId` available to Hydra clients through the API, allow the `hydra-node` to\\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\\nbuild issues reported by new users.\\n\\nBesides this, a retrospective [blog\\npost](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\\nsome first sessions on the voting project with Catalyst and the CF.\\n\\nA full digest monthly digest for December 2022 can be found on the [hydra\\nwebsite](https://hydra.family/head-protocol/monthly/2022-12).\\n\\n## What did the team achieve this week\\n\\n- Had some first sessions on the voting project with Catalyst and CF\\n- Published retrospective [blog\\n post](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\n by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\\n an outlook where Hydra is headed for in 2023.\\n- Worked on the LaTeX spec for HydraHeadV1, not final or published yet - [latest\\n version in this repository](https://github.com/ch1bo/hydra-spec).\\n- Add unique `headId` to API and hence make it available to clients.\\n- Allow `hydra-node` to explicitly synchronize from genesis using `--start-chain-from 0`.\\n- Closed gaps in `hydra-plutus` scripts\\n - bounded transaction validity ([ADR21](https://hydra.family/head-protocol/adr/21/))\\n - enforcing contract continuity via state token in output\\n- Fixed JSON for some logs and smaller build issues reported by new users.\\n\\n## What are the goals of next week\\n\\n- Reach out to have `hydra-tutorial` integrated.\\n- Plan the next couple of months.\\n- Complete checking reimbursing of commits in head validator.\\n- Align plutus scripts to spec and simplify them (identified some simplifications)\\n- Improve mutation framework to be sure we fail tests for the right reasons\\n- Complete the spec except the open points (<5) and also discuss them with researchers."},{"id":"2023-01-13-release","metadata":{"permalink":"/cardano-updates/2023-01-13-release","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-release.md","source":"@site/blog/2023-01-13-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.64,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2023-01-13-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-13-hydra"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2023-01-13-system-test"}},"content":"## Node Reelease Update\\n## 2022-11-02 - 2023-01-13\\n\\n### Executive Summary\\n\\nA 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\\n`release/1.35` branch and does not bump cardano-ledger.\\n\\nThe team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress.\\n\\nWe anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.\\n\\nThe 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.\\n\\n### Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/releases/tag/1.35.4)\\n\\n### In Progress\\n\\n- [Release 1.35.5](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)"},{"id":"2023-01-13-system-test","metadata":{"permalink":"/cardano-updates/2023-01-13-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-system-test.md","source":"@site/blog/2023-01-13-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.91,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2023-01-13-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2023-01-13-release"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-12-mithril"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the _P2P Single\\nRelay_ functionality.\\n\\nWe also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- extended the _cardano-node-tests_ with the ability for anybody to fork the repo and [run all our System Tests on GitHub Actions](https://input-output-hk.github.io/cardano-node-tests/readme.html)\\n- added 2 new nightly pipelines - nightly-mixed and nightly-p2p - [details here](https://input-output-hk.github.io/cardano-node-tests/test_results/nightly_system_tests.html)\\n- some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;\\n\\n` === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\\n to\\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===`\\n\\n### Node:\\n- ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled\\n- started the preparations for testing the next tag - [details here](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)\\n\\n### DB-Sync:\\n- some improvements on db-sync sync tests"},{"id":"2023-01-12-mithril","metadata":{"permalink":"/cardano-updates/2023-01-12-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-12-mithril.md","source":"@site/blog/2023-01-12-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-12T00:00:00.000Z","formattedDate":"January 12, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.165,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-12-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2023-01-13-system-test"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-11-consensus"}},"content":"## High level overview\\nThe Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an [ADR](https://mithril.network/doc/adr/4). They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.\\n\\nFinally, they have worked on upgrading the `devnet` and fixing some flakiness in the end to end tests of the CI.\\n\\n## Low level overview\\n- Implemented the redaction of an ADR for handling graceful updates of the Mithril Network [#671](https://github.com/input-output-hk/mithril/issues/671)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Worked on upgrading the Cardano node of the Mithril `devnet`, as well as fixing flakiness of the CI [#523](https://github.com/input-output-hk/mithril/issues/523)\\n- Prepared and tested the new `2302` distribution pre-release [2302.0-prerelease](https://github.com/input-output-hk/mithril/releases/tag/2302.0-prerelease)\\n- Updated the documentation for SPO to build a signer node in order to better reflect the new release process [#681](https://github.com/input-output-hk/mithril/issues/681)"},{"id":"2023-01-11-consensus","metadata":{"permalink":"/cardano-updates/2023-01-11-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-11-consensus.md","source":"@site/blog/2023-01-11-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.35,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-11-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-12-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-01-11-performance-and-tracing"}},"content":"## High level summary\\n\\nThe consensus team is resuming its activities after the Christmas break. During\\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\\ndiscussing with the Ledger team the changes that might be required for the next\\niterations. The pull request that adds the Conway era is waiting for a second\\nreview round and we hope to merge it soon. On the technical debt side we are\\nlooking into a property-test failure found in the iterators. We are\\ninvestigating if this is an error in the model or in the implementation. We also\\nimproved the documentation of our testing code.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe worked with the Ledger team to start preparing the next versions of UTxO-HD.\\nThe Ledger team is concerned that for the remaining maps we might need the full\\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\\nConsensus, the code that requires access to a full state could be moved from the\\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\\nplace in such bridge, instead of querying the ledger for the values that are\\nrequired in the epoch-transition computations.\\n\\nWe [relocated][pull-4234] some UTxO-HD definitions, in preparation for merging\\nthe prototype into `master`.\\n\\nWe also completed updated local benchmarks comparing the replay time and memory\\nconsumption of:\\n\\n- the baseline node (`f2fc76ef45647275c98634da1718290b976ff364`) \\n- the UTxO-HD node with the in-memory backend \\n- the UTxO-HD node with the LMDB backend\\n\\nThe following plot shows the results: we can see that the LMDB node barely\\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\\nin-memory backend is about 30 minutes faster, but still slower than the baseline\\nversion. We are aware of this phenomenon and it is inherent to the problem of\\nmaintaining sequences of differences of the last `k` ledger states that allows\\nus to perform rollback and roll-forward. We are in the process of measuring\\nsyncing from scratch times.\\n\\n![](/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png)\\n\\nWe also [added `StaticEither` accessors][pull-4263] that helped us to simplify\\nthe UTxO-HD prototype.\\n\\n### New Conway era\\n\\nWe incorporated the feedback of the [pull request][pull-3971], and rebased this\\nbranch on top of `master`. The PR is pending a second review round and we hope\\nto merge this soon.\\n\\n### Technical debt \\n\\nWe are investigating a [property-testing failure][issue-4183] involving\\niterators. Solving this requires understanding the expected behavior of\\niterators in the counterexample found by `QuickCheck` to determine if the error\\nis in the model or in the implementation.\\n\\n### Fostering collaboration\\n\\nWe [moved][pull-4248] the contents of `docs/Testing.md` closer to the code, so that the\\nexplanations about the tests are easier to find in the relevant modules, and the\\ndocumentation is easier to keep up to date.\\n\\n[pull-4234]: https://github.com/input-output-hk/ouroboros-network/pull/4234\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4248]: https://github.com/input-output-hk/ouroboros-network/pull/4248\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[pull-4263]: https://github.com/input-output-hk/ouroboros-network/pull/4263"},{"id":"2023-01-11-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-01-11-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-11-performance-and-tracing.md","source":"@site/blog/2023-01-11-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.865,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-01-11-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-11-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-06-crypto"}},"content":"## High level summary\\n\\nSince our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:\\n\\n1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.\\n2. The new tracing system: the improved API of the new tracing system was implemented, and we\'re now porting the tracing integration layer over.\\n3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.\\n4. New benchmark deployment infrastructure: we\'ve made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.\\n5. Legacy benchmarking: we\'ve started merging the legacy benchmark deployment infrastructure into the workbench.\\n6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.\\n\\n## Performance\\n\\nThe AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.\\n\\n## Tracing\\n\\nThe improved tracing internals were implemented, and we\'re now into the phase of updating the tracing integration, which is also mostly done.\\n\\n## Infrastructure\\n\\nThanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.\\n\\nOn the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.\\n\\nWe also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads."},{"id":"2023-01-06-crypto","metadata":{"permalink":"/cardano-updates/2023-01-06-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-06-crypto.md","source":"@site/blog/2023-01-06-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-06T00:00:00.000Z","formattedDate":"January 6, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-06-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-01-11-performance-and-tracing"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-05-ledger"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: The API features (error handling) has been merged. \\n* Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.\\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. \\n* KES agent: We keep progressing with KES secure forgetting implementation.\\n\\nWe also started working in the cryptography engineering handbook, which will be a cross team effort.\\n\\n## Low level summary\\n### MuSig2\\n* Merged the more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n\\n### Mithril\\n* Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in [Version 0.1.1](https://github.com/input-output-hk/kes/commit/9de00835ed354cbb8d37838f6cee57930ea9fd3d), which was published in [crates.io](https://crates.io/crates/kes-summed-ed25519). \\n* Updated new KES format to mithril library [PR 674](https://github.com/input-output-hk/mithril/pull/674)\\n* We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync [PR 531](https://github.com/input-output-hk/mithril/pull/531)\\n* We keep progressing on reducing the use of `transmute` in `mithril-stm`.\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. We are only missing nix merge of [PR#520](https://github.com/input-output-hk/iohk-nix/pull/520) and the updates on VRF will be merged.\\n\\n### KES agent\\n* We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests [PR#255](https://github.com/input-output-hk/cardano-base/pull/255#issuecomment-1362601518).\\n\\n### Cryptography handbook\\nWe have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives."},{"id":"2023-01-05-ledger","metadata":{"permalink":"/cardano-updates/2023-01-05-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-05-ledger.md","source":"@site/blog/2023-01-05-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-05T00:00:00.000Z","formattedDate":"January 5, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":4.44,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-05-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-06-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-28-node-cli-api"}},"content":"## High level summary\\n\\nThe ledger team finished up the remaining work for tracking individual depots,\\nbuilt out the new Conway era transaction body (in line with CIP-1694),\\ngreatly reduce some problematically large calculations on the epoch boundary,\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Finishing the deposit tracking\\n\\nThe initial work on the individual deposit tracking project focused only on correctness.\\nAs this is a large data structure\\n(since its size is linear with respect to the number of registered stake credentials),\\nit is very important that we also reduce the memory overhead as much as possible.\\nFortunately, we were able to add very little overhead for the deposits by using existing\\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\\nper registered stake credential.\\n\\nSee:\\n* [pull-3195]\\n* [pull-3202]\\n* [pull-3217]\\n\\n### New Conway era transaction\\n\\nWe implemented the Conway era transaction body, which is in line with CIP-1694.\\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\\nrelated to the liquid democracy (the \\"DReps\\").\\nThe new transaction body adds the new governance actions and votes,\\nwhile also deprecating the old governance structures\\n(i.e. the old protocol parameter updates and MIR certificates).\\n\\nWe also now have the wire specification (CDDL file) and serialization code in place.\\nThe wire specification is still subject to change while we work on the Conway era,\\nbut it is now usable and has proper testing support\\n(so that, for example, the serialization round-trips, etc).\\n\\nSee:\\n* [pull-3176]\\n* [pull-3226]\\n\\n### Optimizing the `TICKF` transition\\n\\nEvery since the release of the Shelley era, we have been working to reduce the computational load\\nplaced on the node by the ledger at the epoch boundary.\\nWhile still not perfect, we believe that we have removed one of the final problematically long\\nepoch boundary computations that exacerbate situations like\\n[this](https://github.com/input-output-hk/cardano-node/issues/4421).\\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\\nledger for the purposes of checking the leadership schedule in a new epoch.\\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\\ninstead of potentially several multi-second costs while the networks waits for the first block\\nof a new epoch to be minted.\\n\\nSee:\\n* An [ADR](https://github.com/input-output-hk/cardano-ledger/blob/ea48d4815946c4f35239eb41815fe06cd6ffec2e/docs/adr/2022-12-12_007-optimize-ledger-view.md) about the decision.\\n* [pull-3209]\\n\\n### Technical debt\\n\\nWe closed the year out with a lot of reduction to the technical debt!\\n\\n#### Improved ledger event\\n\\n* [pull-3212] - The ledger events are not guaranteed to appear in any given order within a block.\\n For this reason, motivated by the use case in db-sync, the `TotalDeposits` event now\\n includes a transaction ID and emits the _change_ in deposits instead of the value.\\n\\n#### Improved type saftey\\n\\n* [pull-3208] - We replaced `NominalDiffTime` with a newtype wrapper. The problem was that our CBOR\\n encoders and decoders were using the wrong level of precision, having to due with with\\n the Shelley genesis file. We removed the potential problem with a newtype wrapper.\\n* [pull-3167] - We now use a GADT to ensure consistency of the Plutus language in the types\\n for `TransactionScriptFailure` and `PlutusDebug`.\\n\\n#### Code/Module organization\\n\\n* [pull-3175] - The Allegra and Mary eras had an unusual relationship in our codebase,\\n due to the uncertainly of release dates while we were implementing them.\\n In particular, they were coupled in way that is different from the rest of the code base.\\n With hindsight on our side, we split the combined `shelley-ma` Haskell package into two\\n separate ledger era packages, which is now consistent with the rest of the repository\\n and module structure.\\n* [pull-3184] - We created a core test sub-library, cleaning up a lot of our property test\\n generator code.\\n* [pull-3210] - We moved the `KeyPair` type to the test library. Outside of testing,\\n the ledger does not need to deal with signing keys, and since this is a topic that\\n deserves the utmost care, it is best to make it clear that our use of signing keys\\n is only for testing.\\n* [pull-3229] - We split the `Cardano.Ledger.Alonzo.Data` module, which is more consistent with the rest\\n of the codebase.\\n\\n#### Revert pointer address deprecation\\n\\nThanks to one of our excellent internal auditors,\\n[@jmhrpr](https://github.com/jmhrpr),\\nwe now have a better plan for deprecating pointer addresses.\\nThis meant that we had to revert the previous work to deprecate them.\\n\\nSee:\\n* [issue-3161]\\n* [pull-3215]\\n\\n#### Miscellaneous\\n\\n* [pull-3205] - We removed deprecated type synonyms.\\n* [pull-3218] - We cleaned up the address deserialization.\\n* [pull-3223] - We fixed faulty address deserialization tests.\\n* [pull-3222] - We switched to a general type family `TxOut` from concrete ones,\\n reducing many constraints.\\n* [pull-3224] - `ShelleyGenesis` is now parameterized by crypto instead of by era.\\n* [pull-3170] - We set the cabal-version to 3.0 in our projects.\\n* [pull-3172] - We removed the now useless `EncodeMint`/`DecodeMint` classes.\\n* [pull-3225] - We switch from [ormolu](https://hackage.haskell.org/package/ormolu) to \\n [fourmolu](https://hackage.haskell.org/package/fourmolu).\\n The reason was to be able to finally have more diff friendly code!\\n\\n[issue-3161]: https://github.com/input-output-hk/cardano-ledger/issues/3161\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3176]: https://github.com/input-output-hk/cardano-ledger/pull/3176\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202\\n[pull-3205]: https://github.com/input-output-hk/cardano-ledger/pull/3205\\n[pull-3208]: https://github.com/input-output-hk/cardano-ledger/pull/3208\\n[pull-3209]: https://github.com/input-output-hk/cardano-ledger/pull/3209\\n[pull-3210]: https://github.com/input-output-hk/cardano-ledger/pull/3210\\n[pull-3212]: https://github.com/input-output-hk/cardano-ledger/pull/3212\\n[pull-3214]: https://github.com/input-output-hk/cardano-ledger/pull/3214\\n[pull-3215]: https://github.com/input-output-hk/cardano-ledger/pull/3215\\n[pull-3217]: https://github.com/input-output-hk/cardano-ledger/pull/3217\\n[pull-3218]: https://github.com/input-output-hk/cardano-ledger/pull/3218\\n[pull-3222]: https://github.com/input-output-hk/cardano-ledger/pull/3222\\n[pull-3223]: https://github.com/input-output-hk/cardano-ledger/pull/3223\\n[pull-3224]: https://github.com/input-output-hk/cardano-ledger/pull/3224\\n[pull-3225]: https://github.com/input-output-hk/cardano-ledger/pull/3225\\n[pull-3226]: https://github.com/input-output-hk/cardano-ledger/pull/3226\\n[pull-3229]: https://github.com/input-output-hk/cardano-ledger/pull/3229\\n[pull-3167]: https://github.com/input-output-hk/cardano-ledger/pull/3167\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172"},{"id":"2022-12-28-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-12-28-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-28-node-cli-api.md","source":"@site/blog/2022-12-28-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-28T00:00:00.000Z","formattedDate":"December 28, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.325,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-28-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-05-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-16-hydra"}},"content":"# 2022-12-28 - 2023-01-10\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix hedgehog-extras sha hash](https://github.com/input-output-hk/cardano-node/pull/4762)\\n- [Update hegehog-extras bounds](https://github.com/input-output-hk/cardano-node/pull/4759)\\n- [GitHub token fix](https://github.com/input-output-hk/cardano-node/pull/4751)\\n- [Use setup-haskell action](https://github.com/input-output-hk/cardano-node/pull/4743)\\n- [Use Github Action to install libsecp256k1](https://github.com/input-output-hk/cardano-node/pull/4738)\\n- [Update index state and hedgehog-extras.](https://github.com/input-output-hk/cardano-node/pull/4714)\\n- [Cleaned cabal files](https://github.com/input-output-hk/cardano-node/pull/4710)\\n- [Add cache versioning](https://github.com/input-output-hk/cardano-node/pull/4737)\\n- [Delete obsolete scripts](https://github.com/input-output-hk/cardano-node/pull/4742)\\n- [Use SECURITY.md published in Cardano Engineering Handbook](https://github.com/input-output-hk/cardano-node/pull/4746)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Filter out duplicate collateral inputs in tx build cmds](https://github.com/input-output-hk/cardano-node/pull/4749)\\n- [Optimise query stake-snapshot command](https://github.com/input-output-hk/cardano-node/pull/4754)\\n\\n### cardano-api\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2022-12-16-hydra","metadata":{"permalink":"/cardano-updates/2022-12-16-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-16-hydra.md","source":"@site/blog/2022-12-16-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-16T00:00:00.000Z","formattedDate":"December 16, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.27,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-16-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-28-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-15-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on [the website](https://hydra.family/head-protocol/benchmarks/transaction-cost/) and reduced the cost for commit transactions by ~30% with the help of reference scripts.\\n\\nThe year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.\\n\\n## What did the team achieve this week\\n\\n- Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.\\n- Reduce commit transaction costs by ~30% with reference scripts.\\n- Prepared an RFP for external audit of the Hydra Head solution.\\n- Fixed transaction cost benchmarks for abort tx [#631](https://github.com/input-output-hk/hydra/issues/631).\\n- Recorded decision to use model-based testing ([ADR22](https://hydra.family/head-protocol/adr/22/)) and improved Model [documentation](https://hydra.family/head-protocol/haddock/hydra-node/tests/Hydra-Model.html).\\n - Concluding the first increment on “Validate coordinated Head protocol” [#194](https://github.com/input-output-hk/hydra/issues/194).\\n - Formulated next step / follow-up on testing the Soundness property of our protocol [#656](https://github.com/input-output-hk/hydra/issues/656).\\n- Switched to using nix flakes for development setup and CI build [#646](https://github.com/input-output-hk/hydra/pull/646).\\n\\n## What are the goals of next week\\n\\n- Push [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) & tx validity gap over the finish line (smoke tests missing).\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Close & recap on the year with another monthly report (+ blog post)."},{"id":"2022-12-15-mithril","metadata":{"permalink":"/cardano-updates/2022-12-15-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-15-mithril.md","source":"@site/blog/2022-12-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-15T00:00:00.000Z","formattedDate":"December 15, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-16-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-12-14-consensus"}},"content":"## High level overview\\nThe Mithril team has released the new distribution [`2248.1`](https://github.com/input-output-hk/mithril/releases/tag/2248.1) of their nodes. They have published the first version of the Mithril cryptographic library on [`crates.io`](https://crates.io/crates/mithril-stm), the Rust community\u2019s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.\\n\\nFinally, they have kept on simplifying the aggregator node\'s multi-signer by removing the signer registration and the certificate creation from its responsibilities.\\n\\n## Low level overview\\n- Implemented removing verification key and stake from single signatures [#619](https://github.com/input-output-hk/mithril/issues/619)\\n- Completed the extraction of the signer registration from the multi-signer [#642](https://github.com/input-output-hk/mithril/issues/642)\\n- Completed the extraction of the certificate creation from the multi-signer [#638](https://github.com/input-output-hk/mithril/issues/638)\\n- Implemented a workflow to test client binaries (Linux / MacOS / Windows) [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Completed the signature of the artifacts produced by the CI [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Fixed the protocol parameters transition [#627](https://github.com/input-output-hk/mithril/issues/627)\\n- Worked on optimizing the snapshot digest computation [#510](https://github.com/input-output-hk/mithril/issues/510)\\n- Worked on enforcing the API protocol versions in the client and signer [#633](https://github.com/input-output-hk/mithril/issues/633)\\n- Worked on deactivating the non certified signer registration mode [#621](https://github.com/input-output-hk/mithril/issues/621)\\n- Worked on the re-genesis of the test networks [#651](https://github.com/input-output-hk/mithril/issues/651)"},{"id":"2022-12-14-consensus","metadata":{"permalink":"/cardano-updates/2022-12-14-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-consensus.md","source":"@site/blog/2022-12-14-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.995,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-12-14-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-15-mithril"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2022-12-14-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the Consensus team finalized the QSM tests for the\\nbacking store and Mempool on the UTxO-HD branch with important discoveries\\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\\nthe modifications that are required in Ledger and Consensus to accommodate the\\nchanges in the crypto VRF and KES. The `db-analyser` now supports bechmarking\\nthe ledger operations, which will allow us to identify, debug, and profile\\npotential performance problems. We drafted a document that defines how to manage\\nthe versions of Consensus-related packages. The top level documentation of\\n`ouroboros-network` now features a description of the consensus components and\\nprovides a hyperlinked map to the modules documentation.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWhereas we had passing sequential state-machine tests for the mempool, the\\nparallel case proved to be more challenging than we thought. The operation of\\nadding a list of transactions to the mempool is not atomic and, as a result,\\nwhen adding a list of transactions, transactions from other processes can be\\nadded in between. The mempool implementation handles this correctly, however\\nthis required us to [redesign][pull-4076] the parallel model we had to take\\nthe lack of atomicity into account.\\n\\n#### Backing store property tests\\n\\nWe finished refactoring the backing store property tests. The second review\\nround is ongoing.\\n\\n### LSM tree implementation\\n\\nWe are working on benchmarking (in terms of time and number of IO operations)\\nfetching/looking up data from disk.\\n\\n### Genesis \\n\\nWe worked on the design of a mechanism to prevent a DoS attack on our Genesis\\ndesign related to rollbacks. This was arguably the biggest outstanding question.\\n\\nDuring the discussions around Genesis, we noticed a design boundary that nicely\\ndelineates a fundamental component. We almost have a full Haskell prototype of\\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\\nimplementation!\\n\\n### New VRF and KES crypto integration\\n\\nWe collaborated with the Ledger team on preparing the ledger state and crypto\\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\\nthe crypto that will only manifest in headers, not in the ledger states.\\n\\n### Technical debt\\n\\nWe merged the [pull-request][pull-4014] that adds a support to `db-analyser` for\\nbenchmarking ledger operations. This will allow us to identify, debug, and\\nprofile potential performance problems. The benchmark focus on the main 5 ledger\\noperations that are involved in chain syncing, block forging, and block\\nvalidation, namely:\\n\\n0. Forecast.\\n1. Header tick.\\n2. Header application.\\n3. Block tick.\\n4. Block application.\\n\\nThe following figure shows a plot of the benchmarking results for the first 65\\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\\nto the era transitions.\\n\\n![](/images/consensus/2022-12-14-ledger-ops-benchmark.png)\\n\\nAs we can see in this figure, era and epoch boundaries require more computation\\ntime. The ledger team are aware of this problem, and we are working to improve\\nthis situation.\\n\\n### Fostering collaboration\\n\\nWe [drafted a document][pull-4207] motivating and defining how Consensus (and\\npossibly other core teams) will/should manage our package versions. This\\npull-request garnered many great discussions from our team members and other\\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\\nal. We want to thank you all for your input, and we found this discussion very\\nenlightening!\\n\\nWe merged the [pull request][pull-4197] that adds an overview of consensus to\\nthe [top level\\ndocumentation](https://input-output-hk.github.io/ouroboros-network/) of\\nouroboros-network. This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\n[pull-4207]: https://github.com/input-output-hk/ouroboros-network/pull/4207\\n[pull-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014\\n[pull-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-12-14-db-sync","metadata":{"permalink":"/cardano-updates/2022-12-14-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-db-sync.md","source":"@site/blog/2022-12-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2022-12-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-12-14-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-14-node-cli-api"}},"content":"## High level summary\\n\\nThe DBSync team continued testing release `13.1.0.0`. The QA team has reported that no issues have\\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.\\n\\n## Lower level summary\\n\\n- Release is cherry-picked back to master, which uses the new rollback mechanism which uses\\nreverse indexes, same as the release\\n[#1320](https://github.com/input-output-hk/cardano-db-sync/pull/1320)\\nThis also fixes a bug number of issues on master.\\n- Depenencies upgrade and CHaP integration\\n[#1324](https://github.com/input-output-hk/cardano-db-sync/pull/1324)\\n- AdaPots fix [#1323](https://github.com/input-output-hk/cardano-db-sync/pull/1323). This\\nfixes an issue where the per epoch AdaPots didn\'t match the epoch boundary, but\\nthey also included changes from the first block of the epoch.\\n- Deposits Event fix [#3212](https://github.com/input-output-hk/cardano-ledger/pull/3212). This pr\\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\\nnumber of queries that db-sync does during syncing an make syncing faster."},{"id":"2022-12-14-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-12-14-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-node-cli-api.md","source":"@site/blog/2022-12-14-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-14-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2022-12-14-db-sync"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-12-14-performance-and-tracing"}},"content":"# 2022-12-14 - 2022-12-27\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n\\n## Completed\\n\\n### docs\\n\\n- [Move style guide to wiki](https://github.com/input-output-hk/cardano-node/pull/4703)\\n\\n### CI & project maintenance\\n\\n- [Cache secp256k1](https://github.com/input-output-hk/cardano-node/pull/4734)\\n- [Use cabal-cache](https://github.com/input-output-hk/cardano-node/pull/4717)\\n- [build(deps): bump certifi from 2020.4.5.2 to 2022.12.7 in /doc/.sphinx](https://github.com/input-output-hk/cardano-node/pull/4699)\\n- [Update cabal.project](https://github.com/input-output-hk/cardano-node/pull/4724)\\n\\n### Developer experience\\n\\n- [Add aarch64-darwin to nix-shell](https://github.com/input-output-hk/cardano-node/pull/4125)\\n\\n### cardano-cli\\n- [Improved error message for failed asset name decode](https://github.com/input-output-hk/cardano-node/pull/4626)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Remove cardano-cli address build-script](https://github.com/input-output-hk/cardano-node/pull/4700)\\n\\n### cardano-api\\n- [Move signing key reading to cardano-api](https://github.com/input-output-hk/cardano-node/pull/4698)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [Only run chairman test on latest era](https://github.com/input-output-hk/cardano-node/pull/4712)\\n- [Add fix and test for `foldBlocks`](https://github.com/input-output-hk/cardano-node/pull/4679)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)"},{"id":"2022-12-14-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-12-14-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md","source":"@site/blog/2022-12-14-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":3.095,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-12-14-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-14-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-12-12-network"}},"content":"## High level summary\\n\\n1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.\\n2. A new workstream for Plutus cost modeling improvement: we\'ve planned and started implementing the smart contract call overhead measurement machinery.\\n3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we\'re continuing with the further performance-oriented rework of the internals.\\n4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.\\n5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.\\n\\n## Performance\\n\\nThe SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we\'ll be running the model cluster workload.\\n\\nWe\'ve also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.\\n\\n## Tracing\\n\\nAfter the initial model-scale performance data caused us to panic, among other things we\'ve done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.\\n\\nTo understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:\\n\\n 1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that\'s also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.\\n 2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it\'s the fair benchmark, because that\'s the way we expect SPO\'s to set up tracing. That, however also causes it to do more work.\\n\\nAll that said, since we\'ve established the performance of the new system to be adequate for the release, we won\'t be delaying it much further.\\n\\nIn addition, we\'re still pursuing our performance-enhancing rework of the new tracing internals.\\n\\n## Infrastructure\\n\\nAfter implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.\\n\\nMoving to analysis, we\'ve also improved provenance of the raw data, by collecting more identification information and statistics about it.\\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.\\n\\nA new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\\nPreviously we only had automation for two aspects separately, so we only could either:\\n - compare individual runs (used for different node configurations / versions)\\n - collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline."},{"id":"2022-12-12-network","metadata":{"permalink":"/cardano-updates/2022-12-12-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-12-network.md","source":"@site/blog/2022-12-12-network.md","title":"Network Team Update","description":"High level summary","date":"2022-12-12T00:00:00.000Z","formattedDate":"December 12, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-12-12-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-12-14-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-12-09-crypto"}},"content":"## High level summary\\n\\nIn last sprint the team focused on preparations for the conference talk at\\n[OPODIS 2022]. We also worked on preparations to publish `io-sim` and related\\npackages on Hackage ([PR #57], [PR #60]).\\n\\nWe also started reviewing:\\n* `ouroboros-network`\\n* `cardano-node`\\n* `cardano-ledger`\\nrepositories for open-source readiness ([PR #4128]).\\n\\nWe prepared a PR which changes how `node-to-node` and `node-to-client` protocol\\nversiones are serialised in `cardano-node` log ([PR #4691]).\\n\\n[OPODIS 2022]: https://sites.uclouvain.be/OPODIS2022/\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[PR #4128]: https://github.com/input-output-hk/ouroboros-network/pull/4218\\n[PR #4691]: https://github.com/input-output-hk/cardano-node/pull/4691"},{"id":"2022-12-09-crypto","metadata":{"permalink":"/cardano-updates/2022-12-09-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-crypto.md","source":"@site/blog/2022-12-09-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.39,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-12-09-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-12-12-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-09-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency. \\n* Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe. \\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack. \\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.\\n\\n## Low level summary\\n### MuSig2\\n* [Still in progress] We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We merged the API redesig [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n* We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We\'ll probably circle back to this in the future [PR#36](https://github.com/input-output-hk/musig2/pull/36)\\n\\n### Mithril\\n* We merged the individual signature [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n* We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser ([kes repo](https://github.com/input-output-hk/kes/commits/master)) \\n\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. \\n* We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a [bug in GHC](https://gitlab.haskell.org/ghc/ghc/-/issues/22564)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Fixed a \'use-after-free\' bug in the KES agent."},{"id":"2022-12-09-hydra","metadata":{"permalink":"/cardano-updates/2022-12-09-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-hydra.md","source":"@site/blog/2022-12-09-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.62,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-09-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-12-09-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-12-09-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on completing to \\"Validate coordinated head protocol against formal model\\", this is a huge step to verify the implementation is secure. They also worked on implementing [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) related to bounded tx validity which is now under review. [HydraPay](https://github.com/obsidiansystems/hydra-pay) project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of [issues](https://github.com/obsidiansystems/hydra-pay/issues?q=is%3Aissue) they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.\\n\\n## What did the team achieve this week\\n\\n- Document model based testing [#194](https://github.com/input-output-hk/hydra/issues/194) & [#641](https://github.com/input-output-hk/hydra/issues/641)\\n- Got [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md), reducing gaps between implementation and specification, under review.\\n- Complete review on `hydra-tutorial`.\\n- Complete first round of review on `HydraPay` work [#634](https://github.com/input-output-hk/hydra/issues/634)\\n- Meeting with `Director of CyberSecurity` frio `IOG` to unblock \\"the RFP prepared for the external audit\\" [#606](https://github.com/input-output-hk/hydra/issues/606)\\n- Remove `vasil-dev` and `testnet` from `smoke-test` because they were not working [#630](https://github.com/input-output-hk/hydra/issues/630)\\n- Fix flaky `plutus-merkle-tree` test [#642](https://github.com/input-output-hk/hydra/issues/642)\\n- Refactor `NetworkSpec` to improve legilibility.\\n- Fix benchmark cost for `abortTx` [#631](https://github.com/input-output-hk/hydra/issues/631)\\n- Adapt `nix.conf` to the recent hydra-ci nix cache migration.\\n\\n## What are the goals of next week\\n\\n- Get [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) accepted & close tx validity gap in our implementation.\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Get Cicero (new CI) working.\\n- Use reference inputs to reduce the cost of the `commitTx`."},{"id":"2022-12-09-ledger","metadata":{"permalink":"/cardano-updates/2022-12-09-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-ledger.md","source":"@site/blog/2022-12-09-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.87,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-12-09-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-09-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-02-hydra"}},"content":"## High level summary\\n\\nThe Plutus tools team at IOG has started helping the ledger team to build out a user friendly\\n`cardano-ledger-api` package!\\nA [GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5)\\nwill be filled out in the days ahead,\\npeople interested in the API can use it to follow along and join in on the conversations.\\n\\nThe ledger team has started using\\n[architectural decision records](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md)\\nto leave a record of important decisions that the team makes.\\nWe will retroactively go back through past decisions and make ADRs for them.\\n\\nThe logic to track individual deposits is now nearly in place.\\nWe are prioritizing correctness with our first pull request, and will follow up with\\nperformance optimizations and general cleanup next.\\n\\nPointer addresses are being deprecated with the Cardano major protocol version 8.\\nSee [CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374)\\nfor more context.\\n\\n## Lower level summary\\n\\n#### Cardano ledger API\\n\\nThe **Plutus tools team** has taken our minimal `cardano-ledger-api` package and started filling it\\nout and adding much needed documentation.\\nThey have also added doctests!\\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\\nit in this\\n[GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5).\\n\\nSee\\n\\n* [pull-3182]\\n* [pull-3188]\\n\\n#### Architectural Decision Records (ADRs)\\n\\nWe are now providing more context and leaving a record of important decisions that are made\\nin the ledger. The first ADR explains the very lightweight process.\\n\\nSee\\n\\n* [pull-3177] (rendered [here](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md))\\n\\n#### Tracking individual deposits\\n\\nSee [ADR-3](https://github.com/input-output-hk/cardano-ledger/pull/3190/files)\\nfor background.\\nWe now have the logic in place to track individual deposits, and a host of property tests\\nto make sure that the logic is correct.\\nThe current implementation uses more memory than it needs to, and we will address that next,\\nwith our hope being to only use one word (8 bytes) per registered stake credential.\\nThere is a fair amount of other cleanup needed for general maintainability.\\n\\nSee\\n\\n* [pull-3127]\\n* [pull-3195]\\n* [pull-3202]\\n\\n#### Removing pointer addresses\\n\\nPointer addresses, which have never seen any real use\\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\\nversion 9.\\n[CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374) gives the context.\\nWe are disabling them by first preventing transaction outputs containing them\\nfrom being serialized by the node at the moment we switch to version 9.\\nAt the hard fork after that, we will translate the existing few pointer addresses\\nto enterprise addresses.\\n\\nSee\\n\\n* [pull-3174]\\n\\n#### Technical debt\\n\\n* [pull-3162] - Sometimes we have to put safeguards in place for hard forks which may never\\n be exercised. After we have passed the given hardfork, we are able to clean up the code\\n and simplify our logic. We removed all of the ones that we are currently easily able to.\\n* [pull-3165] - We improved the type safety of our code while also discovering and fixing\\n a serialization bug.\\n* [pull-3172] - We removed dead code.\\n* [pull-3175] - The Allegra and the Mary code used to be coupled in a particular way the we grew to\\n dislike. We made these two ledger eras now uniform with the rest of our code base.\\n* [pull-3184] - We organized our property testing code.\\n* [pull-3200] - The Plutus tools teams fixed an outstanding bug in the translation from the\\n ledger state to the Plutus script context.\\n\\n\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3165]: https://github.com/input-output-hk/cardano-ledger/pull/3165\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172\\n[pull-3174]: https://github.com/input-output-hk/cardano-ledger/pull/3174\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3177]: https://github.com/input-output-hk/cardano-ledger/pull/3177\\n[pull-3182]: https://github.com/input-output-hk/cardano-ledger/pull/3182\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3188]: https://github.com/input-output-hk/cardano-ledger/pull/3188\\n[pull-3190]: https://github.com/input-output-hk/cardano-ledger/pull/3190\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3200]: https://github.com/input-output-hk/cardano-ledger/pull/3200\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202"},{"id":"2022-12-02-hydra","metadata":{"permalink":"/cardano-updates/2022-12-02-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-02-hydra.md","source":"@site/blog/2022-12-02-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-02T00:00:00.000Z","formattedDate":"December 2, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.965,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-02-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-12-09-ledger"},"nextItem":{"title":"DB sync Team Update","permalink":"/cardano-updates/2022-12-01-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on cleaning up several things in progress\\nafter last week\'s summit. They have extended their model-based testing (MBT)\\napproach with transaction creation & observation\\n[#410](https://github.com/input-output-hk/hydra/issues/410), solved\\n`AcquirePointTooOld` problems of the `hydra-node` with by changing the wallet\\ninitialization [#439](https://github.com/input-output-hk/hydra/issues/439).\\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\\nHead, which are bound to be included in the Hydra HeadV1 specification.\\n\\n## What did the team achieve this week\\n\\n- Monthly review & report - will also be published on our website [#644](https://github.com/input-output-hk/hydra/pull/644)\\n- Extended the model-based testing (MBT) with transaction creation/observation [#410](https://github.com/input-output-hk/hydra/issues/410)\\n- Solve `AcquirePointTooOld` problems with new wallet initialization [#439](https://github.com/input-output-hk/hydra/issues/439)\\n- Fixed our hydraw deployments (EC2 instances)\\n- Created & discussed [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) within tx validity work\\n- Received & discussed security proofs of Coordinated Hydra Head (requires more work)\\n\\n## What are the goals of next week\\n\\n- Get ADR21 accepted & close tx validity gap in our implementation\\n- Complete review & integrate the Hydra tutorial\\n- Review latest hydra-pay work\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec\\n- Get Cicero (new CI) working"},{"id":"2022-12-01-db-sync","metadata":{"permalink":"/cardano-updates/2022-12-01-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-db-sync.md","source":"@site/blog/2022-12-01-db-sync.md","title":"DB sync Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.78,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB sync Team Update","slug":"2022-12-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-02-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-01-mithril"}},"content":"## High level summary\\n\\nThe DB Sync team prepared a release `13.1.0.0-rc2` which includes many improvements for db-sync,\\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\\nmigrations. This release finalises the objectives that were set for db-sync for the previous\\n3 months period and part of the syncing speed objective set for the next period\\n[Changelog](https://github.com/input-output-hk/cardano-db-sync/blob/3640e5aa00b8bada61e5d4b6eee063749866711b/cardano-db-sync/CHANGELOG.md#13100)\\n\\n## Lower level summary\\n- Branch [release/13.1.0.x](https://github.com/input-output-hk/cardano-db-sync/compare/release/13.0.x..3640e5aa00b8bada61e5d4b6eee063749866711b)\\nincludes all the improvements related to the release. The release is passing through the testing\\nphase and a number of bugs and issues have been fixed, like\\n[#1312](https://github.com/input-output-hk/cardano-db-sync/issues/1312)\\n[#1311](https://github.com/input-output-hk/cardano-db-sync/issues/1311).\\nAlso many new unit tests have been added.\\n\\n- Part of the release branch is cherry-picked back into master, in a way that it respects the new\\nrelease and development process, so that it takes into account migrations\\n[release process](https://github.com/input-output-hk/cardano-db-sync/issues/1305)\\n\\n- The DB Sync team has also tagged release `13.0.6` which better supports preview and preprod for\\ndocker."},{"id":"2022-12-01-mithril","metadata":{"permalink":"/cardano-updates/2022-12-01-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-mithril.md","source":"@site/blog/2022-12-01-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.04,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-01-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB sync Team Update","permalink":"/cardano-updates/2022-12-01-db-sync"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-12-01-system-test"}},"content":"## High level overview\\nThe Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes. \\n\\nFinally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.\\n\\n## Low level overview\\n- Implemented custom Mithril SPOs on testing/pre-release networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Deprecated Signer Declarative Pool Id registration mode [#585](https://github.com/input-output-hk/mithril/issues/585)\\n- Completed the second stage of the store automatic migration process [#600](https://github.com/input-output-hk/mithril/issues/600)\\n- Completed the deployment pipelines to crates.io registry [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Completed automatic generation of nodes/libraries versions manifest in releases notes [#599](https://github.com/input-output-hk/mithril/issues/599)\\n- Completed CI/CD handling of PR from forks [#597](https://github.com/input-output-hk/mithril/issues/597)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#586](https://github.com/input-output-hk/mithril/issues/586)\\n- Worked on signing the artifacts released in the distributions by the CI/CD [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Worked on multi-platforms end to end test [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Worked on the refactorizaton of the aggregator multi-signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-12-01-system-test","metadata":{"permalink":"/cardano-updates/2022-12-01-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-system-test.md","source":"@site/blog/2022-12-01-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.765,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-12-01-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-01-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-30-consensus"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, planned the testing of the _P2P Single \\nRelay_ functionality, and also tested some DB-Sync tags.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- moved the System Test CLI Pipelines from BuildKite to Github Actions\\n- improved the reporting tools to support the rerun of the failled tests and update of the reports \\n- added support for Github API in [report-aggregator](https://github.com/mkoura/report-aggregator), so reports will be generated from the GitHub nightly jobs from now on\\n- added support for mixed topology - P2P, legacy, mixed topologies\\n- planned the P2P Single Relay system test activities \\n- added support to start regression tests with PV8 + better selection of tests\\n\\n### DB-Sync:\\n- confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)\\n- tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2"},{"id":"2022-11-30-consensus","metadata":{"permalink":"/cardano-updates/2022-11-30-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-consensus.md","source":"@site/blog/2022-11-30-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.4,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-30-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-12-01-system-test"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-30-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team merged improvements to the monadic\\ncursor API that was needed to implement LMDB range reads, which is in turn\\nrequired for the implementation of the UTxO HD feature. We added tables to\\nseveral tests in for the UTxO HD feature, which increases our confidence in the\\ncorrectness of the prototype. The mempool property tests are close to being\\ncompleted. Also, we finished the LSM tree tuning algorithm.\\n\\nOn the Genesis front we started simplifying the BlockFetch logic with\\nCSJ-specific workloads in mind. \\n\\nWe are also documenting the Block Diffusion Pipelining feature, and added a\\nhigh-level overview of consensus to the top level documentation of\\n`ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWe merged the implementation of a monadic cursor API ([#1][pull-1])) which was\\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\\nbridging the gap between the `lmdb-simple` interface and consensus by facilitating\\nusing `lmdb-simple`\'s cursor API without `Serialise` constraints ([#3][pull-3]).\\n\\nWe refactored the backing store property tests to use `quickcheck-lockstep`\\n([#4081][pull-4081]).\\n\\nWe added tables to the mock ledger in the UTxO-HD feature branch\\n([#4184][pull-4184]). Every test that used to run with `SimpleBlocks` now uses\\ntables. This will enable us to exercise the UTxO HD mempool integration by\\nleveraging the existing mempool property-tests. The new state-machine\\nproperty-tests are still needed for testing the parallel behaviour of the\\nmempool.\\n\\nOur work on the mempool state-machine tests revealed the need for improvements\\nin the `quickcheck-state-machine` library. Parallel testing assumed that the\\nstate machine did not have access to mutable references. However, the mempool\\ntests require the use of such mutable references for mocking the ledger\\ninterface. As a result, our parallel tests were failing with rather obscure\\nmessages. @Jasagredo submitted a pull request ([#12][pull-12]) that allows for\\nnew mutable references to be created at each run of the state machine.\\n\\n#### Backing store property tests\\n\\n### LSM tree implementation\\n\\nWe finished the LSM Tree tuning algorithm. We are currently tidying up the code\\nand gathering results (i.e., plots and their interpretation).\\n\\n### CSJ prototype\\n\\nWe started simplifying the BlockFetch logic with CSJ-specific workloads in mind.\\n\\n### New VRF and KES crypto integration\\n\\nStarted working on supporting new version of `StandardCrypto` which uses compact\\nKES and batched VRF ([#4151][issue-4151]).\\n\\n### Technical debt\\n\\nWe reviewed the existing state of the Block Diffusion Pipelining document. We\\nare now working on the \\"Implementation\\" section ([#4020][issue-4020]).\\n \\n### Fostering collaboration\\n\\nWe cleared up our understanding of the error dynamics of forecasting\\n([#4146][pull-4146] and [#4174][pull-4174]).\\n\\nWe submitted a pull request that adds an overview of consensus to the [top level\\ndocumentation](https://input-output-hk.github.io/ouroboros-network/) of\\nouroboros-network ([#4197][pull-4197]). This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\nhttps://github.com/input-output-hk/ouroboros-network/pull/4197\\n\\n\\n[issue-4151]: https://github.com/input-output-hk/ouroboros-network/issues/4151\\n[pull-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pull-3]: https://github.com/input-output-hk/lmdb-simple/pull/3\\n[pull-4081]: https://github.com/input-output-hk/ouroboros-network/pull/4081\\n[pull-4184]: https://github.com/input-output-hk/ouroboros-network/pull/4184\\n[pull-12]: https://github.com/stevana/quickcheck-state-machine/pull/12\\n[pull-4146]: https://github.com/input-output-hk/ouroboros-network/pull/4146\\n[pull-4174]: https://github.com/input-output-hk/ouroboros-network/pull/4174 \\n[issue-4020]: https://github.com/input-output-hk/ouroboros-network/issues/4020\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-11-30-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-30-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-node-cli-api.md","source":"@site/blog/2022-11-30-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-30-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-30-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-30-performance-and-tracing"}},"content":"# 2022-11-30 - 2022-12-13\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n## Completed\\n\\n### docs\\n\\n### cardano-cli\\n- [Append tx output in cli transaction build command](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Error messages in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4592)\\n\\n### cardano-api\\n\\n### cardano-node\\n- [Replace Data.Map with Data.Map.Strict](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Github actions](https://github.com/input-output-hk/cardano-node/pull/4708)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-30-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-11-30-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-performance-and-tracing.md","source":"@site/blog/2022-11-30-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.95,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-30-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-30-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-28-network"}},"content":"## High level summary\\n\\n1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.\\n2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.\\n3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.\\n4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.\\n5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.\\n\\n## Performance\\n\\nWe have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don\'t see any significant performance changes. The component bumps are therefore clear for release.\\n\\n## Tracing\\n\\nFor the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.\\n\\nTo support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.\\n\\n## Infrastructure\\n\\nGeneration support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.\\n\\nIn addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.\\n\\nThe intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.\\n\\nWe continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.\\n\\nWe are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.\\n\\nAs usual, a number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-28-network","metadata":{"permalink":"/cardano-updates/2022-11-28-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-28-network.md","source":"@site/blog/2022-11-28-network.md","title":"Network Team Update","description":"Stake-Driven Data Diffusion Release for Relays","date":"2022-11-28T00:00:00.000Z","formattedDate":"November 28, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":3.675,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-28-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-30-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-25-crypto"}},"content":"## Stake-Driven Data Diffusion Release for Relays\\n\\nIOG networking team decided to release the _Stake-Driven Data Diffusion with\\nRobust Optimised Peer Selection_ also more commonly known as _P2P_. In the\\nlast update, we informed about a performance regression, but it turns out it\\nonly affects block producers, and thus we highly advise against running it on\\nsuch nodes. Further investigation is required to find the cause of it.\\n\\nOn IOG\'s benchmarking cluster we have seen quite a good performance improvement\\non block propagation itself. The cluster is running a static topology with\\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\\nnodes are block producers. The setup of this network is the same as mainnet.\\nWe\'ve seen 40-50% performance improvement on block propagation comparing to the\\nsame cluster deployed with the same topology but using non-P2P nodes. We think\\nthis performance improvement is caused by using full duplex connections. Quite\\nlikely the transaction traffic floating in both directions on the same TCP\\nconnection helps to keep the TCP window open. Note that in a cluster of 50\\nnodes with valency 6 the probability of having at least one duplex connection\\nis more than 50%. We don\'t expect the same improvement on mainnet because the\\nnetwork is much wider and the transaction traffic is not as large.\\n\\nJust before the release we squashed two small bugs:\\n\\n* [issue #4163] - top level integration bug in `keep-alive`;\\n* [issue #4177] - a bug in `outbound-governor`;\\n* [PR #4165] - a fix `cardano-ping` support of `NodeToNodeV_10`.\\n\\n\\n### Peer Sharing\\n\\nWe were carrying a review of [peer sharing PR][PR #4019].\\n\\n### DeltaQ\\n\\nNeil Davies was invited to give a guest lecture entitled `Avoiding System Catastrophes` at [UCLouvain].\\n\\n## What have we achieve last sprint\\n\\n* [issue #4163]: we found out that a control message is not passed to the\\n `keep-alive` mini-protocol, this results in every demotion executing demotion\\n timeout rather than a graceful termination. With the fix the node will no longer log:\\n ```json\\n { \\"kind\\": \\"PeerStatusChangeFailure\\"\\n , \\"peerStatusChangeType\\": \\"WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})\\"\\n , \\"reason\\": \\"TimeoutError\\"\\n }\\n ````\\n\\n* [issue #4177]: we fixed an assertion failure in the `outbound-governor`; now\\n we don\'t try demoted peers which are being demoted already.\\n\\n* [PR #4155]: we refactored `ouroboros-network` packages. There\'s a top level\\n `ouroboros-consensus-diffusion` package which integrates `network`\\n & `consensus` code. We also introduced:\\n\\n - `ouroboros-network-api` package which contains the API shared between\\n `network` & `conensus`;\\n - `ouroboros-network-mock` package which contains mock API used for testing\\n (e.g. a mock chain & chain producer, etc.)\\n - `ouroboros-network-protocols` package which contains implementation of all\\n (but `handshake`) mini-protocols, exposes a `testlib` and contains `test`\\n and `cddl` components.\\n\\n This made the dependency tree of `network` & `consensus` packages much\\n cleaner.\\n\\n* [PR #4169]: we described the usage of release branches in `CONTRIBUTING.md`\\n doc.\\n\\n* [PR #4165]: we fixed `cardano-ping` support of `NodeToNodeV_10` protocol.\\n\\n\\n### DeltaQ\\n\\nThe abstract of the talk:\\n\\n> An essential step to ensuring that distributed systems are fit for\\n> purpose.\\n>\\n> Distributed systems have become an integral part of our society and\\n> daily lives. We are, both implicitly and explicitly, individually as well as\\n> collectively, placing ever more trust in them.\\n>\\n> Are they worthy of this trust? Our need for them to be \u2018fit-for-purpose\u2019 goes\\n> well beyond notions of functional correctness (i.e. never getting the wrong\\n> answer). We need them to deliver the desired outcomes in a timely, robust,\\n> reliable, resilient fashion, at scale and in a sustainable way (both\\n> economically and environmentally).\\n>\\n> This all sounds like a worthy aspiration, but what would be a practical\\n> approach to capturing and reasoning about these issues? How can we ensure that\\n> systems can meet their fit-for-purpose objectives, not just in their design but\\n> as they are deployed, encounter the imperfect world, are scaled to become\\n> economic, and proceed into ongoing maintenance?\\n>\\n> This talk will illustrate how the notions of Outcomes and Quality Attenuation\\n> (as captured by \u2018\u2206Q\u2019) are being used to both frame the necessary notions and\\n> provide a basis for assuring the refinement and reification of such systems,\\n> from initial concept to operational infrastructure.\\n\\nYou can download the slides from [here](../static/pdf/network/2022-11-24-UCL.pdf).\\n\\n[issue #4163]: https://github.com/input-output-hk/ouroboros-network/issues/4163\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[PR #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[PR #4169]: https://github.com/input-output-hk/ouroboros-network/pull/4169\\n[PR #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[UCLouvain]: https://uclouvain.be/en/index.html"},{"id":"2022-11-25-crypto","metadata":{"permalink":"/cardano-updates/2022-11-25-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-25-crypto.md","source":"@site/blog/2022-11-25-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.705,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-25-crypto","authors":"iquerejeta","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-28-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-25-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team. \\n* Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes\\n* cardano-base: The VRF and BLS branchs are still open and in progress\\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent. \\n\\n## Low level summary\\n### MuSig2\\n* We redesigned the library so that MuSig2 lib users don\'t need to be aware of the underlying secp256k1 library [PR#31](https://github.com/input-output-hk/musig2/pull/31)\\n* We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We rethought the API and made it more consistent with the underlying secp256k1 library [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n\\n### Mithril\\n* The mithril crates in general will be published in crates.io, and we adapted the core library\'s README [PR#616](https://github.com/input-output-hk/mithril/pull/616) \\n* We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n\\n### cardano-base\\n* We\'ve been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions [PR#344](https://github.com/input-output-hk/cardano-base/pull/344)\\n* Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation."},{"id":"2022-11-25-hydra","metadata":{"permalink":"/cardano-updates/2022-11-25-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-25-hydra.md","source":"@site/blog/2022-11-25-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-25-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-25-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-23-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a [presentation](https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/) about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.\\n\\n## What did the team achieve this week\\n\\n- Attended the Cardano Summit in Lausanne. Hydra was topic of one talk: \\n- Had a team workshop / hackathon after the summit:\\n - Retrospective\\n - Impact mapping session\\n - Hacked on smaller things\\n- Got a PR for tullia/cicero things by @kdermetfan\\n\\n## What are the goals of next week\\n\\n- Monthly report & review meeting\\n- Tie up several loose ends / branches.\\n- Resolve Tx validity discussions & PRs.\\n- Review cicero PR & try it out."},{"id":"2022-11-23-ledger","metadata":{"permalink":"/cardano-updates/2022-11-23-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-23-ledger.md","source":"@site/blog/2022-11-23-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-23T00:00:00.000Z","formattedDate":"November 23, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.19,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-23-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-25-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-18-hydra"}},"content":"## High level summary\\n\\nWe released [CIP-1694],\\nour proposal for entering the [Voltaire phase](https://roadmap.cardano.org/en/voltaire/).\\n**Please come join the discussion**, this will be an incredibly exciting transition for\\nCardano and we want everyone to participate!\\n\\nWe now have a sensible way to version all of the serialization schemes used in the ledger.\\nThe draft pull request was polished, reviewed, and merged this week.\\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era.\\n\\nEveryone working on the Cardano node is working together to improve our release process,\\nand the ledger team in particular dedicated one engineer to help with these efforts\\nfor the next release.\\n\\n## Lower level summary\\n\\n### The Conway ledger era\\n\\nThe current proposal in [CIP-1694] encompasses two new ledger eras.\\nThe first era will be called Conway, after the English mathematician John Horton Conway.\\nThe community facing aspects of the Conway ledger era will be very minimal,\\nbut it will pave the way for introducing liquid democracy.\\nThe details can be viewed [here](https://github.com/input-output-hk/cardano-ledger/projects/4).\\nWe do not yet have a formal specification for the Conway era.\\nOur plan is to debut the\\n[formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications).\\nBriefly, the Conway ledger era will:\\n* introduce SPO voting for hard forks (in the spirit of the now abandoned [CIP-47])\\n* provide an on-chain mechanism for rotating the governance keys\\n* re-plumb the ledger rules involving governance to be in line with [CIP-1694]\\n\\n### Versioned CBOR\\n\\nWe now have the ability to easily tie our serialization schemes to the Cardano\\nmajor protocol version.\\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\\nplan for resolving problems (see [CIP-ledger-cbor]).\\nIn particular, we can now address several long standing issues, such as\\n[issue-2444], [issue-2965], and [issue-3003]. \\n\\nThe final (and massive!) pull request which brought us the versioning is [pull-3138].\\n\\n### Deposit tracking\\n\\nThe draft pull request which was exploring how best to track individual deposits\\nis much closer now to being ready to take out of draft ([pull-3127]).\\nFor background on the issue, see [issue-3113].\\nThis is quite an invasive change which effects many of our tests, which we are now addressing.\\n\\n### Technical debt\\n\\nAs always, we keep working on technical debt.\\nWe have deduplicated a some things: [pull-3129], [pull-3162].\\nWe have memoized a problematic computation (though more due diligence is needed before we can\\nmerge): [pull-3141].\\n\\n### Node release\\n\\nWe have been helping with the node release efforts. See [pull-4608].\\n\\n[CIP-47]: https://github.com/cardano-foundation/CIPs/pull/318\\n[CIP-1694]: https://github.com/cardano-foundation/CIPs/pull/380\\n[CIP-ledger-cbor]: https://github.com/cardano-foundation/CIPs/pull/372\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[pull-3129]: https://github.com/input-output-hk/cardano-ledger/pull/3129\\n[pull-3141]: https://github.com/input-output-hk/cardano-ledger/pull/3141\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-4608]: https://github.com/input-output-hk/cardano-node/pull/4608"},{"id":"2022-11-18-hydra","metadata":{"permalink":"/cardano-updates/2022-11-18-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-18-hydra.md","source":"@site/blog/2022-11-18-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.085,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-18-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-23-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-18-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version `0.8.1`, which includes several fixes and a user-wished extension of the persistence introduced by `0.8.0` of replaying server outputs to make clients like the `hydra-tui` be aware of the latest `hydra-node` state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from `hydra-poc` to [`hydra`](https://github.com/input-output-hk/hydra)!\\n\\n## What did the team achieve this week\\n\\n- Implemented replaying of server outputs to address [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Released version 0.8.1 containing this and other fixes [Release notes](https://github.com/input-output-hk/hydra/releases/tag/0.8.1)\\n- Worked on the bounded tx validity as one of the on-chain script fixes, but couldn’t finish it just yet [#615](https://github.com/input-output-hk/hydra/pull/615)\\n- Collaborated with the education team on a Hydra tutorial.\\n- Discovered and discussed issues with the “seen ledger”.\\n- Renamed the Hydra repository `hydra-poc` -> `hydra`\\n\\n## What are the goals of next week\\n\\n- Create and discuss an ADR about handling tx validity correctly.\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**\\n- Have a team workshop / hackathon after the summit:\\n - Retrospective\\n - Roadmapping session\\n - Hack on something complex or useful"},{"id":"2022-11-18-mithril","metadata":{"permalink":"/cardano-updates/2022-11-18-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-18-mithril.md","source":"@site/blog/2022-11-18-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.35,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-18-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-18-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-16-consensus"}},"content":"## High level overview\\nThe Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks. \\n\\nFinally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.\\n\\n## Low level overview\\n- Released a new Mithril distribution [2246.1](https://github.com/input-output-hk/mithril/releases/tag/2246.1)\\n- Completed the first stage of the store migrations process [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage [#576](https://github.com/input-output-hk/mithril/issues/576)\\n- Prepared a Daedalus synchronization benchmark video with/without Mithril [#606](https://github.com/input-output-hk/mithril/issues/606)\\n- Upgraded the Cardano nodes of the testing Mithril networks to `1.35.4` [#594](https://github.com/input-output-hk/mithril/issues/594)\\n- Worked on implementing SPO tests nodes on testing Mithril networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Worked on the refactorizaton of the aggregator multi signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-11-16-consensus","metadata":{"permalink":"/cardano-updates/2022-11-16-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-consensus.md","source":"@site/blog/2022-11-16-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":5.06,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-16-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-18-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-16-node-cli-api"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team started documenting the\\nimplementation of the UTxO HD feature and continued developing tests for it. As\\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\\nspent time working on the LSM tree prototype, and designed a parameter tuning\\nalgorithm for it. Regarding our work on Genesis, our investigation of the\\n\\"plateaus\\" pointed at the `TICKF` slowdown on era boundaries as culprit. This\\nled us to developing a caching strategy that will not only remove the\\naforementioned \\"plateaus\\", but can help alleviating the growing block production\\ndelay on epoch switch. We also helped reviewing the block forge credential\\nhotswap feature, which is intended for use in the adoption of P2P.\\n\\nWe also worked on paying technical debt and fostering collaboration. In\\nparticular, we improved the `io-sim` framework, which is crucial for testing and\\nsimulating Cardano components. We also removed thunks that appeared on era\\ntranslations, and improved our diffusion pipelining feature. We are working on a\\npresentation for explaining Praos and Genesis.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: in progress.\\n - We added documentation for this feature.\\n - We developed the second version of the mempool tests.\\n - We fixed benchmarks that were inflating the speedup we observed in the\\n anti-diff implementation of sequences of differences. Speedups are now in the\\n range of [3.33, 4.75], which remain significant.\\n - We continued improving Haskell LMDB support.\\n - We finished implementing a \\"parameter tuning algorithm\\" for the LSM tree\\n prototype. This enables us to run experiments to check the correctness of\\n the algorithm.\\n- Genesis: in progress.\\n - Work investigating the \\"plateaus\\" in the `ChainSync` jumping prototype\\n pointed to the `TICKF` slowdown on era boundaries as culprit.\\n- Tech debt:\\n - We improved the capabilities of our `io-sim` library, which is crucial for\\n testing and simulating Cardano components.\\n - We removed thunks from epoch translations in the ledger.\\n - We added Linux CI support for `lmdb-simple`.\\n - We got pending diffusion pipelining improvements merged.\\n- Fostering collaboration:\\n - We are working on a explanation of Praos and Genesis protocols.\\n- Support:\\n - Investigation of CSJ \\"plateaus\\" led us to developing a caching strategy for\\n `TICKF` that will not only remove these \\"plateaus\\", but can help alleviating\\n the growing block production delay on epoch switch.\\n - We reviewed the block forge credential hotswapping feature which is intended\\n for use in the adoption of P2P.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe merged PR [#4060][pr-4060], which adds a report documenting the UTxO HD\\nfeature, and puts emphasis in explaining how the mempool works in combination\\nwith UTxO HD.\\n\\nWe opened a draft PR with the second iteration of the property tests for the\\nmempool ([#4076][pr-4076]).\\n\\nWe fixed the `Arbitrary` instances for keys and values in `DiffSeq` benchmarks\\n([#4143][pr-4143]). The problem was that we were testing with mostly small\\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\\nSpeedups are now in the range of [3.33, 4.75] across the different\\nconfigurations.\\n\\n#### Backing store property tests\\n\\nWe focused on incorporating feedback on the monadic cursor API PR ([#1][pr-1]).\\nThis required us to make small tweaks to `quickcheck-lockstep` to test the new\\nAPI. We also updated the backing store property tests to use the new version of\\nthe monadic cursor API.\\n\\n### LSM tree implementation\\n\\nWe worked on the LSM tree prototype. In particular: finished implementing a\\n\\"parameter tuning algorithm\\" that adapts the LSM tree design based on factors\\nlike:\\n- workload\\n- machine specs, \\n- and characteristics of the data being stored. \\n\\nWe are now running experiments to gather results and cross-reference them with\\nexisting experimental results from the LSM tree paper to see if the algorithm is\\nworking correctly.\\n\\n### Benchmarking the CSJ prototype\\n\\nWe focused on investigating the \\"plateaus\\" in the `ChainSync` tip, which turned\\nout to be due to the `TICKF` bug which we previously were only aware of in the\\ncontext of the long forging times near epoch boundaries. For the most drastic\\npatch by @nfrisby to speed up `TICKF`, full sync is speeding up by 7%.\\n\\nThe following plot shows that by caching the `TICKF` the `ChainSync` tip and the\\n`VolatileDB` tip progress at the same rate.\\n\\n![](/images/consensus/2022-11-16-removed-stuttering.png)\\n\\nThe plot below shows the speedup observed by caching the `TICKF` rule wrt the\\nbaseline.\\n\\n![](/images/consensus/2022-11-16-comparing-TICKF-batch.png)\\n\\n### Technical debt\\n\\nAfter addressing the PR comments, we merged PR [#16][pr-16], which implements\\nthe `MonadCatch` instance for `STM`. This extends the capability of our `io-sim`\\nlibrary, which is crucial for testing and simulating Cardano components PR #16\\nclosed [#1461][issue-1461]. This new feature was published as version `0.4.0.0`\\nof `io-sim`.\\n\\nWe continued with our work fixing the `NoThunk` errors required for enabling\\nnightly tests, with the help of `TVarInvariant` checks in `strict-stm` and\\n`nothunks` libraries. We proposed fixes in `cardano-ledger` that took care of\\nthunks that appeared in era translations ([#3143][pr-3143]). The fixes will be\\nintegrated back into consensus when `cardano-ledger` approves and publish the\\nchanges introduced in `#3143`.\\n\\nWe added CI support for `lmdb-simple` ([#2][pr-2]). We currently test the build on\\na Linux environment only.\\n\\nWe got pending diffusion pipelining PRs ([#3857][pr-3857], [#3860][pr-3860],\\n[#3856][pr-3856]) merged, after rebasing and addressing feedback.\\n\\n### Fostering collaboration\\n\\n@nfrisby finished a visualisation tool and outlined scripts for the Praos and\\nGenesis explanation presentations. The idea is to produce a video that gives an\\noverview of these protocols.\\n\\n### Support \\n\\nWe started working on caching the computation of the `TICKF` rule\\n([#4054][issue-4054]), since this was blocking our benchmarking work for\\nGenesis. In addition, this issue has the Cardano community [quite\\nconcerned][issue-4421], so we are hoping the work done in caching the\\ncomputation of the `TICKF` rule can help alleviating the growing block\\nproduction delay on epoch switch.\\n\\nWe reviewed the block forge credential hotswapping PR [#3800][pr-3800] from the\\nnetworking team, which is intended for use in the adoption of P2P.\\n\\n[issue-4054]: https://github.com/input-output-hk/ouroboros-network/issues/4054\\n[issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n[issue-1461]: https://github.com/input-output-hk/ouroboros-network/issues/1461\\n\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-16]: https://github.com/input-output-hk/io-sim/pull/16\\n[pr-3143]: https://github.com/input-output-hk/cardano-ledger/pull/3143\\n[pr-4060]: https://github.com/input-output-hk/ouroboros-network/pull/4060\\n[pr-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pr-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pr-4143]: https://github.com/input-output-hk/ouroboros-network/pull/4143\\n[pr-2]: https://github.com/input-output-hk/lmdb-simple/pull/2\\n[pr-3857]: https://github.com/input-output-hk/ouroboros-network/pull/3857\\n[pr-3860]: https://github.com/input-output-hk/ouroboros-network/pull/3860\\n[pr-3856]: https://github.com/input-output-hk/ouroboros-network/pull/3856"},{"id":"2022-11-16-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-16-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-node-cli-api.md","source":"@site/blog/2022-11-16-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-16-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-16-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-16-performance-and-tracing"}},"content":"# 2022-11-16 - 2022-11-29\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n- [Add a native tokens tutorial and exercises](https://github.com/input-output-hk/cardano-node/pull/4562)\\n\\n### cardano-cli\\n- [Update cardano-cli\'s help](https://github.com/input-output-hk/cardano-node/pull/4674)\\n- [Remove error calls in renderShelleyTxCmdError](https://github.com/input-output-hk/cardano-node/pull/4644)\\n\\n### cardano-api\\n- [Implement Cardano.Api.DeserialiseAnyOf](https://github.com/input-output-hk/cardano-node/pull/4639)\\n\\n### cardano-node\\n- [Fix windows CI](https://github.com/input-output-hk/cardano-node/pull/4650)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-16-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-11-16-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-performance-and-tracing.md","source":"@site/blog/2022-11-16-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.635,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-16-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-16-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-11-crypto"}},"content":"## High level summary\\n\\n1. P2P performance investigation is ongoing, in support of the networking team.\\n2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.\\n3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.\\n4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.\\n5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.\\n\\n\\n## Performance\\n\\nWe are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.\\n\\n## Tracing\\n\\nWe ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.\\n\\n## Infrastructure\\n\\nThe first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.\\n\\nWe designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.\\n\\nA number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-11-crypto","metadata":{"permalink":"/cardano-updates/2022-11-11-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-crypto.md","source":"@site/blog/2022-11-11-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.305,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-11-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-16-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-11-hydra"}},"content":"## High level overview\\n\\nThe SECP primitives AC has been met, and the test-vectors [PR](https://github.com/input-output-hk/cardano-base/pull/320) has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool [PR](https://github.com/input-output-hk/cardano-base/pull/336) has been merged, and we\'ve adapted the KES secure [PR](https://github.com/input-output-hk/cardano-base/pull/255) to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork ([PR#](https://github.com/input-output-hk/cardano-base/pull/341)). Finally, we\'ve \'cleaned\' our libsodium fork, and we directly fork upstream, rather than forking Algorand\'s fork. \\n\\n## Low level overview\\n* With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation. \\n* We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool. \\n* In parallel, we keep progressing on the [KES agent](https://github.com/input-output-hk/kes-agent)\\n* VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification. \\n* Our libsodium fork now links directly to upstream libsodium."},{"id":"2022-11-11-hydra","metadata":{"permalink":"/cardano-updates/2022-11-11-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-hydra.md","source":"@site/blog/2022-11-11-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.94,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-11-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-11-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-11-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team published together with Obsidian Systems a light paper\\non our \\"Hydra for Payments\\" project ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/)). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of `hydra-node` processes. \\n\\n## What did the team achieve this week\\n\\n- Published Hydra for Payments light paper ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/))\\n- Have a draft RFP ready for a first review internally\\n- Answered the internal auditor’s questions\\n- Fixed a bug with following the chain when starting with persistence ([#599](https://github.com/input-output-hk/hydra-poc/issues/599))\\n- Minor improvements to logging for better observability ([#598](https://github.com/input-output-hk/hydra-poc/issues/598), [#600](https://github.com/input-output-hk/hydra-poc/issues/600))\\n- Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look ([#590](https://github.com/input-output-hk/hydra-poc/issues/590))\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Close more gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**"},{"id":"2022-11-11-ledger","metadata":{"permalink":"/cardano-updates/2022-11-11-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-ledger.md","source":"@site/blog/2022-11-11-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.41,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-11-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-11-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-11-network"}},"content":"## High level summary\\n\\nI am extremely excited to say that we now have a pull request up which introduces our new versioned\\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\\nhad since the Shelley phase. It will take time to properly review it, and we will\\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\\nserialization schemes.\\n\\nWe also have a draft pull request that reworks how deposits are tracked. Users of the system will\\nnot notice any difference, but it is a necessary change needed to prepare the way for\\ndecentralizing the governance of Cardano.\\n\\nFinally, we continued to address technical debt. In particular, we continued to make progress on\\nbringing coherency and consistency to the code base with a common naming convention, and\\nimproving some error messages.\\n\\n## Lower level summary\\n\\n- We have a pull request up for our new versioned CBOR serialization.\\n When we encounter a problem with our deserializers, it can be very difficult to implement a fix.\\n It is difficult because we can only fix such issues during a hard fork, and leading up to the\\n hard fork we must maintain two serializations for the same type in order to not cause unintended\\n network splitting (the problematic version must be used before the hard fork,\\n and the fixed version is used afterwards).\\n This can be especially tricky with the `FromCBOR` typeclass, since it is not always easy to\\n search for where all the problematic uses are located.\\n The new versioned CBOR serialization allows us to gracefully handle this transition.\\n See [[pull-3138]].\\n- We proposed a CIP for backwards compatibility of the transaction serialization schemes.\\n See [[pull-372]].\\n- We have draft for the new deposit tracking.\\n This draft is not as memory efficient as the final version will be,\\n but it is a sufficient proof of concept that we can write property tests against, ensuring\\n that we have not changed the semantics.\\n We will optimize after we are sure of the correctness.\\n See [[pull-3127]].\\n- We now provide better support for debugging failed Plutus scripts in an important helper\\n function, named `evaluateTransactionExecutionUnits`.\\n In particular, it now returns all the information needed to rerun the script with exactly the\\n same arguments. This feature will end up appearing in the CLI and other tools from the Plutus\\n tools team.\\n See [[pull-3135]].\\n- We did a lot more renaming to bring coherency and consistency to the code base.\\n See [[pull-3126]], [[pull-3120]], [[pull-3118]], and [[pull-3116]].\\n- We have added a few things to the ledger repository to make it conform to the\\n [Cardano Engineering Handbook](https://input-output-hk.github.io/cardano-engineering-handbook/)\\n See [[pull-3139]].\\n\\n\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3135]: https://github.com/input-output-hk/cardano-ledger/pull/3135\\n[pull-3126]: https://github.com/input-output-hk/cardano-ledger/pull/3126\\n[pull-3120]: https://github.com/input-output-hk/cardano-ledger/pull/3120\\n[pull-3118]: https://github.com/input-output-hk/cardano-ledger/pull/3118\\n[pull-3116]: https://github.com/input-output-hk/cardano-ledger/pull/3116\\n[pull-3139]: https://github.com/input-output-hk/cardano-ledger/pull/3139\\n[pull-372]: https://github.com/cardano-foundation/CIPs/pull/372"},{"id":"2022-11-11-network","metadata":{"permalink":"/cardano-updates/2022-11-11-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-network.md","source":"@site/blog/2022-11-11-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.595,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-11-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-11-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-04-hydra"}},"content":"import NoticedHeaders from \'@site/static/images/network/2022-11-11-noticed-headers.png\';\\n\\n## High-level summary\\n\\nIn last sprint we got a performance report of P2P performance testing cluster\\n(which consists of 50 nodes). There is a performance regression in the header\\nnotification metric. The P2P cluster is constructed with the same\\ntopology as the non-p2p reference one this indicates some regression which\\nneeds to be further investigated. This poses a risk for releasing P2P.\\n\\nWe also continued to work on peer sharing: [pull #4019].\\n\\nWe continued working on dynamic block production which is required for P2P\\nrelease for BP nodes: [pull #3159].\\n\\nWe simplified the P2P topology format: [issue #4559], [pull #3888].\\n\\nWe added a new trace point for asynchronous demotions of local peers with\\n`Warning` severity. This trace is **important** for SPOs.\\n\\n## Detail description\\n\\n### Performance regression\\n\\nBelow we include a graph which shows the performance regression of the P2P code base vs non P2P.\\n\\n\\n\\nOn the `x` axis is time in seconds which measures the delay from the start of\\nthe slot to when a header was received. The `y` axis is the percentile of nodes\\nthat received a header. We are currently investigating possible causes of the\\nregression. \\n\\n### New P2P topology form\\n\\nThe new topology file format is described in this [issue #4559].\\n\\n### Tracing improvements\\n\\n* We improved a handshake error reporting, [pull #4136]\\n* We added `TraceDemoteLocalAsynchronous` rendered as `DemoteLocalAsynchronous`\\n in `json` format, [pull #4127]. Such demotions should be investigated by the\\n pool operator. They can indicate a problem in the deployed system, but also\\n they could indicate a remote problem in arranged connections with other SPOs.\\n\\n### Open Source Improvements\\n\\nWe improved documentation of `io-sim` and `typed-protocols` for open-source\\ncontributors and/or maintenance tasks: [pull #22], [pull #45], [pull #48]. \\n\\n[pull #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull #3888]: https://github.com/input-output-hk/ouroboros-network/issues/3888\\n[pull #3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue #4559]: https://github.com/input-output-hk/cardano-node/issues/4559\\n[pull #4136]: https://github.com/input-output-hk/ouroboros-network/pull/4136\\n[pull #4127]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[pull #22]: https://github.com/input-output-hk/typed-protocols/pull/22\\n[pull #45]: https://github.com/input-output-hk/io-sim/pull/45\\n[pull #48]: https://github.com/input-output-hk/io-sim/pull/48"},{"id":"2022-11-04-hydra","metadata":{"permalink":"/cardano-updates/2022-11-04-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-hydra.md","source":"@site/blog/2022-11-04-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.935,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-04-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-11-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-04-mithril"}},"content":"## High level summary\\n\\nThis week, the hydra team first re-deployed the latest Hydra scripts to the re-spun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0). They also completed implementation of [ADR18](https://hydra.family/head-protocol/adr/18/) and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557) and alignment of the specification document with auditors.\\n\\n## What did the team achieve this week\\n\\n- Complete and merge ADR18 [#579](https://github.com/input-output-hk/hydra-poc/pull/579)\\n- Re-deploy hydra scripts to respun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0) [#595](https://github.com/input-output-hk/hydra-poc/pull/595)\\n- Have first gap of [#452](https://github.com/input-output-hk/hydra-poc/pull/452) in review.\\n- Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.\\n- Engineering meeting to discuss hard forks and protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557)\\n- Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.\\n- Drafted project scope for an external audit RFP.\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Answer the internal auditor’s questions\\n- Have a draft RFP ready for a first review internally\\n- Close some gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)"},{"id":"2022-11-04-mithril","metadata":{"permalink":"/cardano-updates/2022-11-04-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-mithril.md","source":"@site/blog/2022-11-04-mithril.md","title":"Mithril Team Update","description":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-04-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-04-hydra"},"nextItem":{"title":"Open-Source Team","permalink":"/cardano-updates/2022-10-31-open-source"}},"content":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.\\n# Low level overview\\n- We have been moving forward on the implementation of the release process [#500](https://github.com/input-output-hk/mithril/issues/500):\\n - Setup of the new hosted environments for `testing-preview`, `pre-release-preview` and `release-preprod` with their terraform and GitHub environments [#542](https://github.com/input-output-hk/mithril/issues/542)\\n - Adapted the CI workflows to work with the new release process [#543](https://github.com/input-output-hk/mithril/issues/543)\\n - Publication of an [ADR3](https://mithril.network/doc/adr/3)\\n - Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2022/10/28/updated-environments) about Mithril networks evolution \\n - Releasing our first Mithril distribution [2244.0](https://github.com/input-output-hk/mithril/releases/tag/2244.0)\\n- Worked on the API versioning mechanism [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Worked on the implementation of the stores migration process for the signer and aggregator nodes [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Prepared a Mithril `devnet` video demo [#526](https://github.com/input-output-hk/mithril/issues/526)\\n- Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably [#484](https://github.com/input-output-hk/mithril/pull/484)"},{"id":"2022-10-31-open-source","metadata":{"permalink":"/cardano-updates/2022-10-31-open-source","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-open-source.md","source":"@site/blog/2022-11-04-open-source.md","title":"Open-Source Team","description":"High Level Summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"open-source","permalink":"/cardano-updates/tags/open-source"}],"readingTime":1.465,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Open-Source Team","slug":"2022-10-31-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-04-mithril"},"nextItem":{"title":"Embedding Quality Workstream","permalink":"/cardano-updates/2022-11-03-embedding-quality"}},"content":"## High Level Summary\\n\\n* We\'ve been working toward publishing _Cardano Backlog_, currently its in\\n review by the IOG communication team.\\n* We identified a number of libraries which can be published.\\n* We setup and enhanced [cardano-updates][cardano-updates].\\n\\n## Detailed description\\n\\nI am glad to announce that I was given the role of open-source advocate for\\ncardano project. In last few weeks we were making steps towards publishing our\\nbacklog. It\'s currently under review by the communication team, although most\\nof the issues are already visible across various repositories.\\n\\nThe open-source initiatives have their own\\n[project](https://github.com/orgs/input-output-hk/projects/60). It is set up\\nto help us track our major open-source activities. Right now there are two\\nwork streams:\\n\\n* the work on [_Cardano Engineering Handbook_][ceh];\\n* libraries to be release on [Hackage][Hackage] or [crates.io][crates.io].\\n\\nWe identifies a number of libraries across all the teams which contribute to\\n_Cardano_ which we would like publish to publish, see the following\\n[link][publish-on-hackage]. Arnauld Bailly recently published\\n[`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\nlibrary on Hackage. The networking team is slowly progressing towards\\npublishing [io-sim][io-sim] and related packages, checkout the progress\\n[here](https://github.com/orgs/input-output-hk/projects/19/views/24).\\n\\nThanks to Arnaud Bailly our [Cardano Updates][cardano-updates] website has\\na new look & feel! It\'s using [docusaurus.io][docusaurus].\\n\\n\\nChristian Taylor carried recently a detailed analysis of our open-source\\nrepositories. He collected many interesting metrics, which allows us to see\\nwhere we need to improve as an open-source project to make the Cardano project\\nand many smaller related libraries which we maintain be more open and available\\nfor open-source contributors.\\n\\nThe graph below shows which documents the 55 most important Cardano\\nrepositories are missing the most:\\n![Documentation Adoption](../static/img/doc-adoption.png)\\nYou can expect we will improve in these metrics in the coming weeks.\\n\\n\\n[Hackage]: https://hackage.haskell.org/\\n[crates.io]: https://crates.io\\n[publish-on-hackage]: https://github.com/orgs/input-output-hk/projects/60/views/3\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[ceh]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[cardano-updates]: https://input-output-hk.github.io/cardano-updates\\n[docusaurus]: https://docusaurus.io"},{"id":"2022-11-03-embedding-quality","metadata":{"permalink":"/cardano-updates/2022-11-03-embedding-quality","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-03-embedding-quality.md","source":"@site/blog/2022-11-03-embedding-quality.md","title":"Embedding Quality Workstream","description":"High level summary","date":"2022-11-03T00:00:00.000Z","formattedDate":"November 3, 2022","tags":[{"label":"embedding-quality","permalink":"/cardano-updates/tags/embedding-quality"}],"readingTime":0.65,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"Embedding Quality Workstream","slug":"2022-11-03-embedding-quality","authors":"dorin100","tags":["embedding-quality"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Team","permalink":"/cardano-updates/2022-10-31-open-source"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-02-consensus"}},"content":"## High level summary\\n\\nWe made good progress on most of the Action Items we agreed on Lisbon, like:\\n* Cardano System Tests was fully open to public (tools, tests, results) \\n See [cardano-node-tests webpage](https://input-output-hk.github.io/cardano-node-tests).\\n* We defined an [user-facing-functionality template](https://github.com/input-output-hk/cardano-node/blob/master/.github/ISSUE_TEMPLATE/user-facing-feature.md) that is used with the cardano-cli team \\n * this includes acceptance criteria & user stories, and definition of done\\n* We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)\\n* We started to apply a _labelling convention_ on [cardano-node issues](https://github.com/input-output-hk/cardano-node/issues) that will be used to generate some visual dashboards with some metrics [TBD]\\n* Ziyand Liu started an _End-to-End Development and Testing Process for Plutus Features_"},{"id":"2022-10-02-consensus","metadata":{"permalink":"/cardano-updates/2022-10-02-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-consensus.md","source":"@site/blog/2022-11-02-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.53,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-02-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Embedding Quality Workstream","permalink":"/cardano-updates/2022-11-03-embedding-quality"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-02-ledger"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team continued its work on testing the\\nUTxO HD prototype. We completed the era-transition and backing store tests, and\\nthe mempool tests are advancing at a steady pace. Regarding our work in the\\nGenesis design, we continued our collaboration with the research and networking\\nteams, and we continue investigating strategies for making the chain-sync\\njumping prototype faster.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We worked on state-machine tests for the mempool, and spotted potential bugs\\n in the implementation. Investigation is ongoing.\\n - We have a set of property tests for the backing store. We still need to\\n incorporate the improvements to the LMDB cursor API that these tests\\n made possible.\\n - We merged the era-transition tests PR.\\n- Genesis: on track.\\n - Design work around Genesis continues in collaboration with researchers and\\n the networking team.\\n - We continued trying to improve the performance of the chain-sync jumping\\n prototype. We gained additional insight on which parameters to tweak next.\\n In spite of the baseline still being faster, the current prototype already\\n achieves a significant speedup when compared to the naive approach of simply\\n running full chain-sync with all peers.\\n- Tech debt: on track.\\n - We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe continued working on property-tests for the UTxO HD prototype. In particular\\nwe merged the [era-transition tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4073).\\n\\n#### Backing store property tests\\n\\nThe [backing store property tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4081) has been\\nreviewed. The next steps are:\\n\\n- Improve error handling and command generation.\\n- Add coverage testing to check that we are not failing to cover interesting\\n test cases.\\n\\nThe [monadic cursor API](https://github.com/input-output-hk/lmdb-simple/pull/1)\\nwent through its first review round. The API is in a relatively stable state.\\nThis PR also unifies the `cborg` and `serialise`-based interfaces to LMDB\\noperations. The next steps are:\\n\\n- Write\\n [`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\n state-machine tests for this API.\\n- Adapt the changes in the serialisation interface in the backing store property\\n tests. This will involve adding boilerplate code in consensus to make up for\\n the removal of the `cborg`-based interface.\\n\\n## LSM tree implementation\\n\\nWe worked on the [LSM tree\\nprototype](https://github.com/input-output-hk/ouroboros-network/issues/4121). In\\nparticular, we focused on tuning the LSM tree design to the different workloads\\nthat consensus has (eg syncing, normal node operation, etc).\\n\\n### Benchmarking the CSJ prototype\\n\\nWork on improving the chain-sync jumping performance is ongoing. In particular\\nwe compared the performance of different jump intervals, which, somewhat\\nsurprisingly, do not make a significant difference. In particular, we are seeing\\nperiodic \\"plateaus\\" where the chain-sync tip does not progress, but they are\\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\\ncombination of the garbage collector (GC) pauses, and the actual time it takes\\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\\nfragment.\\n\\nIn the coming weeks we will try to shorten these plateaus via a combination of\\ntweaking GC options and less synchronisation in the CSJ governor.\\n\\nThe following plot shows the performance of the chain-sync jumping prototype\\nusing different jumping intervals. It compares the syncing progress by plotting\\nthe slots of adopted blocks against time. The baseline is still faster, however\\nit is worth noting that the current prototype already achieves a significant\\nspeedup when compared to the naive approach of simply running full chain-sync\\nwith all peers.\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline.svg)\\n\\nThe second plot shows the syncing progress sliced to a chosen ~5min interval,\\nand includes, in addition to the slots of adopted blocks, the slots of the tip\\nof the ChainSync fragment. This allows us to see how far ahead of the selected\\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\\nthat the CS fragment tip is not progressing for significant periods\\n(\\"plateaus\\").\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg)\\n\\n## Technical debt\\n\\nWe [clarified](https://github.com/input-output-hk/ouroboros-network/pull/4098) a\\ncommon source of confusion around VRF tie-breaking and cross-era chain\\nselection. This PR involved correcting potentially misleading names of\\nVRF-related functions, and providing context for a particular VRF value is\\nused for tie-breaking."},{"id":"2022-11-02-ledger","metadata":{"permalink":"/cardano-updates/2022-11-02-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-ledger.md","source":"@site/blog/2022-11-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.275,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-02-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-02-node-cli-api"}},"content":"## High level summary\\nWe have made the decision to use the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\\nto the model. In particular, we now have a lot of support for axiomatic set theory.\\nWhile the next ledger era is still in the design phase, most of the team remains working\\non technical debt.\\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\\na ledger core module, we have finished up our benchmarking around the problematic `TICKF`\\nledger transition (while improving the performance), made conveniences to the development\\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\\nfixed some flaky tests, and deleted some dead code.\\n\\n## Lower level summary\\n\\n### Axiomatic Set Theory\\n\\nThe formal ledger model now has support for much of the set theory that we make use of in\\nthe formal ledger specifications. See [[pull-20]].\\n\\n### Completed Technical Debt\\n\\n- We have addressed issues with two of our most problematic and flaky tests.\\n See [[pull-3039]] and [[pull-3093]].\\n- We have added more documentation and tests to the Twiddler module. This is a module which\\n makes our CBOR serialization round-trip tests much more robust, and will also hopefully\\n help enforce the mandate for downstream libraries to never re-serialize data that needs\\n to be hashed. See [[pull-3073]] and [[pull-3095]]\\n (we cannot merge 3095 just yet, due to a preference for merging other features).\\n- We have finished our long analysis of the problematic `TICKF` transition.\\n We now have a lot of benchmarks surrounding this code, and have added performance improvements.\\n See [[pull-3068]] and [[issue-3035]].\\n- We have restored support for\\n [ghcid](https://hackage.haskell.org/package/ghcid)\\n in our repository. This is a tool for developing with Haskell that many of us find greatly\\n improves our productivity by providing us with constant feedback from the type checker.\\n See [[pull-3112]].\\n- After much activity on the cost model, we have done some final clean up of the code.\\n See [[pull-3075]] and [[pull-3101]].\\n- We moved a lot of the existing user facing documentation regarding native tokens into the\\n ledger repository, and cleaned it up\\n (most of the heavy lifting was done by our amazing technical writers).\\n See [[pull-3091]].\\n- We removed dead code. See [[pull-3089]].\\n- We moved a lot of code from the Shelley specific libraries to the ledger core library.\\n See [[pull-3109]] and [[pull-3110]].\\n- We\'ve removed more of the awkward legacy template Haskell names.\\n See [[pull-3108]].\\n\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20\\n[pull-3039]: https://github.com/input-output-hk/cardano-ledger/pull/3039\\n[pull-3093]: https://github.com/input-output-hk/cardano-ledger/pull/3093\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3095]: https://github.com/input-output-hk/cardano-ledger/pull/3095\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3112]: https://github.com/input-output-hk/cardano-ledger/pull/3112\\n[pull-3075]: https://github.com/input-output-hk/cardano-ledger/pull/3075\\n[pull-3101]: https://github.com/input-output-hk/cardano-ledger/pull/3101\\n[pull-3091]: https://github.com/input-output-hk/cardano-ledger/pull/3091\\n[pull-3089]: https://github.com/input-output-hk/cardano-ledger/pull/3089\\n[pull-3109]: https://github.com/input-output-hk/cardano-ledger/pull/3109\\n[pull-3110]: https://github.com/input-output-hk/cardano-ledger/pull/3110\\n[pull-3108]: https://github.com/input-output-hk/cardano-ledger/pull/3108"},{"id":"2022-11-02-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-02-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-node-cli-api.md","source":"@site/blog/2022-11-02-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.265,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-02-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-02-ledger"},"nextItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2022-11-02-release"}},"content":"# 2022-11-02 - 2022-11-15\\n\\n## High level summary\\n- Documentation improvments\\n- Merged community contributions\\n- Exposing types from cardano-api requested by the community/other teamss\\n- Test output has been improved so diagnosing failures is now easier\\n- Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)\\n- Refactoring of cardano-testnet making it more useable as a library (ongoing)\\n- Release 1.35.4 was merged & released\\n\\n## Completed\\n\\n### cardano-cli\\n- [Community contributions - doc fixes and spelling errors](https://github.com/input-output-hk/cardano-node/pull/4567)\\n\\n### cardano-api\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add Ord instance for AddressInEra](https://github.com/input-output-hk/cardano-node/pull/4587)\\n- [Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4496)\\n- [Expose TextEnvelopeCddl from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4635)\\n- [Expose txScriptValidityToScriptValidity in Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4628)\\n- [export RawBytesHexError](https://github.com/input-output-hk/cardano-node/pull/4599)\\n\\n### cardano-node\\n- [Add Plutus minting script doc](https://github.com/input-output-hk/cardano-node/pull/2883)\\n- [Improve test output](https://github.com/input-output-hk/cardano-node/pull/4575/files)\\n- [Enable stale bot](https://github.com/input-output-hk/cardano-node/pull/4586)\\n- [Add link to troubleshooting page in the wiki](https://github.com/input-output-hk/cardano-node/pull/4557)\\n- [Use environment files in Github Actions](https://github.com/input-output-hk/cardano-node/pull/4550)\\n\\n\\n### cardano-testnet\\n- [Add single entrypoint for starting testnets](https://github.com/input-output-hk/cardano-node/pull/4544)\\n- [Improve cardano-testnet test output](https://github.com/input-output-hk/cardano-node/pull/4575)\\n- [Reorder module hierarchy](https://github.com/input-output-hk/cardano-node/pull/4595)\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-02-release","metadata":{"permalink":"/cardano-updates/2022-11-02-release","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-release.md","source":"@site/blog/2022-11-02-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.445,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2022-11-02-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-02-node-cli-api"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-11-02-system-test"}},"content":"## Node Reelease Update\\n## 2022-10-19 - 2022-11-02\\n\\n### Executive Summary\\nThe team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.\\n\\n1.35.4 release candidates have been created and are being tested internally and externally.\\n\\n### Completed\\n\\n- [1.35.4-rc1 tag](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [1.35.4-rc2 tag (config changes only for preview)](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [CHaP Migration] (https://github.com/input-output-hk/cardano-node/pull/4540)\\n\\n### In Progress\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst)\\n\\n- [Cicero CI Migration](https://input-output-hk.github.io/cardano-updates/2022-08-12-sre)"},{"id":"2022-11-02-system-test","metadata":{"permalink":"/cardano-updates/2022-11-02-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-system-test.md","source":"@site/blog/2022-11-02-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.4,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-11-02-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2022-11-02-release"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-11-01-db-sync"}},"content":"## High level summary\\n\\nWe have been focused on:\\n* Fully opening our test results (on top of the existing tests & tools): \\n See [cardano-node-tests webpage](https://input-output-hk.github.io/cardano-node-tests/).\\n* Started to test and automate the new functionalities added in the `1.35.4-rc1` node tag \\n See [test results tracking page](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst).\\n* Made some improvements to the automated db-sync sync tests \\n See [db-sync tests](https://github.com/input-output-hk/cardano-node-tests/tree/db_sync_tests/db_sync_tests).\\n* Multiple cleanups and updates to the cardano-node-tests framework\\n* Updated the nightly pipelines for the cardano-node-tests after the Babbage HF"},{"id":"2022-11-01-db-sync","metadata":{"permalink":"/cardano-updates/2022-11-01-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-01-db-sync.md","source":"@site/blog/2022-11-01-db-sync.md","title":"DB Sync Team Update","description":"High level summary","date":"2022-11-01T00:00:00.000Z","formattedDate":"November 1, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.86,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-11-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-11-02-system-test"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-28-hydra"}},"content":"## High level summary\\n\\nThe DBSync team is preparing a release which introduces schema simplifications, removes indexes,\\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\\nresync from genesis.\\n\\n## Lower level summary\\n\\n### Schema simplifications\\n\\nIndexes, Unique and Foreign keys are removed in order to speedup syncing\\n[#1295](https://github.com/input-output-hk/cardano-db-sync/pull/1295)\\nThe same pr also introduces a different way to rollback, which doesn\'t rely on foreign keys and\\nindexes.\\n\\n### Performance\\n\\nThe DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\\nconservative number of these will be included in the next release and the rest can be found in\\n[performance view](https://github.com/orgs/input-output-hk/projects/52/views/7).\\n\\n### Migrations and resyncing\\n\\nThe next release will be 13.1.0, it will enable a migration without the need to resync. It will also\\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294)\\n\\n### Release\\n\\nThe release has been mostly cherry-picked from master\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294) and its scope can be seen\\n[release view](https://github.com/orgs/input-output-hk/projects/52/views/6)"},{"id":"2022-10-28-hydra","metadata":{"permalink":"/cardano-updates/2022-10-28-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-hydra.md","source":"@site/blog/2022-10-28-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.795,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-28-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-11-01-db-sync"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-10-28-network"}},"content":"## High level summary\\n\\nThis week, the hydra team completed several user experience improvements to the\\n`hydra-tui` and `hydra-node`, and delivered a first version of persisted head\\nstates by publishing release version\\n[`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0).\\nBesides this, they met with researchers on topic of the HeadV1 specification and\\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.\\n\\n## What did the team achieve this week\\n\\n- Completed the UX improvements on the `hydra-tui`\\n- Released version [`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0), which delivers a first version of persisted head states\\n- Met with researchers on the HeadV1 specification\\n- Started work on the RFP for our external audit\\n\\n## What are the goals of next week\\n\\n- Complete ADR18 implementation and get it merged\\n- Start work on event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Have a first plutus script gap closed [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)"},{"id":"2022-10-28-network","metadata":{"permalink":"/cardano-updates/2022-10-28-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-network.md","source":"@site/blog/2022-10-28-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-10-28-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-28-hydra"},"nextItem":{"title":"Performance & Tracing Team Update","permalink":"/cardano-updates/2022-10-28-performance-and-tracing"}},"content":"## High-level summary\\n\\nThe team has focused on debuging & fixing bugs for the **P2P single relay release**, which included\\n\\n* diagnosing, fixing and writing tests for a bug in `peer-state-actions` which\\n fortunately hasn\'t been released;\\n* diagnosing & preventing misconfiguration of DNS\\n\\nWe also focused on developing **peer sharing**. We also held a session with\\nthe scientists on eclipse evasion.\\n\\n## Detailed description\\n\\n### P2P Network Stack\\n\\nDuring the past two weeks the team focused on p2p single relay release and peer\\nsharing. We found and fixed an important bug recently introduced in one of the\\ncomponents of p2p networking stack (fortunately never released). Together with\\na fix, we designed a unit test diffusion simulation as well as quickcheck\\nproperty test (both could reproduce it). We also changed the code in a way that\\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\\nFor more see:\\n\\n* [ouroboros-network#4067](https://github.com/input-output-hk/ouroboros-network/pull/4067)\\n* [ouroboros-network#4086](https://github.com/input-output-hk/ouroboros-network/pull/4086)\\n\\nInitial benchmarking run of the P2P code was executed. The results where\\nunlike what we see on the mainnet. We found a possible misconfiguration of the\\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\\nthe next benchmarking results. See more at:\\n\\n[ouroboros-network#4106](https://github.com/input-output-hk/ouroboros-network/pull/4106)\\n\\nWe also started working on P2P single relay release. The PR\\n[ouroboros-network#4120](https://github.com/input-output-hk/ouroboros-network/pull/4120)\\nincludes _108_ patches cherry-picked from the `master` branch. We started\\nworking toward integration these changes against the release branch of\\n`cardano-node`. Early next week we ought to be able to have an early version\\nof `cardano-node` with _non experimental P2P support_!\\n\\nFor more detailed release plan please see [P2P - Single\\nRelay](https://github.com/input-output-hk/ouroboros-network/issues/3888)\\nissue.\\n\\n### Consensus\\n\\nWe identified and fixed missing error reporting in consensus\\ninitialisation phase. See more at\\n[ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n\\n### Cardano Node\\n\\nWe also made changes in `cardano-node` in order to give better experience for\\nnode operators. This includes updating severities of some of the traces as\\nwell as implementing new format of the p2p topology file. For more see:\\n\\n* [cardano-node#4563](https://github.com/input-output-hk/cardano-node/pull/4563).\\n* [cardano-node#4561](https://github.com/input-output-hk/cardano-node/pull/4561)\\n\\n### Peer Sharing\\n\\nWe continued working on implementation of peer sharing. We have an early\\nimplementation which will be reviewed and analysed in next weeks. We started\\nworking on `cardano-node` integration. We need\\n[PR #4392](https://github.com/input-output-hk/cardano-node/pull/4392) to be merged\\nbefore such integration will be able to land in `cardano-node`, although this\\nis _not blocking_ us currently. See more at:\\n\\n* [ouroboros-network#4019](https://github.com/input-output-hk/ouroboros-network/pull/4019)\\n\\n### Eclipse Evasion\\n\\nWe held a session which included Alexander Russel, Sandro Coretti-Drayton and\\nNick Frisby from the consensus team. We discussed high lever design of the\\neclipse evasion scheme, which is important for the design and implementation of\\n`ouroboros-genesis`. We got a positive feedback from the researchers.\\n\\n### IO-Sim\\n\\nIn this period we made little progress towards releasing `IO-Sim` on Hackage.\\nA single [PR](https://github.com/input-output-hk/io-sim/pull/32) which added\\na few missing instances of the `STM` monad.\\n\\n### Open Source\\n\\nWe made sure the CI runs for PRs which comes from forks (which is important to\\naccept contributions from 3rd parties).\\n\\n### Mithril Cardano Integration\\n\\nWe held initial discussions with Arnaud Bailly about possible path to integrate\\nmithril to `cardano-node` and take advantage of the `ouroboros-network`\\ndiffusion layer."},{"id":"2022-10-28-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-10-28-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-performance-and-tracing.md","source":"@site/blog/2022-10-28-performance-and-tracing.md","title":"Performance & Tracing Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & Tracing Team Update","slug":"2022-10-28-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-10-28-network"},"nextItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2022-08-12-sre"}},"content":"## High level summary\\n\\nOn the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.\\n\\nOn the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.\\n\\n## Executive summary\\n\\n- The new tracing system public release is getting closer, as we\'re resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.\\n- The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.\\n- The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE."},{"id":"2022-08-12-sre","metadata":{"permalink":"/cardano-updates/2022-08-12-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-sre.md","source":"@site/blog/2022-10-28-sre.md","title":"SRE Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"sre","permalink":"/cardano-updates/tags/sre"}],"readingTime":3.04,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2022-08-12-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Team Update","permalink":"/cardano-updates/2022-10-28-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-10-27-crypto"}},"content":"## High level summary\\n\\nThe SRE team is heavily working on the Equinix Metal migration, replacing Hydra\\nwith Cicero, and a new version of Spongix.\\n\\n## Lower level summary\\n\\n### OpenZiti\\n\\n- Work is ongoing on our OpenZiti integration into Bitte in [[bitte-zt]].\\n- CI-World deployment of Darwin CI Ziti service in [[ci-world-commit-d40f4d]].\\n- Multiple issues filed, and a lot of discussion with the OpenZiti developers,\\n we\'re making pretty rapid progress thanks to them.\\n- Work on getting Equinix baremetal machines integrated into AWS World Bitte\\n clusters utilizing a Ziti ZTNA network overlay to bridge the networking of\\n the two environments and get IAM extension to Equinix machine for Nomad\\n client onboarding.\\n- A Nix Flake for most of our OpenZiti dependencies including the Console,\\n Controller, Edge Tunnel, and Router is now at [[openziti-bins]].\\n- The Flake also includes a WiP NixOS modules for these components.\\n- Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\\n no issues seen so far\\n- Moved the console to traefik routing service (`zac.$DOMAIN`) and\\n controller/edge router stay at `zt.$DOMAIN`, but have registered consul\\n services\\n\\n### Cicero & Tullia Integrations\\n\\n- Added webhook for [[haskell.nix]].\\n- Finished Cicero CI action for [[cardano-addresses-pull-205]].\\n- Fixed cardano-prelude cicero action in [[cardano-prelude-pull-176]].\\n- Fixed the `abcird-stdlib/publish` action [[abcirdc-pull-104]]\\n- fix error on vm-bigdisk flake configs [[cicero-pull-66]].\\n- Helped with Cicero actions and answered questions for [[plutus]]\\n [[cardano-prelude]], and [[abcirdc]].\\n- Merged [[cardano-base-pull-323]] for Tullia on cardano-base.\\n- Merged Cicero action in [[cardano-ogmios-pull-5]].\\n- Opened [[cardano-explorer-app-pull-427]] to add Tullia and Cicero.\\n- Opened [[cardano-ledger-pull-3097]] to add Cicero CI action.\\n- Opened [[cardano-node-pull-4489]] to add Tullia and Cicero, including\\n OS-agnostic jobs.\\n- Opened [[ouroboros-network-pull-4108]] to add Cicero action.\\n- Reviewed [[plutus-pull-4918]] and helped test it.\\n- Update Tullia in [[abcirdc-pull-97]] to build if a tag is given.\\n\\n### Cicero & Tullia Features\\n\\n- Improvements to Tullia task aggregation to make [[cardano-addresses]] build\\n correctly.\\n- Better tullia CUE lib default for tags [[tullia-commit-4df3c5d]].\\n- Put `cache.nixos.org` back in `cache.iog.io`\'s upstreams. This is now\\n considered a public cache again, and without it some Cicero evaluations had\\n to build huge packages.\\n- Started working on a flake-parts module for Tullia.\\n- Started working on cutting down Tullia task build time by putting facts in\\n JSON files.\\n- Fixed running into kernel arg limit by reading tullia\'s DAG from a file\\n- Merged [[tullia-pull-9]] that fixes several issues related to error reporting.\\n and escaping.\\n- Added Mac builders in Cicero on CI-World.\\n- Started work on Tullia invocation caching.\\n\\n### Spongix\\n\\n- A lot of progress on an SQlite backed version of Spongix, it already supports\\n the full HTTP binary cache protocol but still lacks comprehensive testing and\\n some tuning, as well as recursive lookups.\\n- First steps in the implementation of the `nix-daemon` `ssh-ng` protocol so\\n Spongix can be used via SSH and we can get rid of basic auth.\\n\\n### Bugs\\n\\n- Discovered Cicero bug where Nomad reschedules cause the Github commit status\\n to get stuck in `pending`\\n- Discovered Cicero race condition bug around concurrent transactions for\\n codependent actions.\\n- Fixed tullia task order bug in [[cardano-addresses]]\\n- Diagnose Cicero action not triggered in [[abcirdc]]\\n- Fixed meta/description of the Tullia package in [[tullia-pull-7]]\\n- Add Vault token loop alerts in [[bitte-cells-pull-40]]\\n- Ongoing investigation on recurring Patroni and nomad-follower issues related\\n to token rotation.\\n\\n[abcirdc]: https://github.com/input-output-hk/abcirdc\\n[abcirdc-pull-104]: https://github.com/input-output-hk/abcirdc/pull/104\\n[abcirdc-pull-97]: https://github.com/input-output-hk/abcirdc/pull/97\\n[bitte-cells-pull-40]: https://github.com/input-output-hk/bitte-cells/pull/40\\n[bitte-zt]: https://github.com/input-output-hk/bitte/compare/zt\\n[cardano-addresses]: https://github.com/input-output-hk/cardano-addresses\\n[cardano-addresses-pull-205]: https://github.com/input-output-hk/cardano-addresses/pull/205\\n[cardano-base-pull-323]: https://github.com/input-output-hk/cardano-base/pull/323\\n[cardano-explorer-app-pull-427]: https://github.com/input-output-hk/cardano-explorer-app/pull/427\\n[cardano-ledger-pull-3097]: https://github.com/input-output-hk/cardano-ledger/pull/3097\\n[cardano-node-pull-4489]: https://github.com/input-output-hk/cardano-node/pull/4489\\n[cardano-ogmios-pull-5]: https://github.com/input-output-hk/cardano-ogmios/pull/5\\n[cardano-prelude]: https://github.com/input-output-hk/cardano-prelude\\n[cardano-prelude-pull-176]: https://github.com/input-output-hk/cardano-prelude/pull/176#issuecomment-1280947946\\n[cicero-pull-66]: https://github.com/input-output-hk/cicero/pull/66\\n[ci-world-commit-d40f4d]: https://github.com/input-output-hk/ci-world/commit/d40f4d19187a2128b6f0d63bde7e3f9a33071994\\n[haskell.nix]: https://github.com/input-output-hk/haskell.nix\\n[openziti-bins]: https://github.com/johnalotoski/openziti-bins\\n[ouroboros-network-pull-4108]: https://github.com/input-output-hk/ouroboros-network/pull/4108\\n[plutus]: https://github.com/input-output-hk/plutus\\n[plutus-pull-4918]: https://github.com/input-output-hk/plutus/pull/4918\\n[tullia-commit-4df3c5d]: https://github.com/input-output-hk/tullia/commit/4df3c5d956f1b062b950643da12768ae71acf245\\n[tullia-pull-7]: https://github.com/input-output-hk/tullia/pull/7\\n[tullia-pull-9]: https://github.com/input-output-hk/tullia/pull/9"},{"id":"2022-10-27-crypto","metadata":{"permalink":"/cardano-updates/2022-10-27-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-27-crypto.md","source":"@site/blog/2022-10-27-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-10-27T00:00:00.000Z","formattedDate":"October 27, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-10-27-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2022-08-12-sre"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-21-hydra"}},"content":"## High level overview\\n\\nThe crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\\nmeeting the [acceptance criteria](https://github.com/input-output-hk/cardano-base/issues/315) in cardano-base,\\nwhich lacks some editorial comments on the style of dQuandrant\'s PR, the inclusion of one additional test, and\\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\\nbut also progressing on the implementation.\\n\\n## Low level overview\\n### SECP built-ins\\n* (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in [PR 313](https://github.com/input-output-hk/cardano-base/pull/313)\\n* CIP-0049 was addressed in the editors meeting, and [PR 250](https://github.com/cardano-foundation/CIPs/pull/250) was merged\\n* The unit-tests [PR 320](https://github.com/input-output-hk/cardano-base/pull/320) is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.\\n\\n### KES agent\\n* We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.\\n* We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s)."},{"id":"2022-10-21-hydra","metadata":{"permalink":"/cardano-updates/2022-10-21-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-21-hydra.md","source":"@site/blog/2022-10-21-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-21T00:00:00.000Z","formattedDate":"October 21, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.97,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-21-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-10-27-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-19-node-cli-api"}},"content":"## High level summary\\n\\nThis week, the hydra team reviewed and addressed several open comments on the\\nnew HeadV1 specification, completing a list the of identified gaps between\\nspecification and implementation while doing so. In the wake of the recent\\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\\nwell as potential research avenues.\\n\\n### What did the team achieve this week\\n\\n- Had the monthly review meeting, a bit earlier than expected: \\n- Reviewed and addressed several open comments on HeadV1 specification.\\n- Completed the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Had two meetings with SundaeSwap to incorporate their feedback (on research and on the roadmap).\\n- Some small fixes on TUI and our docker images. [#538](https://github.com/input-output-hk/hydra-poc/issues/538) [#562](https://github.com/input-output-hk/hydra-poc/pull/562)\\n- Met with the internal audit team and clarified scope.\\n\\n### What are the goals of next week\\n\\n- Complete the last two items required for a version `0.8.0`.\\n- Cut the next release, version `0.8.0`\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Have the CI build macos artifacts"},{"id":"2022-10-19-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-10-19-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-19-node-cli-api.md","source":"@site/blog/2022-10-19-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-10-19T00:00:00.000Z","formattedDate":"October 19, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-19-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-21-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-18-consensus"}},"content":"# 2022-10-19 - 2022-11-01\\n\\n## High level summary\\n\\nThis sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node\'s mempool for the following information:\\n- Ask the node about the current mempool\'s capacity and sizes\\n- Request the next transaction from the mempool\'s current list\\n- Query if a particular transaction exists in the mempool\\n\\nOutside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric `tx_submit_fail_count` has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:\\n- Documentation improvments\\n- Release 1.35.4 was merged & released\\n- Exported various types from cardano-api that were requested by community members\\n\\n## Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n### cardano-cli\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n\\n### cardano-api\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Export IsPlutusScriptLanguage from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4554)\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add ToJSON and FromJSON instances for Address](https://github.com/input-output-hk/cardano-node/pull/4568)\\n- [Export TxIns type alias from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4565)\\n- [Export more generators from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4534)\\n\\n### cardano-submit-api\\n- [Add tx_submit_fail_count metric](https://github.com/input-output-hk/cardano-node/pull/4566)\\n\\n### cardano-node\\n- [Upgrade to cabal-3.8.1.0](https://github.com/input-output-hk/cardano-node/pull/4549)\\n- [Update building-the-node-using-nix.md](https://github.com/input-output-hk/cardano-node/pull/4613)\\n\\n### cardano-testnet\\n- None\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-10-18-consensus","metadata":{"permalink":"/cardano-updates/2022-10-18-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-18-consensus.md","source":"@site/blog/2022-10-18-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-10-18T00:00:00.000Z","formattedDate":"October 18, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.225,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-19-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-14-hydra"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team worked on adding property test for\\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\\nbacking store. Thanks to these tests we were able to uncover a bug in the\\nprototype. On the Genesis front, we benchmarked a different version of the\\nChainSync jumping prototype to try to improve its performance, but this did not\\nresult in any noticeable speedup.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We focused on increasing test coverage for the UTxO-HD prototype:\\n - We started implementing Cadano-eras transition property-tests.\\n - We started implementing state-machine property-tests for the mempool.\\n - We merged the mempool rewrite.\\n - We started working on state-machine tests for the backing store. This\\n uncovered a bug in the range-read implementation of the LMDB backing\\n store.\\n- Genesis: on track.\\n - We benchmarked a version of the Genesis ChainSync Jumping prototype that\\n spreads out the ChainSync updates over a longer period of time. This did not\\n result in any noticeable speedup.\\n - We investigated the overhead introduced by non-ChainSync components, but no\\n conclusions could be drawn from the benchmarks we ran.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe focused on increasing test coverage for the UTxO HD prototype. We also merged\\nthe [mempool\\nrewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049).\\n\\n#### Era transition property tests\\n\\nWe started implementing [Cardano era transition property\\ntests](https://github.com/input-output-hk/ouroboros-network/issues/4043),\\nwhich are needed for making sure that the ledger tables get updated in the\\nright way when we move from one era to the next. There are at the moment two\\nimportant transitions.\\n- Byron to Shelley: where all the UTxO is transferred from in-memory Byron\\n state (which has no tables) to the ledger tables of the Shelley state.\\n- Shelley to Allegra: where the AVVM addresses must be deleted.\\n\\nWe have tests for the Byron to Shelley transitions. We are working on adding\\nthe remaining ones.\\n\\n#### Mempool state-machine tests\\n\\nWe started implementing [state-machine property tests for the\\nmempool](https://github.com/input-output-hk/ouroboros-network/issues/4044).\\nThe mempool is currently tested via pure property tests, and use a ledger\\nstate without tables. With the introduction of UTxO HD, testing the concurrent\\nbehavior of the mempool became of crucial importance (eg now we have to\\nacquire locks to flush the backing store). In addition, we need to test a\\nledger state with tables. These needs led to the creation of a new set of\\nproperty tests. In particular we aim to run parallel state-machine tests that\\nexercise the mempool in a way similar to how the node would make use of it.\\n\\n#### Backing store property tests\\n\\nWe started working on [state-machine tests for the backing\\nstore](https://github.com/input-output-hk/ouroboros-network/pull/4081) that UTxO\\nHD uses. The property tests uncovered errors in the range-reads implementation\\nof the LMDB backing store. To facilitate fixing this bug, we made\\n[changes](https://github.com/input-output-hk/lmdb-simple/pull/1) to the Haskell\\nLMDB bindings.\\n\\n### Benchmarking the CSJ prototype\\n\\nPrompted by previous benchmarks showing significant improvements in sync time by\\nusing more capabilities, we implemented a way to spread out the ChainSync\\nupdates over a larger period instead of firing them all at the same time. This\\ndidn\'t result in a noticeable speedup.\\n\\nWe also benchmarked the prototype with CSJ disabled (such that just the dynamo\\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\\nThis results in era-specific behavior (speed is like the prototype in Byron, but\\nlike the baseline in Shelley). This deserves a closer look in the future.\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n - Red: baseline\\n - Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.\\n - Blue: like Green, jumps are spread out.\\n - Orange: variant with no jumping, to measure unrelated overhead.\\n\\n![](/images/happy-path-csj-prototype-bench-2.svg)"},{"id":"2022-10-14-hydra","metadata":{"permalink":"/cardano-updates/2022-10-14-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-14-hydra.md","source":"@site/blog/2022-10-14-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-14-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-18-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-10-14-ledger"}},"content":"## High level summary\\n\\nThis week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the `hydra-node` over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks \\"past the opening of a Head\\". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.\\n\\n## What did the team achieve this week\\n\\n- Last week we thought we were done with [ADR18](https://hydra.family/head-protocol/adr/18/), but were not ...\\n- ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.\\n- Implemented a first version for persistence [#187](https://github.com/input-output-hk/hydra-poc/issues/187) in response.\\n- Enhanced CI to publish test results [on our website](https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results)\\n- Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!\\n- Pulled static executable feature [#200](https://github.com/input-output-hk/hydra-poc/issues/200) into scope, implemented it and merged it!\\n- Received and read through a project proposal by a vendor (building a Hydra platform).\\n\\n## What are the goals of next week\\n\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Cut the next release, version `0.8.0`\\n- Address open comments on specification document & complete the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Have the CI build macos artifacts"},{"id":"2022-10-14-ledger","metadata":{"permalink":"/cardano-updates/2022-10-14-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-14-ledger.md","source":"@site/blog/2022-10-14-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.03,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-10-14-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-14-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-05-consensus"}},"content":"## High level summary\\n\\nThe ledger team is still primarily focused on addressing\\n[technical](https://github.com/input-output-hk/cardano-ledger/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Acredit_card%3A+technical-debt%22)\\n[debt](https://github.com/input-output-hk/cardano-ledger/projects/3).\\nWe now have the infrastructure for versioning our serialization schemes,\\nwhich we continue to put into action.\\nWe have made first steps towards getting proper support for the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\n(in particular, we\'ve added nix builds and\\ncontinuous integration support).\\nWe are wrapping up an investigation of the performance of a critical\\nfunction used by the consensus layer for leader checks.\\nFinally, we are improving the packaging and versioning of our code.\\n\\n## Lower level summary\\n\\n### Completed Technical Debt\\n\\n- Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\\n our code lives in the `cardano-ledger-shelley` package, though with hindsight we can say that\\n much of it should live in `cardano-ledger-core`.\\n We continue to move things to `cardano-ledger-core`, and have much more to come. [[pull-3059]]\\n- We now have the infrastructure to support **versioned** serialization schemes.\\n The inability to do this has caused us a lot difficulties,\\n such as [[issue-3003]], [[issue-2965]] and [[issue-2444]].\\n We are still in the process of switching to the versioned serialization scheme\\n (such as [[pull-3078]]),\\n but the infrastructure was completed in [[pull-3063]].\\n- We now have proper nix and CI support for the formal ledger project. [[pull-19]]\\n- A separate team is helping bring support for\\n [CHaP](https://github.com/input-output-hk/cardano-haskell-packages)\\n to all the cardano-node repositories.\\n We have been helping out with this effort.\\n* A separate team continues working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4.\\n We have been helping out with this effort.\\n\\n### In-progress Technical Debt\\n\\nWe also have several fairly large pull-requests in review\\nthat we are working on.\\n\\n- In an on-going attempt to build out a more user-friendly API,\\n we continue to remove `HasField` instances in place of using micro-lenses.\\n The protocol parameters, in particular, are being worked on. [[pull-3045]]\\n- We are also renaming record fields to be consistent across the repository. [[pull-3062]]\\n- We are now cleaning up all the work we did to understand the performance\\n of the TICKF transition. We have some improvements to the computatation\\n as well. [[pull-3068]]\\n- We are adding more documentation, in particular to our `Twiddler` functionality. [[pull-3073]]\\n- The formal ledger is adding support for finite set theory. [[pull-20]]\\n\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n\\n[pull-3059]: https://github.com/input-output-hk/cardano-ledger/pull/3059\\n[pull-3045]: https://github.com/input-output-hk/cardano-ledger/pull/3045\\n[pull-3062]: https://github.com/input-output-hk/cardano-ledger/pull/3062\\n[pull-3063]: https://github.com/input-output-hk/cardano-ledger/pull/3063\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3078]: https://github.com/input-output-hk/cardano-ledger/pull/3078\\n[pull-19]: https://github.com/input-output-hk/formal-ledger-specifications/pull/19\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},{"id":"2022-10-05-consensus","metadata":{"permalink":"/cardano-updates/2022-10-05-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-05-consensus.md","source":"@site/blog/2022-10-05-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-10-05T00:00:00.000Z","formattedDate":"October 5, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":1.825,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-05-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-10-14-ledger"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-10-04-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team worked on improving the\\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\\nthe issues that prevented us from running system level benchmarks. Also on the\\nUTxO HD front, we have an improved implementation of the sequence-of-differences\\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\\nthe UTxO HD feature.\\n\\n## Executive summary\\n\\n- With the latest implementation of ChainSync jumping we are closer to the\\n baseline performance. In particular, the prototype seems to benefit from the\\n extra concurrency provided by additional capabilities.\\n- We rewrote the implementation of the mempool in the UTxO HD prototype. This\\n rewrite was required due to performance problems we observed when running the\\n [workbench](https://github.com/input-output-hk/cardano-node/blob/master/Makefile#L51).\\n These performance problems prevented us from running system level benchmarks.\\n The rewrite solved these issues. After the [UTxO-HD: mempool\\n rewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049) PR is\\n merged, we will contact the Benchmarking team so that they run the system\\n level benchmarks.\\n- The implementation of sequences of differences based on anti-diffs was\\n integrated into the UTxO HD prototype. It is pending\\n [review](https://github.com/input-output-hk/ouroboros-network/pull/4036) and\\n we also need to run replay and syncing benchmarks to confirm that this will\\n deliver a performance improvement, as observed in our micro-benchmarks.\\n- [The UTxO HD prototype\\n inspection](https://github.com/input-output-hk/ouroboros-network/issues/3944)\\n resulted in a [list of\\n tests](https://github.com/input-output-hk/ouroboros-network/issues/4045)\\n needed for consensus to consider the UTxO HD prototype as fully tested.\\n\\n## Additional information\\n\\n### Genesis\\n\\nBenchmarking setup: 50MBit/s, 50ms latency\\n\\n - Red: baseline\\n - Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.\\n\\nAs ChainSync Jumping involves many concurrent network operations at every jump,\\nwe tried to run the node with 6 instead of the default 2 capabilties.\\n\\n - Orange: baseline with 6 capabilities\\n - Blue: CSJ prototype with 6 capabilities\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n![](/images/happy-path-csj-prototype-bench-1.svg)\\n\\nFurther work includes whether we can tune the prototype to better handle few\\ncapabilities, or to adapt the default number of capabilities (potentially just\\nwhile syncing)."},{"id":"2022-10-04-db-sync","metadata":{"permalink":"/cardano-updates/2022-10-04-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-04-db-sync.md","source":"@site/blog/2022-10-04-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-10-04-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-05-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-04-node-cli-api"}},"content":"## DBSync Update\\n\\n\\n### Fast restarts\\n We fixed a long overdue issue in db-sync which caused long delays on restarts\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266). This has been\\n one of db-sync main objectives for this period. Restarts are now very fast,\\n because db-sync deletes almost nothing from the db, it just replays the ledger rules until it\\n reaches the tip of the db. The fix also improves reconnection speed, in cases where the node\\n restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\\n deployment mess up a very old snapshot or no snapshot at all is used.\\n\\n### Property based testing\\nWe added stateful property based testing, using `quickcheck-state-machine`\\n [1269](https://github.com/input-output-hk/cardano-db-sync/pull/1269). These tests use empty or\\n almost empty blocks to test the new behaviour of restarts and rollbacks.\\n\\n These tests generate arbitrarily a list of symbolic commands from these:\\n\\n```\\nRollForward Int\\nRollBack BlockNo\\nStopDBSync\\nStartDBSync\\nRestartNode\\nAssertBlockNo BlockNo\\n```\\n\\nThe commands are translated into real commands. For example `RollForward Int` will forge a new block\\nthat fits on the current chain. These real commands are executed against db-sync using the mock\\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\\nwhich looks like this:\\n\\n``` haskell\\n Model\\n { serverTip :: BlockNo\\n , dbSyncTip :: BlockNo\\n , dbSynsIsOn :: Bool\\n , dbSynsHasSynced :: Bool\\n }\\n```\\n\\nFinally a number of postconditions are checked, related to the eventual block number of db-sync.\\n\\n### Tech Debt\\n\\nWe handled a number of tech debt in\\n [1275](https://github.com/input-output-hk/cardano-db-sync/pull/1275)\\n This improves the code format of db-sync, deletes many queries that were never used and groups the\\n others. This tech debt resolution not only improves the experience of working in db-sync, but can\\n facilitate some of our other objectives, as it makes it very explicit which queries are used\\n during syncing and which indexes are necessary.\\n\\n### Smash\\n\\nWe worked on fixing an issue related to fetching pool metadata\\n [1276](https://github.com/input-output-hk/cardano-db-sync/pull/1276).\\n The issue which is described in\\n [1270](https://github.com/input-output-hk/cardano-db-sync/issues/1270)"},{"id":"2022-10-04-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-10-04-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-04-node-cli-api.md","source":"@site/blog/2022-10-04-node-cli-api.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":0.98,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-04-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-10-04-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-30-ledger"}},"content":"## Node-Api-Cli Update\\n## 2022-10-04 - 2022-10-18\\n\\n### Executive Summary\\nThe majority of the team\'s time was spent between getting `1.34.4` ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to `cardano-cli`.\\n\\n### Completed\\n\\n- [GHC 9.2.4 preparations](https://github.com/input-output-hk/cardano-node/pull/4504)\\n\\n#### cardano-cli\\n\\n- [Serenity] - [Separate IO from txBuild and txBuildRaw functions](https://github.com/input-output-hk/cardano-node/pull/4491)\\n\\n#### cardano-api\\n\\n- [BUGFIX] - [TxWitness text envelope format does not roundtrip in Shelley era](https://github.com/input-output-hk/cardano-node/pull/4501)\\n\\n#### cardano-node\\n\\n- [Fix MacOS GHA CI](https://github.com/input-output-hk/cardano-node/pull/4526)\\n\\n### In Progress\\n\\n- [Release 1.34.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n#### cardano-cli\\n\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n\\n### cardano-api\\n\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-09-30-ledger","metadata":{"permalink":"/cardano-updates/2022-09-30-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-30-ledger.md","source":"@site/blog/2022-09-30-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-30T00:00:00.000Z","formattedDate":"September 30, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.285,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-30-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-04-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-09-27-network"}},"content":"## Ledger Update\\n\\nWe have continued focusing nearly entirely on addressing technical debt.\\nA lot of design work has begun for the next ledger era,\\nbut we do not yet have anything concrete to share.\\n\\n### Technical debt issues completed\\n\\n* [[issue-1676]][[pull-2992]] We have finally removed the ledger dependency on the\\n `cardano-prelude` package. It was barely used in the ledger repository, and it added a dependency\\n that we did not want to maintain. It was a bit difficult to remove, and we had\\n to coordinate removing it from cardano-base.\\n A lot ended up going into [pull-2992][pull-2992], due to the coordination effort, and we ended\\n up updating Plutus as well.\\n This means that we\'ve now also made a lot of progress on the problematic cost model serialization\\n issues described in [issue-2902].\\n In particular, after we resolve [issue-3014], we will not have to wait an epoch before\\n releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.\\n* [[issue-3046]][[pull-3055]] We moved a module that is now only used in Byron to a Byron package.\\n* [[issue-3047]][[pull-3054]] We improved the interface to the `Value` (multi-asset) type.\\n* [[pull-3044]] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\\n were adding approximately 20 minutes to our compile time!\\n* [[issue-2932]][[pull-3036]] As a part of our ongoing re-organization of the codebase, we\\n have added a `Cardano.Ledger.[Era].Core` module to each ledger era that has a TxBody class.\\n Most classes defined in the era should go in this new module.\\n We also re-export the `Cardno.Ledger.Core` module and the previous `Cardano.Ledger.[Era].Core`\\n modules from each era.\\n\\n### Technical debt in progress\\n\\n* [[issue-3034]][[issue-3035]][[node-issue-4421]] We are continuing to write benchmarks to understand exactly where\\n all the time is being spent on executing the `TICKF` transition.\\n The consolidation of the per-stake-credential stake distribution to the per-stake-pool\\n distribution does seem to account for a large amount of time (near a second as written, which we\\n have down to about half a second with some optimizations),\\n but this does not account for everything.\\n Applying the reward update may also be a big contributing factor.\\n* [[pull-3033]][[pull-3038]][[pull-3041]] A separate team is working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.\\n* The nix scripts used to build our new\\n [formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications)\\n do not work consistently for everyone, and we have been working on fixing these issues.\\n* [[issue-3014]] We are still working on adding a versioning scheme to all of the ledger\\n serializers.\\n\\n[issue-1676]: https://github.com/input-output-hk/cardano-ledger/issues/1676\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902\\n[issue-2932]: https://github.com/input-output-hk/cardano-ledger/issues/2932\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014\\n[issue-3034]: https://github.com/input-output-hk/cardano-ledger/issues/3034\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n[issue-3046]: https://github.com/input-output-hk/cardano-ledger/issues/3046\\n[issue-3047]: https://github.com/input-output-hk/cardano-ledger/issues/3047\\n\\n[node-issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n\\n[pull-2992]: https://github.com/input-output-hk/cardano-ledger/pull/2992\\n[pull-3033]: https://github.com/input-output-hk/cardano-ledger/pull/3033\\n[pull-3038]: https://github.com/input-output-hk/cardano-ledger/pull/3038\\n[pull-3036]: https://github.com/input-output-hk/cardano-ledger/pull/3036\\n[pull-3041]: https://github.com/input-output-hk/cardano-ledger/pull/3041\\n[pull-3044]: https://github.com/input-output-hk/cardano-ledger/pull/3044\\n[pull-3054]: https://github.com/input-output-hk/cardano-ledger/pull/3054\\n[pull-3055]: https://github.com/input-output-hk/cardano-ledger/pull/3055"},{"id":"2022-09-27-network","metadata":{"permalink":"/cardano-updates/2022-09-27-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-27-network.md","source":"@site/blog/2022-09-27-network.md","title":"Network Team Update","description":"Network Update","date":"2022-09-27T00:00:00.000Z","formattedDate":"September 27, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":2.24,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-09-27-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-30-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-09-20-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n## Network Update\\n\\n### Ouroboros Network\\n\\n* We finished high and low level _peer sharing_ design. See\\n [Peer Sharing Implementation Plan](https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan)\\n* We started working on low-level design of _eclipse evasion_ (work in\\n progress).\\n* We decided to use **peer sharing** instead of overloaded and ambiguous _gossip_ term.\\n [PR input-output-hk/ouroboros-network#3980](https://github.com/input-output-hk/ouroboros-network/pull/3980)\\n* We fixed technical dept\\n [issue input-output-hk/cardano-node#3905](https://github.com/input-output-hk/ouroboros-network/issues/3905) in\\n the simulation testing of diffusion\\n [PR input-output-hk/cardano-node#4004](https://github.com/input-output-hk/ouroboros-network/pull/4004)\\n* We deployed all our nodes using our new nix based deployment architecture.\\n When deploying we found an issue in the\\n [`RTView`](https://github.com/input-output-hk/cardano-node/issues/3752).\\n\\n### Ouroboros Consensus\\n\\n* Recently we found out that the consensus does not log exceptions thrown during\\n intiialisation. This was fixed in\\n [PR input-output-hk/ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n As part of this pull request we also changed that all exceptions rethrown by\\n the connection handler thread are wrapped in `ExceptionInHandler`.\\n\\n#### Some older items, which were not announced\\n\\n* We identified and fixed an issue related to socket activation (socket options\\n where not set for sockets passed through socket activation).\\n [PR input-output-hk/cardano-node#3979](https://github.com/input-output-hk/ouroboros-network/pull/3979)\\n This fix will be released in the next `cardano-node` release.\\n\\n### Cardano Node\\n\\n* We extended the NixOs service module so that one can modify `socketPath`,\\n `runtimeDir`, `databasePath`, `traceSocketPathAccept`,\\n `traceSocketPathConnect` and `stateDir` options.\\n [PR input-output-hk/cardano-node#4196](https://github.com/input-output-hk/cardano-node/pull/4196)\\n\\n### IO-Sim\\n\\nWe resolved a number of issues before release of `io-sim` on hackage:\\n\\n* [issue input-output-hk/ouroboros-network#2797](https://github.com/input-output-hk/ouroboros-network/issues/2797)\\n* [issue input-output-hk/ouroboros-network#2650](https://github.com/input-output-hk/ouroboros-network/issues/2650)\\n* [issue input-output-hk/ouroboros-network#3436](https://github.com/input-output-hk/ouroboros-network/issues/3436)\\n* [issue input-output-hk/ouroboros-network#2588](https://github.com/input-output-hk/ouroboros-network/issues/2588)\\n* [issue input-output-hk/ouroboros-network#2587](https://github.com/input-output-hk/ouroboros-network/issues/2587)\\n* [issue input-output-hk/ouroboros-network#2586](https://github.com/input-output-hk/ouroboros-network/issues/2586)\\n\\nSee [PR #24](https://github.com/input-output-hk/io-sim/pull/24).\\n\\nWe also improved experience for contributors of `io-sim` and `typed-protocols` by adding issue templates:\\n* [PR input-output-hk/io-sim#25](https://github.com/input-output-hk/io-sim/pull/25)\\n\\n### Typed Protocols\\n\\n* We pushed a branch which identifies a GHC quirk:\\n [coot/typed-protocols-rewrite-StateToken-problem](https://github.com/input-output-hk/typed-protocols/tree/coot/typed-protocols-rewrite-StateToken-problem).\\n That\'s too be resolved in order to push forward review of the redesign in\\n [PR input-output-hk/typed-protocols#3](https://github.com/input-output-hk/typed-protocols/pull/3).\\n* As for `io-sim`, we wrote issue templates:\\n [PR input-output-hk/typed-protocols#11](https://github.com/input-output-hk/typed-protocols/pull/11)\\n\\n### Input Endorsers Simulation\\n\\nNew features include:\\n\\n* Histograms of block arrival frequency, for both network (inbound) and CPU\\n (block validation). This is interesting to check that we\'re not overloading\\n the CPU block validation capacity, or network link capacity. Or alternatively\\n to observe the behaviour in an overload situation if we set the block\\n generation rate high enough.\\n\\n* Pie chart of utilisation of TCP links. This shows how small a fraction of\\n links are being used at any one time, and shows that once the system \\"warms\\n up\\" and is operating stably, most block delivery is ballistic.\\n\\n* Showing off the new screen layout combinators, that let us put multiple\\n charts, titles etc on screen at once and scale them to whatever screen or\\n video resolution we like without having to tweak numbers (this example is\\n scaled to fit 1080HD video resolution).\\n\\n\\n```mdx-code-block\\n\\n```"},{"id":"2022-09-20-consensus","metadata":{"permalink":"/cardano-updates/2022-09-20-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-20-consensus.md","source":"@site/blog/2022-09-20-consensus.md","title":"Consensus Team Update","description":"- We proposed a fix for the performance degradation observed when running","date":"2022-09-20T00:00:00.000Z","formattedDate":"September 20, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.895,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-09-20-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-09-27-network"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-09-19-db-sync"}},"content":"- We proposed a fix for the performance degradation observed when running\\n distributed multi-node benchmarks in the UTxO HD feature branch. While this\\n fixed the problems observed when running local benchmarks, it broke the\\n `ThreadNet` tests due to concurrency issues. Therefore, we think it is wise to\\n start redesigning the UTxO HD mempool integration.\\n- We did several rounds of code review on the alternative implementation of\\n diff-sequences required by the UTxO HD feature based on the idea of\\n anti-diffs. This alternative implementation is close to being merged, and the\\n next step is to integrate this to the UTxO HD branch, so that we can run\\n ad-hoc replaying and syncing from scratch benchmarks and compare these with\\n the baseline. The micro-benchmarks we elaborated for the alternative\\n implementation show speedups of up to 4x, so we are optimistic about the\\n performance of replaying and syncing from scratch benchmarks, however it is\\n important to notice that *due to the nature of UTxO HD* we will still be\\n slower than the baseline.\\n- The final draft of the Genesis implementation specification is ready for\\n review.\\n- We implemented a prototype for the happy path of Genesis\' ChainSync Jumping\\n (CSJ). The prototype is slower than the baseline, however it is not the latest\\n version of the prototype and the jump interval is very small.\\n- Work on integrating Conway has [stopped][nicks-comment-conway] since\\n priorities have changed.\\n- We started work on benchmarking epoch-boundaries and epoch overhead\\n [pr-4014][pr-4014]. To this end, we made use of a modified version of our\\n `db-analyser` tool. We ran the new benchmarking setup using the Cardano\\n mainnet chain, and we can see that block tick and application take\\n substantially longer at epoch boundaries, although there are a couple of slots\\n during an epoch in which these computations take more than normal. We notified\\n the ledger team about these findings. We will use this modified version of\\n `db-analyser` to investigate the epoch overhead.\\n\\n\\n# Workstreams\\n\\n## UTxO HD\\n\\n - Spent quite some time investigating the root cause of the degradation in\\n performance observed in the benchmarks. We run the `make forge-stress`\\n benchmarks locally in order to debug this behavior.\\n\\n - Transaction batching doesn\'t make a notable difference in the outcome\\n (considering we are using the in-memory backend).\\n\\n - The mempool batching implementation required asynchronous transaction\\n validation which is a violation of the `LocalTxSubmission` protocol\\n contract and therefore if we continued on that route, the impact would\\n have been quite big.\\n\\n - The STM logic we implemented by using a `TMVar` for the mempool internal\\n state was buggy and under certain circumstances it seemed to lock.\\n Reverting the mempool internal state to be stored in a `TVar` seems to\\n solve this problem.\\n\\n - The results we get after this change look almost identical to the ones\\n from the baseline.\\n\\n - [The anti-diff prototype (PR\\n #3997)](https://github.com/input-output-hk/ouroboros-network/pull/3997) has\\n been reviewed and is close to being merged.\\n\\n - A follow-up issue ([issue\\n #4010](https://github.com/input-output-hk/ouroboros-network/issues/4010))\\n to integrate the anti-diff prototype in the various `consensus` packages\\n was created. A first version of the integration exists, and all tests\\n pass. A next step is to get some indication of the \\"real\\" performance gain\\n by profiling `db-analyser` (or `cardano-node`).\\n\\n## Genesis\\n\\n - Final draft of the Genesis implementation specification, now up for review.\\n\\n - Local benchmark setup for parameter tuning via the happy path ChainSync\\n Jumping (CSJ) prototype ([Issue 3987][issue-3987]).\\n\\n - Context: Our Genesis design requires us to check in with a large (~20)\\n number of servers periodically while syncing. These servers are offered\\n jump requests via the ChainSync protocol (hence the name), which they can\\n accept or decline. If a peer declines, the Genesis rule allows us to\\n determine whether a node actually has a better chain.\\n\\n - The \\"happy path\\" is when no peer declines a jump. We want this to have\\n close to no overhead compared to status quo, i.e. syncing without Genesis.\\n\\n - We implemented a prototype for this happy path, and are now starting to\\n test in various configurations (number of peers, latency, bandwidth) to\\n tune the performance of ChainSync jumping, i.e. how complicated our logic\\n of choosing when to jump needs to be.\\n\\n **Example:**\\n\\n - Simulated connection: 50 MBit/s, 50ms latency\\n\\n - Jump interval: 3000 slots (on the low end, could be increased to up to\\n `3k/f`)\\n\\n - Red: baseline (1.35.3), one peer in topology file\\n\\n - Blue: Preliminary version of our prototype, with 10 peers.\\n\\n ![](/images/happy-path-csj-prototype-prelim.svg)\\n\\n It is slower by about ~30%, but it is not the latest version of the\\n prototype, and the jump interval is very small, making CSJ more of a\\n bottleneck.\\n\\n## Technical debt\\n\\n- Fix flakiness in ChainDB QSM tests ([PR 3990](https://github.com/input-output-hk/ouroboros-network/pull/3990)).\\n\\n[issue-3987]: https://github.com/input-output-hk/ouroboros-network/issues/3987\\n[nicks-comment-conway]: https://github.com/input-output-hk/ouroboros-network/pull/3971#issuecomment-1252524031\\n[pr-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014"},{"id":"2022-09-19-db-sync","metadata":{"permalink":"/cardano-updates/2022-09-19-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-19-db-sync.md","source":"@site/blog/2022-09-19-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-09-19T00:00:00.000Z","formattedDate":"September 19, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":1.525,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-09-19-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-09-20-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-16-ledger"}},"content":"## DBSync Update\\n\\n### New Tag\\nWe created a new db-sync tag 13.0.5 which addresses shortcomings of the last\\nrelease 13.0.4. It is currently under testing.\\nThe Changelog is\\n [here](https://github.com/input-output-hk/cardano-db-sync/blob/8ad98d48e0068f3768d48e18fdcbe254037cba3b/cardano-db-sync/CHANGELOG.md#1305) and in more details:\\n\\n* We fixed fees for tx with phase 2 failure that didn\'t include a total collateral field.\\n [1248](https://github.com/input-output-hk/cardano-db-sync/pull/1248)\\n\\n* We fixed an issue that could cause db-sync to crash if a specific rollback occured.\\n [1247](https://github.com/input-output-hk/cardano-db-sync/pull/1247)\\n\\n* DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\\n could result in the wrong CBOR encoding being inserted.\\n [1217](https://github.com/input-output-hk/cardano-db-sync/pull/1217)\\n\\n* All the fixes above come with unit tests which validates the fix.\\n\\n* Added support for preprod and preview from docker. DBSync no longer needs to include the configs\\n for different networks, these are directly fetched from the cardano world.\\n [1254](https://github.com/input-output-hk/cardano-db-sync/pull/1254)\\n\\n* We added better support from docker for the new disable options and the overall documentation.\\n [1260](https://github.com/input-output-hk/cardano-db-sync/pull/1260)\\n\\nAll the above were also backported to the master branch\\n\\n### Open source\\n\\nWe made the db-sync [board public](https://github.com/orgs/input-output-hk/projects/52/views/1), so\\n everyone can have access on the issues we prioritise.\\n We also added new tasks to the board, some of them could be approachable to newcomers or people who\\n want to contribute.\\n\\n### Progress on tech debt and new features\\n* [1223](https://github.com/input-output-hk/cardano-db-sync/pull/1223) was merged, which removes the\\n foreign keys from the db schema. This opens the road to a number of optimizations.\\n\\n* An additional fix on top of the previous work was added\\n [1250](https://github.com/input-output-hk/cardano-db-sync/pull/1250)\\n\\n* An initial version where DBSync does not rollback on restart is done here\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266).\\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\\n the future it can also facilitate migrations in cases where the ledger snapshots have a breaking\\n change, without the need to resync everything from genesis."},{"id":"2022-09-16-ledger","metadata":{"permalink":"/cardano-updates/2022-09-16-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-16-ledger.md","source":"@site/blog/2022-09-16-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-16T00:00:00.000Z","formattedDate":"September 16, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.625,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-16-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-09-19-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-01-ledger"}},"content":"## Ledger Update\\n\\nWe have been focused nearly entirely on addressing technical debt.\\n\\n* We introduced more consistent naming across eras, this time for the auxiliary data.\\n See [3032](https://github.com/input-output-hk/cardano-ledger/pull/3032).\\n* We made clear how the `consumed` functions differs between eras (which was a previous source of\\n confusion), and added some related support to the fledgling ledger API.\\n See [3016](https://github.com/input-output-hk/cardano-ledger/pull/3016).\\n* We added clarity and organizational consistency to the main ledger era type synonyms.\\n See [3017](https://github.com/input-output-hk/cardano-ledger/pull/3017).\\n* We removed code duplication related to the input data hashes.\\n See [3018](https://github.com/input-output-hk/cardano-ledger/pull/3018).\\n* We split up a large module into smaller components. The large module was actually causing our\\n CI to time out.\\n See [3020](https://github.com/input-output-hk/cardano-ledger/pull/3020).\\n* We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\\n See [3023](https://github.com/input-output-hk/cardano-ledger/pull/3023),\\n [3031](https://github.com/input-output-hk/cardano-ledger/pull/3031),\\n and [3028](https://github.com/input-output-hk/cardano-ledger/pull/3028).\\n* We made consistent, standalone `TxOut` (transaction output) modules for every era.\\n See [3024](https://github.com/input-output-hk/cardano-ledger/pull/3024).\\n* We brought consistency to a maddening inconsistent use of type variables indicating the specific\\n choice of cryptographic primitives. In particular, all uses of `crypto` have been renamed to `c`.\\n See [3027](https://github.com/input-output-hk/cardano-ledger/pull/3027).\\n* We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\\n types that will compose better in the future and which simplifies the constraints.\\n See [3029](https://github.com/input-output-hk/cardano-ledger/pull/3029).\\n* We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\\n given transaction. This is a much needed cleanup to prevent future mistakes.\\n See [3019](https://github.com/input-output-hk/cardano-ledger/pull/3019).\\n* We fixed a problem with our generators that was causing a fair number of our property tests to\\n fail in CI.\\n See [3039](https://github.com/input-output-hk/cardano-ledger/pull/3039).\\n* We have started the work to update Plutus. This will bring support for SECP in the next major\\n protocol version, and also address a\\n [problem](https://github.com/input-output-hk/cardano-ledger/issues/2902)\\n that we current have evolving the cost models.\\n See [3030](https://github.com/input-output-hk/cardano-ledger/pull/3030).\\n* We addressed a small issue that came up when integrating the conway era downstream, namely\\n the lack of some serialization instances.\\n See [3022](https://github.com/input-output-hk/cardano-ledger/pull/3022)."},{"id":"2022-09-01-ledger","metadata":{"permalink":"/cardano-updates/2022-09-01-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-01-ledger.md","source":"@site/blog/2022-09-01-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-01T00:00:00.000Z","formattedDate":"September 1, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.94,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-01-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-16-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-08-31-consensus"}},"content":"## Ledger Update\\n\\nSince finishing up support for the Vasil Hardfork, the ledger team has been\\nfocused on two main things: a new ledger era and technical debt.\\n\\n### New minimal ledger era\\n\\nWe have implemented a new ledger era named `conway` which is nearly identical\\nto the `babbage` era. This has been the first time that we have been able to see\\nwhat a minimal ledger era looks like. We have finished this task, modulo any\\nintegration issues that might come up. The only thing that the `conway` era\\ndoes differently from the `babbage` era is provide support for rotating\\nthe master keys using the hardfork combinator\'s state translation.\\nWe may end up adding features to the `conway` era, but it is a nice exercise\\nseeing what it looks like to get a minimal ledger era supported in all the\\ndownstream components.\\n\\n### Addressing technical debt\\n\\nWe have been addressing technical debt, mostly in an effort to make the\\nrepository a more friendly code base to work in.\\n\\n- We have begun work on a ledger API, called `cardano-ledger-api`.\\n- We have done a big re-design of the major type classes used in the ledger.\\n With hindsight on our side, we now have something much more organized and\\n easier to use.\\n- We have done a lot of re-naming. The names across eras are now much more\\n uniform, avoid certain confusions that plagued us, and are clearer in where\\n they are from.\\n- We have reduced a lot of code duplication that could lead to bugs if you\\n do not have the whole code base in your head.\\n- We have added a handful of performance improvements.\\n- We added type safety in a number of locations. In particular, the type of\\n values that can be minted in a transaction no longer allow for Lovelace\\n in the type, and some functions which used to handle both timelock scripts\\n and plutus script now correctly enoforce at the type level that only one of\\n them can be used.\\n- We made our generators so that they now produce a much richer set of\\n valid serializations. There is room within CBOR to serialize the same\\n data structure in multiple ways, and it is helpful to have the generators\\n use a wide variety.\\n- We have begun re-organizing our test suites."},{"id":"2022-08-31-consensus","metadata":{"permalink":"/cardano-updates/2022-08-31-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-08-31-consensus.md","source":"@site/blog/2022-08-31-consensus.md","title":"Consensus Team Update","description":"Executive summary","date":"2022-08-31T00:00:00.000Z","formattedDate":"August 31, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":8.925,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-08-31-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-01-ledger"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-08-12-network"}},"content":"## Executive summary\\n\\n- We did most of the heavy lifting required to integrate the Conway era.\\n- We have property tests for the UTxO HD backing store API implementations. A\\n possible bug was identified. Work is ongoing to make sure the property-tests\\n cover all the relevant cases.\\n- We implemented and benchmarked the \\"anti-diff\\" prototype to speed up the UTxO\\n HD functionality. Results show a rough speedup of `4x` to `5.5x` across\\n several scenarios. Note that: [\\"Data reported by `tasty-bench` is only of\\n indicative and comparative significance.\\"](https://hackage.haskell.org/package/tasty-bench-0.3.2/docs/Test-Tasty-Bench.html).\\n We are investigating additional performance improvements. The \\"anti-diff\\"\\n prototype and benchmarks are still pending code review.\\n- We elaborated a draft specification for the Genesis implementation and\\n `ChainSync` jumping optimization.\\n\\n## Workstreams\\n\\n### Conway\\n\\n - Integration PR of the minimal Conway era ([Issue #3963][issue-3962], [PR\\n #3971][pull-3971]).\\n - Discussions with Ledger revealed possible sources of confusion about which\\n data should be changed in the Conway era. As a result, a new technical debt\\n issue was raised, which does not block the integration of the Conway era\\n ([Issue #3976][issue-3976]).\\n\\n### UTxO HD\\n\\n- [Issue #3954][issue-3954], [branch][branch-3954]: The functionality of a\\n backing store, which is the interface to the on-disk part of ledger state in\\n UTxO-HD, is tested at a high level through the `OnDisk` tests. However, some\\n functionalities remain untested, e.g., reads of ranges of keys. As such, we\\n have implemented `quickcheck-state-machine` tests that exercise backing stores\\n directly. The tests are reusable for different backing store implementations\\n because the tests are implementation-agnostic: Any backing store that conforms\\n to the backing store interface can be plugged into the tests. Work is still\\n ongoing to label/monitor the tests, such that we can verify that interesting\\n cases are being tested. Furthermore, a possible bug has been identified in the\\n LMDB backing store with respect to range reads, though the bug has not been\\n resolved yet.\\n- [Issue #3946][issue-3946], [branch][branch-4199], [PR #3882][pull-3882]: The\\n \\"anti-diff\\" prototype proposes an alternative approach to keeping track of\\n sequences (more specifically, `FingerTree`s) of diffs. These diff sequences\\n are a component of the in-memory parts of the ledger state in UTxO-HD. Since\\n the consensus code often requires the cumulative diff of a sequence of diffs,\\n the current implementation \\"caches\\" cumulative diffs of each subtree in the\\n diff sequence. This caching allows relatively fast reconstruction of the total\\n cumulative diff, but this caching proved to incur a non-negligible cost: when\\n we manipulate diff sequences through splits and appends, we force re-computing\\n a logarithmic number of caches. This is problematic, since we often split and\\n append in consensus: we split when we flush diffs to a backing store or when\\n we roll back blocks, and we append when pushing blocks. The new approach\\n should reduce the overhead of this caching.\\n\\n We implemented micro-benchmarks for the \\"anti-diff\\" prototype: we\\n first generate a sequence of commands (`Forward`, `Push`, `Flush`, or\\n `Rollback`) through a simulation, after which we measure the performance of\\n applying the commands to a diff sequence. In this context, `Forward` means\\n forwarding of values through a diff, whereas `Rollback` means switching to\\n a different fork by rolling back diffs/blocks and pushing new ones.\\n Moreover, we compare the performance for the two implementations: the\\n \\"legacy\\" approach, and the anti-diff approach.\\n\\n Some preliminary results were positive, but we needed to revisit the\\n benchmark\'s configuration to obtain more definitive results. After a\\n discussion with @dcoutts and the consensus team about this configuration\\n (e.g., number of commands generated, choice of the security parameter `k`),\\n the benchmarks should now be closer to the realistic setting. The following\\n configuration specifies the default configuration that is used in the\\n benchmarking code:\\n * Number of commands generated: `10_000`\\n * Security parameter `k`: `2160`\\n * Number of initial backing values: `100`\\n * Number of key-value pairs deleted by a push: `50`\\n * Number of key-value pairs inserted by a push: `50`\\n * Number of key-value pairs forwarded by a forward: `50`\\n * Probability of a large (in the range `[1000, 2000]`) rollback: `0.05`\\n * Probability of a small (in the range `[1, 10]`) rollback: `0.95`\\n * Order of commands:\\n * An equal number of forward and pushes.\\n * `1` flush every `10` pushes.\\n * `1` rollback every `100` pushes\\n\\n Moreover, we run four benchmark scenarios:\\n * Default configuration\\n * Without rollbacks\\n * With only small rollbacks\\n * Without rollbacks, larger flushes (`1` flush every `100` pushes)\\n\\n ### How to read results\\n\\n Note: this section uses documentation from the\\n [tasty-bench](https://hackage.haskell.org/package/tasty-bench) package to\\n explain how to read the results of running our benchmarks.\\n\\n Running a benchmark scenario gives us the following (curated) output:\\n ```text\\n ...\\n AntiDiff: OK (18.27s)\\n 2.527 s \xb1 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x\\n LegacyDiff: OK (32.73s)\\n 10.829 s \xb1 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory\\n ...\\n ```\\n\\n The output says that the first benchmark, which exercises the anti-diff\\n prototype, was repeatedly executed for `18.27` seconds (wall-clock time),\\n its predicted mean CPU time was `2.527` seconds and means of individual\\n samples do not often diverge from it further than `\xb1 47` milliseconds\\n (double standard deviation). We also configure the RTS to collect GC\\n statistics, which enables `tasty-bench` to estimate and report memory usage.\\n This data is reported as per `RTSStats` fields: `allocated_bytes`,\\n `copied_bytes` and `max_mem_in_use_bytes`. So, the output of the first\\n benchmark says that a total of `2.1 GB` of memory was allocated, that a\\n total of `544 MB` of memory were copied, and that the peak memory in usage\\n was `2.2 GB`. We read the output for the second benchmark in the same way.\\n\\n Furthermore, the benchmark compares the mean CPU times for\\n both the anti-diff and legacy approaches: In this case, the mean CPU time\\n for the anti-diff approach is `~0.23x` the mean CPU time for the legacy\\n approach. Conversely, the mean CPU time for the legacy approach is\\n `1 / 0.23 ~= 4.35x` the mean CPU time for the anti-diff approach. We will\\n call `0.23x` the *improvement factor*. We will call `4.35x` the *speedup*.\\n\\n Note that these improvement factors (and reported results) are subject to\\n noise, randomness, the specific configuration parameters, and the whims\\n of statistics. Data reported by `tasty-bench` is only of indicative and\\n comparative significance.\\n\\n ### Results\\n\\n For each of the 4 scenarios, we list the results of running the anti-diff and\\n legacy approaches 5 times. We run the benchmarks 5 times to get an indication\\n of whether the results are similar across multiple runs. Furthermore, we\\n calculate the accompanying *ranges* (if applicable) of improvement factors and\\n speedups.\\n\\n Note also the decrease in total bytes allocated and total bytes copied for\\n the anti-diff approach compared to the legacy approach.\\n\\n #### Default configuration\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|2.533 s (0.23x)|4.7 ms|2.1 GB|557 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.792 s|162 ms|6.8 GB|2.3 GB|2.4 GB|\\n |Run 2: AntiDiff|2.508 s (0.23x)|245 ms|2.1 GB|515 MB|2.2 GB|\\n |Run 2: LegacyDiff|10.850 s| 30 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 3: AntiDiff|2.562 s (0.23x)|5.0 ms|2.1 GB|552 MB|2.2 GB|\\n |Run 3: LegacyDiff|10.993 s|149 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 4: AntiDiff|2.168 s (0.22x)|5.3 ms|1.8 GB|434 MB|2.0 GB|\\n |Run 4: LegacyDiff|9.976 s| 39 ms|6.3 GB|2.0 GB|2.0 GB|\\n |Run 5: AntiDiff|2.527 s (0.23x)| 47 ms|2.1 GB|544 MB|2.2 GB|\\n |Run 5: LegacyDiff|10.829 s|148 ms|6.8 GB|2.3 GB|2.2 GB|\\n\\n * Improvement factor: `[0.22, 0.23]`\\n * Speedup : `[1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]`\\n\\n #### No rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.638 s (0.19x)| 36 ms|1.4 GB|181 MB|2.4 GB|\\n |Run 1: LegacyDiff|8.656 s|207 ms|5.7 GB|1.5 GB|2.4 GB|\\n |Run 2: AntiDiff|1.638 s (0.19x)| 75 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.654 s|322 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.663 s (0.19x)| 74 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.799 s|216 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.645 s (0.19x)| 51 ms|1.4 GB|181 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.732 s|261 ms|5.7 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.639 s (0.19x)| 19 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.653 s|234 ms|5.7 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `0.19`\\n * Speedup : `1 / 0.19 ~= 5.25`\\n\\n\\n #### Only small rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.833 s (0.18x)| 36 ms|1.5 GB|185 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.362 s|867 ms|5.8 GB|1.6 GB|2.4 GB|\\n |Run 2: AntiDiff|1.696 s (0.19x)| 30 ms|1.5 GB|185 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.822 s|106 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.702 s (0.19x)| 44 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.906 s|147 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.701 s (0.19x)| 47 ms|1.5 GB|185 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.949 s|197 ms|5.8 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.677 s (0.19x)| 55 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.856 s|177 ms|5.8 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `[0.18, 0.19]`\\n * Speedup : `[1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]`\\n\\n #### No rollbacks, larger flushes (every 100 pushes)\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.643 s (0.25x)| 21 ms|1.5 GB|196 MB|2.4 GB|\\n |Run 1: LegacyDiff|6.591 s|351 ms|4.0 GB|1.4 GB|2.4 GB|\\n |Run 2: AntiDiff|1.616 s (0.25x)| 47 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 2: LegacyDiff|6.520 s|232 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 3: AntiDiff|1.640 s (0.25x)| 34 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 3: LegacyDiff|6.540 s|150 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 4: AntiDiff|1.635 s (0.25x)| 76 ms|1.5 GB|196 MB|2.0 GB|\\n |Run 4: LegacyDiff|6.589 s|131 ms|4.0 GB|1.4 GB|2.0 GB|\\n |Run 5: AntiDiff|1.628 s (0.25x)| 19 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 5: LegacyDiff|6.490 s|5.9 ms|4.0 GB|1.4 GB|2.2 GB|\\n\\n * Improvement factor: `0.25`\\n * Speedup : `1 / 0.25 ~= 4`\\n\\n### Genesis\\n\\n - We elaborated a draft of the specification of the Genesis implementation and\\n the ChainSync Jumping optimization. In particular, this includes a proof\\n sketch that the latter preserves liveness and safety in all cases ([Issue\\n 3964][issue-3964]).\\n - @nfrisby\'s main realization during this sprint was that he had been\\n focusing so far on the case where the selected chain is an extension of\\n the intersection of our peers\' ChainSync candidates.\\n - This is the main case, ie an \\"absorbing\\" state, but it\'s not the only\\n case.\\n - The new proof sketch begins by case splitting on that predicate, and\\n that made the sketch quite a bit easier to follow.\\n - We continued working on the \\"happy path\\" `ChainSync` Jumping prototype ([Issue\\n 3960][issue-3960]).\\n\\n### Technical debt\\n\\n - We started working on the issues required to re-enable nightly CI runs..\\n Nightly CI runs have far more lax time constraints, which gives the option to\\n run significantly more property tests than in our regular CI. To this end, we\\n merged a PR to easily adapt the number of tests globally ([PR\\n #3947][pull-3947]).\\n\\n[issue-3954]: https://github.com/input-output-hk/ouroboros-network/issues/3954\\n[branch-3954]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/3954-backingstore-property-tests\\n[issue-3946]: https://github.com/input-output-hk/ouroboros-network/issues/3946\\n[branch-4199]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/CAD-4199-prototype-anti-diffs\\n[pull-3882]: https://github.com/input-output-hk/ouroboros-network/pull/3882\\n[pull-3947]: https://github.com/input-output-hk/ouroboros-network/pull/3947\\n[issue-3960]: https://github.com/input-output-hk/ouroboros-network/issues/3960\\n[issue-3962]: https://github.com/input-output-hk/ouroboros-network/issues/3962\\n[issue-3964]: https://github.com/input-output-hk/ouroboros-network/issues/3964\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[issue-3976]: https://github.com/input-output-hk/ouroboros-network/issues/3976"},{"id":"2022-08-12-network","metadata":{"permalink":"/cardano-updates/2022-08-12-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-08-12-network.md","source":"@site/blog/2022-08-12-network.md","title":"Network Team Update","description":"The networking team took an active part in the project iteration (PI) planning","date":"2022-08-12T00:00:00.000Z","formattedDate":"August 12, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":0.88,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-08-12-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-08-31-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n\\nThe networking team took an active part in the project iteration (PI) planning\\nsession, see cardano-node [backlog](https://github.com/orgs/input-output-hk/projects/39) for detailed\\noutcomes.\\n\\n\\n* We started working on a detailed design / implementation plan for gossip.\\n\\n* We merged [input-output-hk/ouroboros-network#3859](https://github.com/input-output-hk/ouroboros-network/pull/3859) which\\n sets the ouroboros-network repository for the single relay release.\\n\\n* We identified a bug in the network simulator, which is fixed in the\\n [input-output-hk/ouroboros-network#3852](https://github.com/input-output-hk/ouroboros-network/pull/3852).\\n The above PR was reviewed.\\n\\n* We set the tracing configuration for nodes which we deploy and fixed and\\n identified some deployment hiccups. We identified some bugs in the RT view\\n which were registered by the maintainers.\\n [input-output-hk/ouroboros-network-ops#4](https://github.com/input-output-hk/ouroboros-network-ops/pull/4)\\n\\n* We fixed typos in network-mux library:\\n [input-output-hk/ouroboros-network#3921](https://github.com/input-output-hk/ouroboros-network/pull/3921)\\n\\n* For easy of debugging we renamed a trace point:\\n [input-output-hk/ouroboros-network#3922](https://github.com/input-output-hk/ouroboros-network/pull/3922)\\n\\n* Duncan iterated on his simulation / visualisation. He also was able to\\n identify and fix a bug in the simulator. The simulation contains 50 nodes.\\n Dashed lines indicate and established connection, while solid lines indicate\\n a TCP connection with fully open TCP window.\\n\\n```mdx-code-block\\n\\n```"}]}')}}]); \ No newline at end of file diff --git a/assets/js/3ede3d79.b24f56aa.js b/assets/js/3ede3d79.b24f56aa.js deleted file mode 100644 index 4f066d16a3..0000000000 --- a/assets/js/3ede3d79.b24f56aa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2221],{4562:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-03-23-db-sync","metadata":{"permalink":"/cardano-updates/2023-03-23-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md","source":"@site/blog/2023-03-23-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.755,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-03-23-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"}},"content":"## High level summary\\n\\nThe DBSync team worked in performance enhancements issues, on providing new db-sync options and on\\ntechnical debt and bug fixing. The DBSync team also on boarded a new member.\\n\\n## Low level summary\\n- Worked on an issue which causes `ada_pots` tables to include the values related not only to an\\nepoch, but also the first epoch of the last epoch.\\n[#1367](https://github.com/input-output-hk/cardano-db-sync/pull/1367)\\n- Fixed an issue where the `epoch` table didn\'t rollback and caused wrong values\\n[#1370](https://github.com/input-output-hk/cardano-db-sync/pull/1370)\\n- Fixed an issue were users with `disable-ledger` option had to provide the state dir option, even\\nthough it was never used. Also refactored the no ledger part of the codebase.\\n[#1378](https://github.com/input-output-hk/cardano-db-sync/pull/1378)\\n- Improved the perforance by using the cache more. Also provided many new options which enables or\\ndisables parts of db-sync. In addition a new `--turbo` mode is enables which allows db-sync to sync\\nmainnet in hours.\\n[#1379](https://github.com/input-output-hk/cardano-db-sync/pull/1379)"},{"id":"2023-03-23-mithril","metadata":{"permalink":"/cardano-updates/2023-03-23-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-mithril.md","source":"@site/blog/2023-03-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.615,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-03-23-db-sync"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2310.0`](https://github.com/input-output-hk/mithril/releases/tag/2310.0) distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.\\n\\nFinally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano `mainnet` and they have fixed some bugs. \\n\\n## Low level overview\\n- Completed the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed handling the API version switch at era transition [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Completed on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n - Worked on the migration/adaptation of the `epoch_settings` table [#813](https://github.com/input-output-hk/mithril/issues/813)\\n - Worked on the migration/adaptation of the `signed-entity-type` table [#815](https://github.com/input-output-hk/mithril/issues/815)\\n - Completed the creation of a stake distribution service [#799](https://github.com/input-output-hk/mithril/issues/799)\\n- Completed the testing of Mithril with Cardano `mainnet` network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Completed qualifying the computation of the stake distribution [#810](https://github.com/input-output-hk/mithril/issues/810)\\n- Completed the testing of the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)\\n- Worked on bugs and optimizations:\\n - Fixed a bug that made computation of the stake distribution occur multiple times during an epoch [#804](https://github.com/input-output-hk/mithril/issues/804)\\n - Fixed a bug that created deadlocks on the SQLite connection [#807](https://github.com/input-output-hk/mithril/issues/807)\\n - Optimized the error message and the behavior of the signer node when KES keys have expired [#820](https://github.com/input-output-hk/mithril/issues/820)\\n - Upgraded the infrastructure of the `testing-preview` and `pre-release-preview` networks [#801](https://github.com/input-output-hk/mithril/issues/801)\\n - Re-genesis of the `testing-preview` network [#803](https://github.com/input-output-hk/mithril/issues/803)\\n - Re-genesis of the `pre-release-preview` network [#818](https://github.com/input-output-hk/mithril/issues/818)"},{"id":"2023-03-22-consensus","metadata":{"permalink":"/cardano-updates/2023-03-22-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-22-consensus.md","source":"@site/blog/2023-03-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":0.63,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"}},"content":"## High level summary\\n\\nThis week the consensus team continued working on the refactoring of the UTxO HD\\nprototype, and design and testing of Genesis. We also extracted the `fs-sim`\\npackage, which provides a file-system abstraction layer that can be used for\\ntesting and simulation. This makes the Consensus code base smaller, while\\nproviding a package that the community can reuse and contribute to. We also\\nfixed a failing property test related to iterators. We are also working on\\nmempool and VRF improvements.\\n\\n\\n## Low-level details\\n\\n- Extraction of `fs-sim` code from `ouroboros-network`:\\n - https://github.com/input-output-hk/ouroboros-network/pull/4425\\n - https://github.com/input-output-hk/fs-sim/pull/1\\n - https://github.com/input-output-hk/fs-sim/pull/2\\n - https://github.com/input-output-hk/ouroboros-network/pull/4460\\n- Smaller changes in `fs-sim` code (some required by `UTxO-HD`):\\n - https://github.com/input-output-hk/fs-sim/pull/5\\n - https://github.com/input-output-hk/fs-sim/pull/6\\n - https://github.com/input-output-hk/fs-sim/pull/7\\n - https://github.com/input-output-hk/fs-sim/pull/8\\n- Released cardano-lmdb-simple-0.6.0.0\\n - https://github.com/input-output-hk/lmdb-simple/pull/20\\n - https://github.com/input-output-hk/cardano-haskell-packages/pull/150"},{"id":"2023-03-22-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-03-22-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-22-performance-and-tracing.md","source":"@site/blog/2023-03-22-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.5,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-22-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"}},"content":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we\'re currently improving documentation and creating setup guidelines for end users.\\n* Analysis pipeline: Our refined metrics PR has been merged. We\'re working on including variance analysis to our reporting machinery.\\n* Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we\'re laying the groundwork for enabling GHC 9.2 in our benchmarks.\\n* Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.\\n* Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.\\n\\n# Performance\\n\\n### New tracing\\nThe new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.\\n\\n### GHC RTS parametrization\\nWe\'re currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.\\n\\n### Open Sourcing\\nOur API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we\'re refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.\\n\\n# Tracing\\nFor the new tracing system we\'re currently undertaking an effort to multi-layered documentation: a condensed version, as well\\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\\nfor users of the new system, depending on their wants and needs. \\n\\n# Infrastructure & Analysis\\n\\n### General\\nHaving included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we\'re laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\\nincrease confidence in specific metrics.\\n\\n### Nomad backend\\nWe have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We\'re confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries."},{"id":"2023-03-21-network","metadata":{"permalink":"/cardano-updates/2023-03-21-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-21-network.md","source":"@site/blog/2023-03-21-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-21T00:00:00.000Z","formattedDate":"March 21, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.315,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-21-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"}},"content":"## High level summary\\n\\nIn the last spring we released `cardano-node-1.35.6` with dynamic P2P\\nfunctionality.\\n\\nWe received reports from some SPOs who encountered problems with their non\\nP2P block producing nodes not being able to connect to their P2P relay. Karl\\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\\nit and found a bug in the legacy non p2p code. The bug is only possible to\\ntrigger with a P2P node which is binding its outbound connection port to\\na fixed IP address and port (default in p2p). A possible solution was found.\\nFor more information see [#4465].\\n\\nWe released `cardano-ping-0.1.0.0` package to `CHaP`. `cardano-ping` is no\\nlonger available as a standalone binary, but instead it will become part of\\n`cardano-cli` (see [#4664])\\n\\nWe are testing `cardano-node` with peer sharing functionality ([#4019]).\\n\\nWe are working on _eclipse evasion_. We added new class of peers: big ledger\\npeers to the outbound governor, implemented tests and fixed found issues\\n([#4462]). We also made the information if a given peer plays the role of\\na big ledger peer to the mini-protocols. This will allow to modify\\nmini-protocol applications for such peers. As part of this functionality we\\nrefactored some core types in the network code which simplifies exposed API.\\n\\nTogether with Moritz Angerman we started to update `io-sim` to `ghc-9.6.1` (see\\n[#73]).\\n\\nWe merged a fix of configuration of accepted connections limit in\\n`cardano-node` (see [#4902]).\\n\\n\\n[#4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[#4465]: https://github.com/input-output-hk/ouroboros-network/issues/4465\\n[#4664]: https://github.com/input-output-hk/cardano-node/pull/4664\\n[#73]: https://github.com/input-output-hk/io-sim/pull/73\\n[#4902]: https://github.com/input-output-hk/cardano-node/pull/4902"},{"id":"2023-03-17-hydra","metadata":{"permalink":"/cardano-updates/2023-03-17-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-17-hydra.md","source":"@site/blog/2023-03-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has continued work on the mainnet compatibility of the\\nhydra-node. They added a golden test suite for `hydra-plutus` scripts, added\\nsome detection of `hydra-node` misconfiguration, established a limit of 100 ADA\\nper commit and other smaller tasks to prepare for a mainnet beta release.\\n\\nNext week there will be a small team workshop to push for demonstrating a Hydra\\nHead on the Cardano mainnet, ideally just in time for the monthly review\\nmeeting. See the hydra channels on the IOG Technical Community discord server\\nfor details.\\n\\n## What did the team achieve this week\\n\\n- Implement a 100 ADA hard-coded commit limit in the hydra-node\\n [#763](https://github.com/input-output-hk/hydra/pull/763)\\n- Pay back funds to faucet after smoke-test run\\n [#773](https://github.com/input-output-hk/hydra/pull/773)\\n- Setup custom github runner for smoke-tests on mainnet\\n [#775](https://github.com/input-output-hk/hydra/pull/775)\\n- Created golden tests to assure the script hash stays the same between\\n changes [#772](https://github.com/input-output-hk/hydra/pull/772)\\n- Removed hardcoded error codes in plutus scripts\\n [#768](https://github.com/input-output-hk/hydra/pull/768)\\n- Detect misconfiguration of a hydra-node given persistent state\\n [#767](https://github.com/input-output-hk/hydra/pull/767)\\n- Met with potential users for hydra-pay\\n- Prepared hydra workshop\\n\\n## What are the goals of next week\\n\\n- Hydra monthly meeting\\n- Open a multi-party head on mainnet\\n- Complete mainnet compatibility feature"},{"id":"2023-03-17-ledger","metadata":{"permalink":"/cardano-updates/2023-03-17-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-17-ledger.md","source":"@site/blog/2023-03-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.415,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"}},"content":"## High level summary\\n\\nWe made further progress on the conway ledger era.\\nIn particular, we expanded the ledger API significantly, including lots of governance features.\\nWe also made progress on the specification and corresponding work in the Haskell implementation.\\n\\nWe also continued to integrate the latest ledger packages into cardano node and addressed\\ntechnical debt.\\n\\n## Low level summary\\n\\n### Expanded ledger API\\n\\nThe ledger API was significantly expanded to include:\\n* a lot of protocol parameter support\\n* versioning support (type level ledger eras and protocol versions)\\n* auxiliary data support\\n* many new lenses\\n* support for witnesses\\n* support for conway governance\\n\\nSee [pull-3328].\\n\\n### Conway ledger rules\\n\\nWe have made progress on the formal ledger specification for the Conway era.\\nMoreover, the corresponding Haskell updates were also completed:\\n\\n* See [pull-3339]\\n* See [pull-3326]\\n* See [pull-3330]\\n\\n### Incremental SPO/DRep stake distribution computation\\n\\nWe have a working (and correct) proof of concept for how to use the incremental lambda calculus\\nto maintain several of the stake distributions incrementally.\\nFor the per-SPO distribution, this is a performance improvement.\\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\\nto a DRep to have time to react to any votes that they disapprove of.\\n(Sorry, no code to share just yet, more to come.)\\n\\n### Technical debt\\n\\n* Improved CBOR testing facilities [pull-3332]\\n* GitHub actions improvement [pull-3320]\\n* Move ToJSON orphans from cardano-node [pull-3323] [pull-3338]\\n* Minor OCert improvements [pull-3327]\\n* Remove duplication [pull-3341]\\n* Enforce unique elements in CBOR sets [pull-3331] \\n\\n[pull-3320]: https://github.com/input-output-hk/cardano-ledger/pull/3320\\n[pull-3323]: https://github.com/input-output-hk/cardano-ledger/pull/3323\\n[pull-3326]: https://github.com/input-output-hk/cardano-ledger/pull/3326\\n[pull-3327]: https://github.com/input-output-hk/cardano-ledger/pull/3327\\n[pull-3328]: https://github.com/input-output-hk/cardano-ledger/pull/3328\\n[pull-3330]: https://github.com/input-output-hk/cardano-ledger/pull/3330\\n[pull-3331]: https://github.com/input-output-hk/cardano-ledger/pull/3331\\n[pull-3332]: https://github.com/input-output-hk/cardano-ledger/pull/3332\\n[pull-3338]: https://github.com/input-output-hk/cardano-ledger/pull/3338\\n[pull-3339]: https://github.com/input-output-hk/cardano-ledger/pull/3339\\n[pull-3341]: https://github.com/input-output-hk/cardano-ledger/pull/3341"},{"id":"2023-03-16-goedel","metadata":{"permalink":"/cardano-updates/2023-03-16-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-16-goedel.md","source":"@site/blog/2023-03-16-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-16T00:00:00.000Z","formattedDate":"March 16, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.55,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-16-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers\\nimproving the deltaQ tutorial, consulting on performance design, and\\nthe final version of the Djed paper.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for ICE 2023\\n\\n* Successful outcome of Marlowe consultancy leading to substantial\\n improvement in performance\\n\\n* Preparing sections on the communication language and bisimulation\\n proofs for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Camera ready version of Djed paper under preparation"},{"id":"2023-03-10-hydra","metadata":{"permalink":"/cardano-updates/2023-03-10-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-10-hydra.md","source":"@site/blog/2023-03-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-10T00:00:00.000Z","formattedDate":"March 10, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.825,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team addressed issues with committing complex UTxOs into a\\nHydra Head, prepared the `hydra-node` to be run on mainnet (soon) and improved\\nthe test suite of the `hydra-plutus` scripts. The specification is constantly\\ngetting improved upon reviewer feedback on overleaf - this week the graphical\\nnotation was refined to be more transaction-focused.\\n\\n## What did the team achieve this week\\n\\n- Clarified “bug” of committing UTxOs with reference scripts to a Hydra head [#737](https://github.com/input-output-hk/hydra/issues/737)\\n- Prepare usage of `hydra-node` on mainnet by updating command line options [#715](https://github.com/input-output-hk/hydra/pull/715)\\n- Improved our mutation test suite to all expected errors [#705](https://github.com/input-output-hk/hydra/issues/705)\\n- Re-opened our persistent hydraw demo head on `preprod` using version `0.9.0`\\n- Updated on-chain graphs to be more transaction-focused in the specification\\n\\n## What are the goals of next week\\n\\n- Complete mainnet compatibility feature\\n- Prepare the Hydra workshop\\n- Address all todo\u2019s in the Hydra specification\\n- Unblock the auctions project with “commit from script” a solution"},{"id":"2023-03-09-mithril","metadata":{"permalink":"/cardano-updates/2023-03-09-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-09-mithril.md","source":"@site/blog/2023-03-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-09T00:00:00.000Z","formattedDate":"March 9, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.42,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-08-consensus"}},"content":"## High level overview\\nThe Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano `mainnet` and computes the stake distribution with the optimized unreleased Cardano CLI command.\\n\\nFinally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.\\n\\n## Low level overview\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the deployment of the era behavior switch to the test networks [#752](https://github.com/input-output-hk/mithril/issues/752)\\n - Completed the enhancement of datum generation for era markers [#786](https://github.com/input-output-hk/mithril/issues/786)\\n - Worked on handling the API version with an era switch [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Worked on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n- Completed the refactoring of errors in the signer and aggregator state machines [#665](https://github.com/input-output-hk/mithril/issues/665)\\n- Worked on testing Mithril with a `mainnet` Cardano network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Worked on fixing bugs with the Docker client image:\\n - Fixed a bug that made the Docker client container crash at startup [#769](https://github.com/input-output-hk/mithril/issues/769)\\n - Fixed a bug that prevented the restoration of a snapshot with a Docker client [#791](https://github.com/input-output-hk/mithril/issues/791)\\n - Worked on testing the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)"},{"id":"2023-03-08-consensus","metadata":{"permalink":"/cardano-updates/2023-03-08-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-08-consensus.md","source":"@site/blog/2023-03-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.46,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-09-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-08-performance-and-tracing"}},"content":"## High level summary\\n\\nThe Consensus team continued working on refactoring and improving the UTxO-HD\\nprototype, and introducing improvements to the `lmdb` related packages. In\\nparticular we identified an opportunity to gain performance by handling locks in\\na more optimal way.\\n\\nOn the Genesis front, we sketched a mitigation for an issue that `PNSol` and\\nResearchers caught. We also came op with a road map for not only testing the\\nGenesis prototypes, but also for enriching the tests we already have.\\n\\nRegarding technical debt, next to some minor improvements, we created\\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\\nresults of these benchmarks will be published in the `ouroboros-consensus` [web\\npage][oc-web-page].\\n\\nWe also finished moving the Consensus documentation to the `ouroboros-consensus`\\nrepository, released `ouroboros-consensus` `0.3.0.0`, and reduced the time\\nGitHub actions take in `ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD Prototype\\n\\nWe continued working on refactoring and improving the UTxO-HD prototype. As a\\nresult of the first round of sytem-level benchmarks, we identified an\\nopportunity to optimise the way we handle locks to improve performance\\n([#4393][issue-4393]).\\n\\nAlso, we introduced several improvements to the `lmdb` related packages:\\n- [New tests][pull-19] for read-only transaction handles.\\n- [New functions][pull-18] and [data types][pull-13].\\n- [Updates][pull-11] to support improved type safety and smaller constraints in\\n the UTxO HD prototype.\\n- Windows and MacOS [CI support][pull-8].\\n\\n### Genesis\\n\\nWe sketched out a mitigation of the issue that `PNSol` and Researchers caught in\\nthe Genesis design.\\n\\nWe came up with a road map for testing the Genesis prototypes, including early\\nmilestones that are applicable to today\'s master branch, ie tests that are\\nuseful before Genesis, and that will be nicely enriched when we do add Genesis.\\n\\nWe developed the aforementioned tests, specifically a `QuickCheck` generator for\\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\\nleader schedule that together satisfy the Praos properties that the Consensus\\ndesign takes as invariants.\\n\\nWe investigated why the improved `ChainDB` queueing implementation behaves\\ndifferently in the baseline compared to the prototype, and we are close to\\nhaving a full picture of how the Consensus components interact during bulk sync.\\n\\n### Technical debt\\n\\nWe [created][pull-4400] component-level micro-benchmarks for adding transactions\\nto the mempool. We plan on extending this to more mempool actions and different\\ntypes of blocks. We [store][pull-4422] the benchmark data to make it available\\nto the GitHub action that [publishes][pull-12] the benchmarks results.\\n\\nOther minor improvements include:\\n\\n- [Removal][pull-4429] of `Test.Util.Classify` in favour of `Test.StateMachine.Labelling`.\\n- [Addition][pull-4423] of `-Wunused-packages` to the default `ghc-options` for Consensus\\n packages.\\n\\n### Fostering collaboration\\n\\nWe finished moving the Consensus documentation [from][pull-4374]\\n`ouroboros-network` [to][pull-8] `ouroboros-consensus`, in preparation for\\nmigrating the code to the latter repository.\\n\\n### Support\\n\\nWe [released][pull-4412] ouroboros-consensus 0.3.0.0.\\n\\nWe [reduced][pull-4421] the load in the `ouroboros-network` GitHub actions,\\nthereby reducing the time CI jobs take.\\n\\n[issue-4393]: https://github.com/input-output-hk/ouroboros-network/issues/4393\\n[pull-19]: https://github.com/input-output-hk/lmdb-simple/pull/19\\n[pull-18]: https://github.com/input-output-hk/lmdb-simple/pull/18\\n[pull-13]: https://github.com/input-output-hk/lmdb-simple/pull/13\\n[pull-11]: https://github.com/input-output-hk/lmdb-simple/pull/11\\n[pull-8]: https://github.com/input-output-hk/haskell-lmdb/pull/8\\n[pull-4400]: https://github.com/input-output-hk/ouroboros-network/pull/4400\\n[pull-4422]: https://github.com/input-output-hk/ouroboros-network/pull/4422\\n[pull-12]: https://github.com/input-output-hk/ouroboros-consensus/pull/12\\n[pull-4429]: https://github.com/input-output-hk/ouroboros-network/pull/4429\\n[pull-4423]: https://github.com/input-output-hk/ouroboros-network/pull/4423\\n[pull-4374]: https://github.com/input-output-hk/ouroboros-network/pull/4374\\n[pull-8]: https://github.com/input-output-hk/ouroboros-consensus/pull/8\\n[pull-4412]: https://github.com/input-output-hk/ouroboros-network/pull/4412\\n[pull-4421]: https://github.com/input-output-hk/ouroboros-network/pull/4421\\n[oc-web-page]: https://input-output-hk.github.io/ouroboros-consensus/"},{"id":"2023-03-08-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-03-08-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-08-performance-and-tracing.md","source":"@site/blog/2023-03-08-performance-and-tracing.md","title":"Performance & tracing update","description":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.805,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-08-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-08-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-03-03-crypto"}},"content":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.\\n* Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.\\n* Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.\\n* Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.\\n\\n\\n# Performance\\n\\n### 1.35.6 release\\nBenchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.\\n\\n### Analysis pipeline\\nOur analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\\ndata more easily accessible.\\n\\n### Open Sourcing\\nAs a prerequisite for going live with our benchmarking data, we\'re currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we\'ve begun working on a small visualization demo and interactive API documentation. Those will enable \\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example.\\n\\n# Tracing\\nThe new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.\\n\\n# Infrastructure\\n\\n### Nomad backend\\nThe Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented."},{"id":"2023-03-03-crypto","metadata":{"permalink":"/cardano-updates/2023-03-03-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-crypto.md","source":"@site/blog/2023-03-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-03-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.\\n* cardano-base: BLS branch is now ready for review. We are workign forward its merge. \\n* KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.\\n* Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs\\n## Low level summary\\n### Mithril\\n* Bumped to version [0.2.0](https://crates.io/crates/kes-summed-ed25519/0.2.0) the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using `mlock`.\\n* Opened [PR#783](https://github.com/input-output-hk/mithril/pull/783) to update dependency\\n* Improved testing for batch opening of mtree, [PR#773](https://github.com/input-output-hk/mithril/pull/773)\\n* Improved testing for batch verification of STM sigs [PR#774](https://github.com/input-output-hk/mithril/pull/774)\\n* RFP for crypto audit almost ready.\\n### cardano-base\\n* BLS12-381 branch finally ready for review [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n### KES agent\\nTeam off for one week. Other progress:\\n- Learning about raw direct-bearer abstraction. An interface for sockets in consensus.\\n- use that for direct ser/deser\\n- written those syntaxes for ouroboros (coming PR)\\n- the kes agent will depend on that. \\t\\n### Sidechains\\nProgress with familiarisation of Halo2 library to write circuits."},{"id":"2023-03-03-goedel","metadata":{"permalink":"/cardano-updates/2023-03-03-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-goedel.md","source":"@site/blog/2023-03-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.815,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-03-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, improving the deltaQ tutorial, consulting on\\nperformance design, and the Djed paper has been accepted for\\npublication.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for FORTE 2023\\n\\n* Extending the technical report on which the above paper is based\\n\\n* Consulting with an external company on performance engineering of Plutus contracts\\n\\n* Planning improvements and collecting material for the deltaQ\\n tutorial based on experience with systems that manage risk at\\n multiple timescales\\n\\n* Preparing sections on the communication language and idempontency\\n laws for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Studying Cardano chain sync protocol\\n\\n* \\"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\\n Protocol\\" has been accepted for publication at IEEE ICBC 2023"},{"id":"2023-03-03-hydra","metadata":{"permalink":"/cardano-updates/2023-03-03-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-hydra.md","source":"@site/blog/2023-03-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.19,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-03-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version\\n[0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0) - a version\\nof the `hydra-node` with fully specified behavior of on-chain scripts and\\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\\ncontestation deadline semantics. Check out the full release notes for details.\\n\\nFurthermore, they published the [monthly\\nreport](https://hydra.family/head-protocol/monthly/2023-03) of the Hydra project\\nand conducted a review meeting with an increasingly wider audience. The team\\nplans to extend invitations through the new Hydra\\n[#announcements](https://discord.gg/Bwdy2jNdm2) discord channel for the next\\nmonths, stay tuned!\\n\\n## What did the team achieve this week\\n\\n- Monthly review meeting with report published [on website](https://hydra.family/head-protocol/monthly/2023-03)\\n- Fixed smoke tests [#726](https://github.com/input-output-hk/hydra/pull/726)\\n- Reduced the cost of opening/closing a Head (error codes [#748](https://github.com/input-output-hk/hydra/pull/748) + head reference script [#701](https://github.com/input-output-hk/hydra/pull/701))\\n- Released version [0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0)\\n- Conducted a first experiment on mainnet compatibility [#713](https://github.com/input-output-hk/hydra/issues/713)\\n- New discord category with [#announcements](https://discord.gg/Bwdy2jNdm2) channel\\n- Received a demo about the Hydra for Voting project\\n- Lightning talk on mutation-based testing (to be shared)\\n- New [themes view](https://github.com/orgs/input-output-hk/projects/21/views/26) in on our roadmap and some rearranging as we align it with high-level objectives\\n- Clarified things with researchers, but mostly identified action items for them\\n\\n## What are the goals of next week\\n\\n- Redraw transaction graphs and address TODOs specification\\n- Run hydraw with 0.9.0 on preprod\\n- Make smoke tests on mainnet possible\\n- Groom the explorer item\\n- Unblock the auctions projecth with “commit from script” a solution"},{"id":"2023-03-03-ledger","metadata":{"permalink":"/cardano-updates/2023-03-03-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-03-ledger.md","source":"@site/blog/2023-03-03-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-03-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-02-network"}},"content":"## High level summary\\n\\nWe have focused the last two weeks on CIP-1694, integration of the last several months of ledger\\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.\\n\\n## Low level summary\\n\\n### Conway rules\\n\\nWe made a major update to the conway era so that the implementation is now in sync with the spec\\nwith respect to the ratification and enactment logic.\\n\\nSee the notes in [pull-3291] for more details.\\n\\n### Constraint based generators\\n\\nThis week we hit a major milestone in our efforts to build out better property based testing\\nsupport for the main ledger properties.\\nThe new constraint based generators can now generate full ledger states with what is probably\\nvery close to the real constraints (if anything, it is under constrained).\\nNext we will work on generating a transaction in the context of a ledger state, which would allow\\nus to actually start using these generators for real tests.\\n\\nSee [pull-3219].\\n\\n### Preparing a release, now with proper versioning\\n\\nAfter quite some time, we are ready to release a version of ledger that will work with a new\\nversion of consensus, using CHaPs.\\n\\nSee [pull-3308].\\n\\n### Technical debt\\n\\n* We cleaned up the redeemer serialization code (to prevent future mistakes). See [pull-3269].\\n* We added a note to the Alonzo spec, specifying that the transaction inputs are\\n lexicographically ordered in the Plutus script context. See [pull-3306].\\n* We fixed a problem with the address deserialiazation\\n (we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\\n See [pull-3307].\\n* We fixed a problem with our nix build. See [pull-3311].\\n* We fixed a problem with our `NoThunks` tests. See [pull-3310].\\n* We improved our nightly tests. See [pull-3316].\\n\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3306]: https://github.com/input-output-hk/cardano-ledger/pull/3306\\n[pull-3307]: https://github.com/input-output-hk/cardano-ledger/pull/3307\\n[pull-3308]: https://github.com/input-output-hk/cardano-ledger/pull/3308\\n[pull-3310]: https://github.com/input-output-hk/cardano-ledger/pull/3310\\n[pull-3311]: https://github.com/input-output-hk/cardano-ledger/pull/3311\\n[pull-3316]: https://github.com/input-output-hk/cardano-ledger/pull/3316"},{"id":"2023-03-02-network","metadata":{"permalink":"/cardano-updates/2023-03-02-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-02-network.md","source":"@site/blog/2023-03-02-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-02T00:00:00.000Z","formattedDate":"March 2, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.85,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-02-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-03-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-24-hydra"}},"content":"## High level summary\\n\\nIn the current sprint the networking team focused on fixing bugs and pushing\\nforward implementation of eclipse evasion. We also found a bug in our\\nsimulation testing setup (in integration of test node). We also overviewed the\\nwork on extending handshake protocol which is delivered by Galois Inc.\\n\\nWe published `ouroboros-netork-0.4.0.1` and\\n`ouroboros-network-protocols-0.3.0.0` to [CHaP][PR #147].\\n\\nWe also fixed a bug in `cardano-node` which results in not being able to\\nconfigure inbound connection limits, see [PR #4902].\\n\\nTogether with Karl Knutsson (CF) we realised an issue in `cardano-cli`: it\'s\\nvalidation of DNS names, IP address & ports when registering a stake pool\\nshould be more strict to protect against common mistakes which we identified on\\nthe chain. See [issue #4929].\\n\\n## Detailed work log\\n\\nIn [PR #4385] we fixed two bugs in peer state actions. First one results in\\na busy loop if demotion from hot to warm times outs. This busy loop is\\neventually exited when mux exits (we reported this in our previous report).\\nThis fix made it to `1.35.6` release as well.\\n\\nIn addition the [PR #4385] also fixes another bug which results in `hot -> warm\\n-> hot` demotion / promotion busy loop.\\n\\nThe [PR #4385] also fixed a bug in a node only used in simulation which\\nresulted in not using `chain-sync` or `block-fetch` mini-protocols. In the\\nreview process, we realised that the header-body split in the simulated node\\nrequires further work (see [PR #4419], which is under review).\\n\\nThe [PR #4385] also extend our generators, which together with the above fix,\\ncover the `hot -> warm -> hot` demotion / promotion busy loop.\\n\\nIn [PR #4419] we introduce a `ChainDB` for our simulation node, which plays\\nsimilar role to `ChainDB` in the `ouroboros-consensus`: a persistent (across\\nsimulated restarts) store of blocks which does chain selection. This ensures\\nthat the simulated node is using `block-fetch` to download blocks announced by\\n`chain-sync` mini-protocol.\\n\\nWe also made progress with reviewing [PR #4019] - peer sharing.\\n\\nWe also fixed [issue #4370] - a connection manager test failure, see [PR #4384].\\n\\n[PR #147]: https://github.com/input-output-hk/cardano-haskell-packages/pull/147\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4384]: https://github.com/input-output-hk/ouroboros-network/pull/4384\\n[PR #4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[PR #4419]: https://github.com/input-output-hk/ouroboros-network/pull/4419\\n[PR #4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n[issue #4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue #4929]: https://github.com/input-output-hk/cardano-node/issues/4929"},{"id":"2023-02-24-hydra","metadata":{"permalink":"/cardano-updates/2023-02-24-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-24-hydra.md","source":"@site/blog/2023-02-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-24T00:00:00.000Z","formattedDate":"February 24, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-24-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-02-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-23-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team continue closing many gaps and aligning the\\nimplementation with the specification. More over, they have groomed a plan to\\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\\ninternal auditing and have published some auditing guidelines to receive\\ncontributions from the community.\\n\\n## What did the team achieve this week\\n\\n- Completed [#452](https://github.com/input-output-hk/hydra/issues/452) (what is\\n remaining in there)\\n- Aligned the Head protocol logic implementation with the specification\\n- Completed full minting policy implementation and spec\\n [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Clarified message authentication with researchers\\n- Groomed what is left to do for Mainnet compatibility\\n [#713](https://github.com/input-output-hk/hydra/issues/713) and drafted a\\n 0.10.0 version\\n- Added a tutorial by [@perturbing](https://github.com/perturbing/) to the\\n website [LINK](https://hydra.family/head-protocol/docs/tutorial/)\\n- Published auditing guidelines\\n [LINK](https://hydra.family/head-protocol/audit-guidelines)\\n- Made hydra-node work for macos\\n [#746](https://github.com/input-output-hk/hydra/issues/746) and added support\\n for building on aarch64\\n [#673](https://github.com/input-output-hk/hydra/issues/673)\\n- Met with a potential customer of Hydra for Payments\\n\\n## What are the goals of next week\\n\\n- Have the monthly review meeting incl. the report\\n- Have smoke tests fixed and running regularly\\n- Release 0.9.0 with updated scripts\\n- Redraw transaction graphs for specification"},{"id":"2023-02-23-mithril","metadata":{"permalink":"/cardano-updates/2023-02-23-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-23-mithril.md","source":"@site/blog/2023-02-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.47,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-24-hydra"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-23-performance-and-tracing"}},"content":"## High level overview\\nThe Mithril team released a new [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0) distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes\u2019 CLI that allows generating and signing an era marker\u2019s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.\\n\\n## Low level overview\\n- Released the new distribution [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0)\\n- Completed the epic that implements signer versions deployment monitoring [#718](https://github.com/input-output-hk/mithril/issues/718):\\n - Completed the implementation an event producer/consumer via channel [#738](https://github.com/input-output-hk/mithril/issues/738)\\n - Completed the creation of a database and its configuration to save the events on the consumer side [#740](https://github.com/input-output-hk/mithril/issues/740)\\n - Completed the creation of events and sending them on the channel on the producer side [#741](https://github.com/input-output-hk/mithril/issues/741)\\n - Completed the creation of the signer registration event [#742](https://github.com/input-output-hk/mithril/issues/742)\\n - Completed the creation a query to extract the node versions stakes distribution [#743](https://github.com/input-output-hk/mithril/issues/743)\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the loading of era reader adapters from config in the signer and the aggregator [#732](https://github.com/input-output-hk/mithril/issues/732)\\n - Completed the implementation of an era cli command in the aggregator [#755](https://github.com/input-output-hk/mithril/issues/755)\\n - Completed the implementation of a dynamic matrix of cases in CI end to end tests [#760](https://github.com/input-output-hk/mithril/issues/760)\\n- Fixed some bugs:\\n - Fixed the unsupported `unixepoch()` function [#757](https://github.com/input-output-hk/mithril/issues/757)\\n - Fixed the problem that prevented some signers from signing on the `testing-preview` network [#730](https://github.com/input-output-hk/mithril/issues/730)\\n - Update SQLite version to `3.40` in aggregator infrastructure [#765](https://github.com/input-output-hk/mithril/issues/765)"},{"id":"2023-02-23-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-02-23-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-23-performance-and-tracing.md","source":"@site/blog/2023-02-23-performance-and-tracing.md","title":"Performance & tracing update","description":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.245,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Engineer","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-23-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-23-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-22-consensus"}},"content":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.\\n* Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.\\n* UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.\\n* New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.\\n* Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.\\n* Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.\\n\\n# Performance\\n\\n### SECP\\n1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.\\n2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.\\n3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking. \\n\\n### UTxO-HD\\n1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.\\n2. We\'re currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.\\n\\n### 1.35.6 release\\nBenchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.\\n\\n# Tracing\\nWork on the new tracing system\'s introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.\\n\\n# Infrastructure\\n\\n### Nomad backend\\n1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.\\n2. Locality assumptions were removed and job monitoring was refactored.\\n3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.\\n4. We\'re currently evaluating different options for genesis distribution in said cluster.\\n\\n### NixOps backend\\nThe NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery."},{"id":"2023-02-22-consensus","metadata":{"permalink":"/cardano-updates/2023-02-22-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-22-consensus.md","source":"@site/blog/2023-02-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-22T00:00:00.000Z","formattedDate":"February 22, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.45,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-23-performance-and-tracing"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-02-21-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks we got the results from the system level benchmarks\\nfor UTxO HD. They showed a substantial performance regression, so we spent some\\ntime analyzing the results. We found out the frequency at which ledger snapshots\\nwere taken was too high, so we requested the benchmarking team a new run with a\\nmore realistic snapshotting policy. We continued refactoring and improving the\\nprototype, and we released UTxO-HD related packages to CHaP.\\n\\nWe met with IOG researchers and networking specialists to discuss the Genesis\\ndesign, which was well received. We continued working on testing and\\nbenchmarking different Genesis prototypes.\\n\\nWe are also working on solving a test failure related to iterators. This work\\nderived in several improvements such as better documentation, a framework for\\nwriting unit (and regression) tests, and the possibility of debugging\\n`QuickCheck` counter examples in the REPL.\\n\\nFinally, we released `ouroboros-consensus` 0.2.0.0 and\\n`ouroboros-consensus-cardano` 0.3.0.0 to CHaP\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe got the results of the first system level benchmarks for UTxO HD. They seemed\\nto indicate a significant regression in performance. After looking into the\\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\\noften, due to the default snapshotting policy depending on `k`, and `k` being so\\nsmall in the benchmark runs. Therefore, the next step is to re-run the\\nbenchmarks with a snapshotting policy that more closely resembles the one from\\nmainnet.\\n\\nAt the same time, we continued refactoring and cleaning up the prototype. \\n\\nAlso, we prepared the `anti-diff` packages (`fingertree-rm`, `diff-containers`,\\n`simple-semigroupoids`) and the `lmdb` related packages (`cardano-lmdb` and\\n`cardano-lmdb-simple`) to [CHaP][chap].\\n\\n### Genesis\\n\\nThe Genesis design was presented to the IOG researchers and Peter Thompson from\\nNSol. It was well received. They pointed out one blindspot, but we think it\'ll\\nbe relatively simple to mitigate.\\n\\nIn parallel, we continued developing test and benchmarks for the Genesis\\nprototypes. I particular we tested and implemented a potential fix for\\n[increased ChainDB dequeue timings][increased-dequeue-timings], which partly\\nbehaved as we expected, but still needs further investigation. Also we obtained\\n[new benchmarking data][new-bench-data] for the prototype.\\n\\n### Technical debt\\n\\nRelated to [#4183][pull-4183], we developed a [DSL][pull-4379] for specifying\\n`ChainDB` unit tests. This will allow us to better understand the\\ncounter-examples returned by QuickCheck tests, and to write [regression\\ntests][pull-4383] for them. Also, we [added a module][pull-4358] to enable\\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\\nfeedback. Also, we improved the documentation related to followers\\n([#4372][pull-4372]).\\n\\nWe are also working on a design for optimizing the way we handle blocks from the\\nfuture.\\n\\n### Support\\n\\nWe released `ouroboros-consensus` 0.2.0.0 and `ouroboros-consensus-cardano`\\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\\ncode, and another bundle with instantiations specific to Cardano.\\n\\n[new-bench-data]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1434745031\\n[increased-dequeue-timings]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1439708022\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages\\n[pull-4358]: https://github.com/input-output-hk/ouroboros-network/pull/4358\\n[pull-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4372]: https://github.com/input-output-hk/ouroboros-network/pull/4372\\n[pull-4379]: https://github.com/input-output-hk/ouroboros-network/pull/4379\\n[pull-4383]: https://github.com/input-output-hk/ouroboros-network/pull/4383"},{"id":"2023-02-21-db-sync","metadata":{"permalink":"/cardano-updates/2023-02-21-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-21-db-sync.md","source":"@site/blog/2023-02-21-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-02-21T00:00:00.000Z","formattedDate":"February 21, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-02-21-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-22-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-17-crypto"}},"content":"## High level summary\\n\\nThe db-sync team created a new tag `13.1.0.2` which is ready to release.\\nWe also investigated and had the first working UTxO-HD integration which is one\\nof the potential future risks for db-sync.\\n\\n## Low level summary\\n\\n- Integrated the UTxO-HD feauture branch in `kderme/utxo-hd-1`. This doesn\'t\\nuse the full on disk storage but keeps things in memory and the plan is to keep\\nit this way for the first iteration. The integration still has some performance\\nissues which we investigate\\n- Created tag `13.1.0.2` which upgrades the dependencies of db-sync\\n- Fixed an issue related to errors appearing in SMASH\\n[#1353](https://github.com/input-output-hk/cardano-db-sync/pull/1353)\\n- Continued with ghc-9.2 integration\\n[#1339](https://github.com/input-output-hk/cardano-db-sync/pull/1339)\\n- Worked on an new fixing procedure for\\n[#1348](https://github.com/input-output-hk/cardano-db-sync/issues/1348).\\nWe try to make these procedures work also on older schema version, without the\\nneed to migrate to newer schema, which can be very useful for fixing existing\\nsnapshots."},{"id":"2023-02-17-crypto","metadata":{"permalink":"/cardano-updates/2023-02-17-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-crypto.md","source":"@site/blog/2023-02-17-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.43,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-17-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-02-21-db-sync"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-17-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril\'s core library (decided to add audit of KES). Design proposal for viable registration.\\n* cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.\\n* KES agent: using snockets and making things testable in IOSim\\n* MuSig2: started implementation in rust.\\n\\n## Low level summary\\n\\n### Mithril\\n* Transmute helpers merged [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope. \\n* We are working in a modification of KES to require caller to allocate the secret key buffer.\\n* Proposed a solution for signer registration of [Mithril](https://github.com/input-output-hk/mithril/wiki/Mithril-registration-procedure#cost).\\n### cardano-base\\n* Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 [proof](https://github.com/input-output-hk/plutus/tree/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks).\\n\\t* Results are promising, with using only 23% of the execution budget to verify a realistic proof. \\n\\t* Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.\\n* KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.\\n* Conversion finally merged [PR#344](https://github.com/input-output-hk/cardano-base/pull/344).\\n\\n### KES agent\\n* Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation\\n* Figuring out how to go from fake file descriptor to write the raw bytes\\n\\n### MuSig2\\n* Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental."},{"id":"2023-02-17-goedel","metadata":{"permalink":"/cardano-updates/2023-02-17-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-goedel.md","source":"@site/blog/2023-02-17-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.53,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-17-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-17-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-17-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, distributivity properties of deltaQ, and consulting\\non performance design with the Marlowe team.\\n\\n## Details\\n\\n* Processing reviews on performance engineering paper and planning\\n paper revisions accordingly\\n\\n* Investigating distributivity properties of DeltaQ\\n\\n* Preparing sections on the thorn calculus and idempotency laws for\\n draft paper about verifying design refinements for distributed\\n system design\\n\\n* Consulting on performance design with Marlowe team"},{"id":"2023-02-17-hydra","metadata":{"permalink":"/cardano-updates/2023-02-17-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-hydra.md","source":"@site/blog/2023-02-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-17-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed work on dealing differently with contests\\nduring the contestation period. These will now always push out the deadline and\\nhence contestation periods are easier to pick (depending on the network a Head\\nruns on). Furthermore, they added an important acceptance test and completed\\ninternal refactoring of the protocol logic making future changes easier.\\n\\n## What did the team achieve this week\\n\\n- Push contestation deadline on each contest [#716](https://github.com/input-output-hk/hydra/pull/716)\\n- Wrote an acceptance (property) test “can always close/fanout when collect is successful”\\n- Internal refactoring of our `HeadLogic`\\n- Groomed remaining things from [#452](https://github.com/input-output-hk/hydra/issues/452) into dedicated features\\n\\n## What are the goals of next week\\n\\n- Complete full minting policy [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Release 0.9.0 with updated scripts\\n- Plan mainnet milestone and a 0.10.0 version\\n- Redraw transaction graphs for specification (upon feedback)\\n- Have smoke tests fixed and running regularly"},{"id":"2023-02-17-ledger","metadata":{"permalink":"/cardano-updates/2023-02-17-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-ledger.md","source":"@site/blog/2023-02-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.33,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-17-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-02-17-network"}},"content":"## High level summary\\n\\nThis past two weeks saw many months worth of ledger changes integrated with the `cardano-base`\\nand `ouroboros-network` repositories.\\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\\n(and the interplay with `cardano-base`) which now support proper versioning.\\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\\nto a whole new system of governance, also played a noticeable part in the integration.\\n\\nBesides the integration work, the team continues to address technical debt, improve the\\ndocumentation, make our testing infrastructure better (such as experimenting with better\\nnightly tests), and formally specifying more parts of CIP-1694.\\n\\n## Lower level summary\\n\\n### Integration work\\n\\nBelow is all the integration work completed, which will enable a release to node from\\nthe current ledger master. Many thanks to\\n[Alexey](https://github.com/lehins) for this colossal undertaking!\\n\\n* [pull-3303]\\n* [pull-3302]\\n* [pull-3300]\\n* [pull-3299]\\n* [pull-3298]\\n* [pull-3297]\\n* [pull-3292]\\n* [pull-3289]\\n* [pull-3288]\\n* [pull-3279]\\n* [pull-3282]\\n* [pull-4349]\\n\\n### Technical debt\\n\\nStarting in major protocol version 9, zero-valued multi-assets will no longer be permitted\\nin the CBOR specification. See [pull-3241].\\n\\nWe now have our `.cabal` files being checked for a consistent formatting given by\\n`cabal format` in our CI. See [pull-3286].\\n\\nWe are still experimenting with better nightly tests for our long running\\nproperty based tests. See [pull-3276] and [pull-3296].\\n\\n### Small documentation improvements\\n\\nThe hand proofs of the preservation ADA property have been added back to the\\nShelley ledger specification. See [pull-3295].\\n\\nWe have clarified how the script integrity hash is computed in the CDDL description.\\nSee [pull-3290].\\n\\n### Specifying CIP-1694\\n\\nOur new formal specifications backed by Agda have seen a lot of progress!\\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\\nand we no longer have to rely on our custom fork. See [pull-50].\\n\\nOur progress on formally specifying CIP-1694 can be followed here:\\n* in Agda: [pull-40]\\n* the corresponding Haskell: [pull-3291]\\n\\n### Constraint based testing\\n\\nWe are still actively working on our new constraint based property testing framework.\\nWe have nearly all of the constraints for an entire ledger state\\nhooked into generators, and tests that the generators do indeed obey the constraints.\\nThe variable count in the constraints is over 100!\\nThere is still much work to do on shrinking, making the generators faster,\\nand writing actual property tests for the ledger, but the approach still seems viable and\\nwe are hopeful that it could replace our trace generators.\\nThe WIP can be followed here: [pull-3219].\\n\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3279]: https://github.com/input-output-hk/cardano-ledger/pull/3279\\n[pull-3282]: https://github.com/input-output-hk/cardano-ledger/pull/3282\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n\\n[pull-50]: https://github.com/input-output-hk/formal-ledger-specifications/pull/50\\n[pull-40]: https://github.com/input-output-hk/formal-ledger-specifications/pull/40\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349"},{"id":"2023-02-17-network","metadata":{"permalink":"/cardano-updates/2023-02-17-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-17-network.md","source":"@site/blog/2023-02-17-network.md","title":"Network Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":0.865,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-02-17-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-10-hydra"}},"content":"## High level summary\\n\\nRecently QA found a bug in P2P code, which results in busy loops. We added one\\nfix to `1.35.6` release, another one will likely be part of next release. The\\nfirst one is already included in `ouroboros-network-0.3.0.1` release. These\\nbugs could only affect nodes which are out of sync and thus should not impose\\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\\none of the relays as a P2P node, which shields from possible consequences.\\n\\nWe recently finished design phase of eclipse evasion and we started\\nimplementing it (see [issue #3886] for progress).\\n\\nGalois finished implementing Handshake extension which will allow to query\\nnetwork protocol versions (see [pr #4256]).\\n\\nWe also recently released a newer set of network packages to be integrated with\\n`cardano-node` `master` branch, this includes:\\n * monoidal-synchronisation-0.1.0.2\\n * cardano-client-0.1.0.2\\n * network-mux-0.3.0.0\\n * ouroboros-network-api-0.1.0.0\\n * ouroboros-network-protocols-0.2.0.0\\n * ouroboros-network-testing-0.2.0.1\\n * ouroboros-network-mock-0.1.0.0\\n * ouroboros-network-framework-0.3.0.0\\n * ouroboros-network-0.4.0.0 (it doesn\'t not yet include the fix we included\\n in `0.3.0.1`)\\n\\n[issue #3886]: https://github.com/orgs/input-output-hk/projects/19/views/16?pane=issue&itemId=19819205\\n[pr #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256"},{"id":"2023-02-10-hydra","metadata":{"permalink":"/cardano-updates/2023-02-10-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-10-hydra.md","source":"@site/blog/2023-02-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-10T00:00:00.000Z","formattedDate":"February 10, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.14,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-02-17-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team closed several gaps to align the Hydra scripts\\nimplementation further with the specification. This also resulted in a slight\\nimprovement on Hydra script size and costs. They consequently analysed the\\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\\nprofiling toolchain was evaluated and set up for future improvements on Hydra\\non-chain performance. In discussions with researchers and internal auditors,\\nthey also uncovered next steps on further securing the Head protocl using a\\n\\"full\\" minting policy.\\n\\n## What did the team achieve this week\\n\\n- Closed several gaps to align script implementation with specification [#452](https://github.com/input-output-hk/hydra/issues/452)\\n - Allow contest only once [#680](https://github.com/input-output-hk/hydra/pull/680)\\n - Optimization through head output at index 0 [#700](https://github.com/input-output-hk/hydra/pull/700)\\n - Value is preserved [#702](https://github.com/input-output-hk/hydra/pull/702) + optimized exact value equality [#709](https://github.com/input-output-hk/hydra/pull/709)\\n- Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to [#721](https://github.com/input-output-hk/hydra/pull/721)\\n ![](https://user-images.githubusercontent.com/2621189/218124686-7a85b40d-12f7-4b00-ad16-128c99f5b707.png)\\n- Fixed our tooling around the Haskell language server\\n- Discussed full minting policy with researchers\\n- Started grooming \u201cwhat we need for mainnet\u201d on [this](https://github.com/input-output-hk/hydra/issues/713) idea ticket and [milestone](https://github.com/input-output-hk/hydra/milestone/8)\\n\\n## What are the goals of next week\\n\\n- Implement full minting policy\\n- All remaining protocol discrepancies are implemented or groomed as individual features\\n- Ideally release 0.9.0 with updated scripts\\n- Discuss what we need for mainnet (milestone planning)\\n- Redraw transaction graphs for specification (upon feedback)"},{"id":"2023-02-09-mithril","metadata":{"permalink":"/cardano-updates/2023-02-09-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-09-mithril.md","source":"@site/blog/2023-02-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-09T00:00:00.000Z","formattedDate":"February 9, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-08-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1) distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.\\n\\nFinally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version `1.35.5` on their `devnet` and infrastructure.\\n\\n## Low level overview\\n- Released the new distribution [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1)\\n- Fixed a bug that prevented some signers to sign with `2304.0-prerelease` [#716](https://github.com/input-output-hk/mithril/issues/716)\\n- Completed the implementation of an `EraChecker` that checks if an era is active [#708](https://github.com/input-output-hk/mithril/issues/708)\\n- Completed the implementation of an `EraReader` that gathers era activation data [#709](https://github.com/input-output-hk/mithril/issues/709)\\n- Completed the implementation of an `EraReader` adapter with on chain transaction as source [#710](https://github.com/input-output-hk/mithril/issues/710)\\n- Completed the relational design of the aggregator store [#476](https://github.com/input-output-hk/mithril/issues/476)\\n- Completed adding a new SPO on the `testing-preview` network [#729](https://github.com/input-output-hk/mithril/issues/729)\\n- Completed the upgrade of the Cardano node to `1.35.5` [#725](https://github.com/input-output-hk/mithril/issues/725)\\n- Fixed flakiness in the CI [#734](https://github.com/input-output-hk/mithril/issues/734)"},{"id":"2023-02-08-consensus","metadata":{"permalink":"/cardano-updates/2023-02-08-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-consensus.md","source":"@site/blog/2023-02-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":1.5,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-02-09-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-02-08-node-cli-api"}},"content":"## High level summary\\n\\nWe continue refactoring the UTxO HD prototype while we wait for the system level\\nbenchmarks. We have created a new repository that contains the `anti-diff`\\npackages used in this prototype.\\n\\nOn the Genesis front, we are preparing another meeting with the researchers to\\naudit the implementation design, and we continued working on basic tests and\\nsimplifications.\\n\\nDuring the past two weeks we also introduced two new tools. One for dumping CBOR\\nencoded blocks to JSON, and another to serve a local immutable DB.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe are in the process of refactoring the UTxO HD prototype, while we wait for\\nthe system level benchmarks to confirm if the performance of the prototype is\\nsatisfactory.\\n\\nWe also set up a repository for the [`anti-diff`][anti-diff] package, which\\nrequired us to refactor the code, write documentation, and prepare a release to\\n[CHaP][chap].\\n\\n### Genesis\\n\\nWe worked on [basic tests][issue-4347] for the _Limit on Eagerness_ property of\\nGenesis. We also introduced further robustness and simplifications in the\\nGenesis Density governor. Finally, we developed a presentation to engage again\\nwith the researchers on our Genesis implementation design.\\n\\n### Technical debt\\n\\n### Fostering collaboration \\n\\nWe are in the process of [polishing][pull-6] the `ouroboros-consensus`\\ndocumentation site, which we will use a the entry point for Consensus related\\ndocumentation. The first version will not be complete, but we plan on\\nsystematically improving it.\\n\\n### Support\\n\\nWe [added a tool][pull-4335] to `ouroboros-consensus-cardano-tools` which allows\\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON.\\n\\nWe also added [another tool][pull-4339] that serves an existing immutable DB via\\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\\nefforts (for instance Genesis\' ChainSync jumping prototype).\\n\\n\\n[pull-6]: https://github.com/input-output-hk/ouroboros-consensus/pull/6\\n[pull-4335]: https://github.com/input-output-hk/ouroboros-network/pull/4335\\n[pull-4339]: https://github.com/input-output-hk/ouroboros-network/pull/4339 \\n[issue-4347]: https://github.com/input-output-hk/ouroboros-network/issues/4347\\n[anti-diff]: https://github.com/input-output-hk/anti-diffs\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages"},{"id":"2023-02-08-node-cli-api","metadata":{"permalink":"/cardano-updates/2023-02-08-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-node-cli-api.md","source":"@site/blog/2023-02-08-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-02-08-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-02-08-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-08-performance-and-tracing"}},"content":"# 2023-02-08 - 2023-02-21\\n\\n## High level summary\\nMore maintenance and resolving raised issues.\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Remove use of multiline literals](https://github.com/input-output-hk/cardano-node/pull/4889)\\n- [Markdown links CI check](https://github.com/input-output-hk/cardano-node/pull/4775)\\n- [Date ranges for copyright](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Re-add support for decoding GenesisExtendedKey text envelope](https://github.com/input-output-hk/cardano-node/pull/4894)\\n- [Disallow empty cost model for create update proposal](https://github.com/input-output-hk/cardano-node/pull/4885)\\n- [Refactor code using onLeft and onNothing](https://github.com/input-output-hk/cardano-node/pull/4815)\\n\\n### cardano-api\\n- [Simplify SerialiseAsRawBytes type class](https://github.com/input-output-hk/cardano-node/pull/4876)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-02-08-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-02-08-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-08-performance-and-tracing.md","source":"@site/blog/2023-02-08-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":2.445,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-08-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-02-08-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-03-crypto"}},"content":"## High level summary\\n\\n1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we\'re currently running what we consider the final benchmark, to validate the underlying assumptions.\\n2. Release benchmarking: we\'ve performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.\\n3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.\\n4. New tracing: before going live, we\'re performing the documentation update, as well as reworking the end user migration guide.\\n5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.\\n6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.\\n7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.\\n\\n## Performance\\n\\nWe are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:\\n\\n- we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,\\n- after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,\\n- finally, we\'re redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.\\n\\nIn addition, we started benchmarks of the 1.35.6 release.\\n\\n## Tracing\\n\\nA rework of the new tracing system\'s internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.\\n\\nSpecifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.\\n\\n## Infrastructure\\n\\nOn the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we\'ll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.\\n\\nThe work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.\\n\\nThe Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops."},{"id":"2023-02-03-crypto","metadata":{"permalink":"/cardano-updates/2023-02-03-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-crypto.md","source":"@site/blog/2023-02-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":2.47,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-02-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril\'s core library. Exploring future paths of mithril. \\n* cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting. \\n* KES agent: using snockets and making things testable in IOSim \\n* MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.\\n\\n## Low level summary\\n\\n### Mithril\\n* Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.\\n* We are exploring possible paths of how mithril could be used \'as-a-service\'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.\\n### cardano-base\\n* There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it\'s trade-offs. Seems that the most interesting curve to have on main-net is still 381. \\n* The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.\\n* The update VRF [PR#341](https://github.com/input-output-hk/cardano-base/pull/341) is finally merged, and we are ready to merge [PR#344](https://github.com/input-output-hk/cardano-base/pull/344), which implements conversion functions from the compatible types between Praos and PraosBatchCompat.\\n\\n### KES agent\\n* Use of snockets to send the data directly from the socket to secure memory. \\n* We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives\\n* Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.\\n\\n### MuSig2\\nThe GitHub Action [linelint](https://github.com/fernandrone/linelint) is used to check the files.\\n* A new job for linting is added to the file `/.github/workflows/ci.yml`. The rules are configured in the file `/.github/workflows/.linelint.yml`. Some files from the configuration of `libsecp` were failing, so in the rules in `.linelint.yml` the failing files are denoted to be ignored by the linter.\\n* Folders are reorganized. We created a folder to handle the example. This folder includes the `examplemusig2.c`, a distinct `config.h`, and `helper.c`. The example is enhanced by implementing the functions in the helper for the configuration given in `config.h`. The number of messages is different than the tests. The example is made more generic to run with a loop."},{"id":"2023-02-03-goedel","metadata":{"permalink":"/cardano-updates/2023-02-03-goedel","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-goedel.md","source":"@site/blog/2023-02-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"goedel","permalink":"/cardano-updates/tags/goedel"}],"readingTime":0.57,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-02-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been preparing several papers for peer review\\nand knowledge sharing and consulting within IO and the community.\\n\\n## Details\\n\\n* R&D Seminar on experience participating in a member based organisation\\n* Full day tutorial on performance engineering presented at HiPEAC\\n 2023 conference\\n* Finished preparing and submitted a paper on performance engineering\\n to an ACM workshop\\n* Preparing a draft paper for future submission about verifying design\\n refinements for distributed system design\\n* Consulting on performance design of other IO projects"},{"id":"2023-02-03-hydra","metadata":{"permalink":"/cardano-updates/2023-02-03-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-03-hydra.md","source":"@site/blog/2023-02-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.12,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-02-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-02-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed the Hydra specification with a section about\\nrollbacks and updated graphs\\n([#448](https://github.com/input-output-hk/hydra/issues/448)). In a next step,\\nthe specification will be made more approachable and an open standard. They\\nimproved their `hydra-cluster` tool to launch a local `--devnet` sandbox\\nenvironment and continued aligning the `hydra-plutus` scripts with the\\nspecification by hardening the checks on `close` and `contest` transactions.\\n\\n## What did the team achieve this week\\n\\n- Completed the specification with a section about rollbacks and updated graphs\\n [#448](https://github.com/input-output-hk/hydra/issues/448), with a follow-up on making it more approachable and an open standard.\\n- Continued spec review with internal auditor and incorporated changes.\\n- Talked to TxPipe about how Demeter and Hydra could work together\\n- The `hydra-cluster` executable can be used to launch a local `--devnet` sandbox environment.\\n- Reproduced the \u201chead being stuck on network outage\u201d bug\\n - relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.\\n- Progressed with higher velocity by addressing more and more gaps [#677](https://github.com/input-output-hk/hydra/pull/677)\\n\\n## What are the goals of next week\\n\\n- Upstream our JSON instances to the ledger\\n- Close all transaction security related on-chain gaps\\n- Ideally release 0.9.0 with updated scripts\\n- Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap"},{"id":"2023-02-02-ledger","metadata":{"permalink":"/cardano-updates/2023-02-02-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-02-02-ledger.md","source":"@site/blog/2023-02-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-02T00:00:00.000Z","formattedDate":"February 2, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.23,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-02-03-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-27-hydra"}},"content":"## High level summary\\n\\nMuch of the work the past two weeks involved integration efforts,\\ncleaning up and debugging some serialization issues,\\nadding tests, and work on large projects that are still ongoing.\\nWe also released a CIP this week that aims to make the ledger\\na registered CIP category.\\n\\n## Lower level summary\\n\\n### Ledger evolution CIP\\n\\nWe published a\\n[CIP](https://github.com/cardano-foundation/CIPs/pull/456)\\nthat will make the Cardano ledger a registered category of the CIP process.\\n\\n### Serialization issues\\n\\nWe had previously thought that we had found a serialization problem with the redeemers,\\nbut it turned out to just be particularly confusing code.\\nWe have now clarified the issue for the future.\\n\\nSee [pull-3263], [pull-3269], and [pull-3268].\\n\\nStarting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.\\n\\nSee [pull-3277].\\n\\n### New tests\\n\\nWe added a new property test suite for some of our custom containers.\\n\\nSee [pull-3270].\\n\\n### Progress on a better cost model serialization situation.\\n\\nWe are still working our way through [issue-2902].\\nTowards this end, we are now properly gating the new flexible encoders\\nuntil version 9.\\n\\nSee [pull-3274].\\n\\n### Nightly tests\\n\\nWe are still experimenting with moving more CI actions to GitHub actions.\\n\\nSee [pull-3276].\\n\\n### Constraint based generators\\n\\nWe continue to add to our proof of concept for constraint based generators.\\nSee the previous ledger update for more information about this project.\\n\\n[pull-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3268]: https://github.com/input-output-hk/cardano-ledger/pull/3268\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3270]: https://github.com/input-output-hk/cardano-ledger/pull/3270\\n[pull-3274]: https://github.com/input-output-hk/cardano-ledger/pull/3274\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902"},{"id":"2023-01-27-hydra","metadata":{"permalink":"/cardano-updates/2023-01-27-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-27-hydra.md","source":"@site/blog/2023-01-27-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-27T00:00:00.000Z","formattedDate":"January 27, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.945,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-27-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-02-02-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-26-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team had a monthly review meeting with their stakeholders,\\ncontributors and interested people from the community. The monthly repot for\\n[January 2023](https://hydra.family/head-protocol/monthly/2023-01) is a digest\\nof the things presented and also includes a summary of the meeting. The Hydra\\nspecification was getting discussed and the team is incorporating suggested\\nchanges of reviewers. Last but not least, they compute and publish script\\ninformation on every PR and also on the\\n[website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\nnow.\\n\\n## What did the team achieve this week\\n\\n- Had the monthly review meeting with a broader audience\\n- Published the monthly report for [January 2023](https://hydra.family/head-protocol/monthly/2023-01)\\n- Reviewed the spec and discussed individual aborts with researchers\\n- Compute and publish script information along benchmarks on every PR and [website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\n\\n## What are the goals of next week\\n\\n- Add rollback section to Hydra spec, update pictures and publish it as part of repository\\n- Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.\\n- Groom & plan actions required for a maintainable Head explorer + break down “align gaps” feature."},{"id":"2023-01-26-mithril","metadata":{"permalink":"/cardano-updates/2023-01-26-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-26-mithril.md","source":"@site/blog/2023-01-26-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-26T00:00:00.000Z","formattedDate":"January 26, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.175,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-26-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-27-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-25-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0) distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.\\n\\nFinally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.\\n\\n## Low level overview\\n- Released the new distribution [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0)\\n- Implemented a backward/forward compatibility mechanism for API messages [#688](https://github.com/input-output-hk/mithril/issues/688):\\n - Implement the mechanism for the signer registration [#689](https://github.com/input-output-hk/mithril/issues/689)\\n - Implement the mechanism for the signature registration [#693](https://github.com/input-output-hk/mithril/issues/693)\\n - Implement the mechanism for epoch settings [#695](https://github.com/input-output-hk/mithril/issues/695)\\n - Implement the mechanism for certificate pending [#696](https://github.com/input-output-hk/mithril/issues/696)\\n - Implement the mechanism for certificate [#697](https://github.com/input-output-hk/mithril/issues/697)\\n - Implement the mechanism for snapshots list [#698](https://github.com/input-output-hk/mithril/issues/698)\\n - Implement the mechanism for snapshot [#699](https://github.com/input-output-hk/mithril/issues/699)\\n - Update enforcement of API version with Semver [#705](https://github.com/input-output-hk/mithril/issues/705)\\n- Completed the PoC implementation of backward compatibility with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Completed the PoC implementation of backward compatibility with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Completed the PoC to Read/Write transaction on chain for Era activations [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Completed the upgrade Cardano devnet to 1.35.4 [#523](https://github.com/input-output-hk/mithril/issues/523)"},{"id":"2023-01-25-consensus","metadata":{"permalink":"/cardano-updates/2023-01-25-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-25-consensus.md","source":"@site/blog/2023-01-25-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.27,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-26-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-01-25-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team finished the testing activities\\naround the UTxO-HD prototype. This is a very important milestone which will\\nenable us to run system-level tests and benchmarks, as well as start refactoring\\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\\nroadmap that gives an indication of the remaining work. We also continued our\\nwork on benchmarking chain-sync-jumping. We also continued working on improving\\nthe way we handle blocks from the future, and advancing the integration of the\\nnew VRF and KES crypto.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nAs the prototype is nearing its completion, it was important to have enough\\nconfidence that we will be able to move additional parts of the ledger state\\nonto disk. We worked together with the Ledger team to [elaborate a\\nsketch][pull-4296] on how the UTxO-HD design would accommodate the migration of\\nadditional data from memory to disk. This gave us enough confidence that the\\ncurrent architecture will be extensible in the future.\\n\\nOn the testing front, we [added][pull-4274] property-based tests for the UTxO-HD\\ntype classes. \\n\\nWe also [enabled disabled components][pull-4289], and addressed several\\ntechnical debt issues:\\n\\n- Implement `splitSized` anti-diff split ([#4269][pull-4269]), and integrate it\\n into consensus ([#4273][pull-4273]).\\n- Renaming of `peekVal` to `peekMDBVal` ([#7][pull-7]).\\n\\nWe ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\\nfound a race condition in the LMDB backing store, which [we fixed][pull-4283].\\nAfter the fix we were able to successfully run these benchmarks. The results\\nwere published by [this pull request][pull-4295].\\n\\nWe used our `db-analyser` tool to benchmark the cost of reading keys and\\nflushing values to disk. The following plot shows the duration of these disk\\noperation in relation to the main ledger operations, where we can see that the\\ncost of the former are comparatively low. The spike at the beginning of the\\ngraph is when, at the start of the Shelley era, the *entire* UTxO set is flushed\\nto disk.\\n\\n![UTxO-HD read and flush benchmarks](/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png)\\n\\nAfter months of hard work adding tests for the prototype, we are ready to run\\nend-to-end tests on the node, and system level benchmarks. This signals a very\\nimportant milestone for the UTxO-HD workstream :tada:.\\n\\n### Genesis \\n\\nWe elaborated a [high-level decomposition][genesis-roadmap] of the remaining\\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\\nhappy-path.\\n\\n### Technical debt\\n\\nWe continued working on improving the way we handle blocks from the future.\\n\\n### Support \\n\\nWe completed the mapping of `Crypto` to `HeaderCrypto` and body `Crypto`.\\n`HeaderCrypto` is moved to `cardano-protocol-tpraos`. We created a draft [pull\\nrequest][pull-3262] to facilitate compiling consensus.\\n\\n[pull-4274]: https://github.com/input-output-hk/ouroboros-network/pull/4274\\n[pull-4296]: https://github.com/input-output-hk/ouroboros-network/pull/4296\\n[pull-4289]: https://github.com/input-output-hk/ouroboros-network/issues/4289\\n[pull-4295]: https://github.com/input-output-hk/ouroboros-network/pull/4295\\n[genesis-roadmap]: https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md\\n[pull-4269]: https://github.com/input-output-hk/ouroboros-network/pull/4269\\n[pull-4273]: https://github.com/input-output-hk/ouroboros-network/pull/4273\\n[pull-7]: https://github.com/input-output-hk/lmdb-simple/pull/7\\n[pull-4283]: https://github.com/input-output-hk/ouroboros-network/pull/4283\\n[pull-3262]: https://github.com/input-output-hk/cardano-ledger/pull/3262"},{"id":"2023-01-25-node-cli-api","metadata":{"permalink":"/cardano-updates/2023-01-25-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-25-node-cli-api.md","source":"@site/blog/2023-01-25-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.585,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-01-25-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-25-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-20-crypto"}},"content":"# 2023-01-25 - 2023-02-07\\n\\n## High level summary\\nGeneral clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the `cardano-cli query stake-snapshot` command. \\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix how changed files are selected in stylish-haskell CI check](https://github.com/input-output-hk/cardano-node/pull/4853)\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n- [Remove hlint from nix required CI](https://github.com/input-output-hk/cardano-node/pull/4848)\\n- [Remove reconfigure-hlint.sh script](https://github.com/input-output-hk/cardano-node/pull/4838)\\n- [Fix hlint warnings](https://github.com/input-output-hk/cardano-node/pull/4837)\\n- [Implement ADR-2: Restructure modules for generators](https://github.com/input-output-hk/cardano-node/pull/4833)\\n- [Stylish Haskell in CI](https://github.com/input-output-hk/cardano-node/pull/4803)\\n- [Revert skip doc in ci](https://github.com/input-output-hk/cardano-node/pull/4802)\\n- [Skip CI on doc only changes](https://github.com/input-output-hk/cardano-node/pull/4800)\\n- [Skip CI if only changes are documentation](https://github.com/input-output-hk/cardano-node/pull/4792)\\n- [Build all of cardano-node in CI](https://github.com/input-output-hk/cardano-node/pull/4776)\\n- [Check cabal files in CI](https://github.com/input-output-hk/cardano-node/pull/4766)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Straight line error handling](https://github.com/input-output-hk/cardano-node/pull/4785)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n\\n### cardano-api\\n- [New NodeToClientVersionOf typeclass](https://github.com/input-output-hk/cardano-node/pull/4787)\\n- [Remove NoImplicitPrelude from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4832)\\n- [Add ReaderT of NodeToClientVersion to LocalStateQueryExpr](https://github.com/input-output-hk/cardano-node/pull/4809)\\n- [Use hoistMaybe](https://github.com/input-output-hk/cardano-node/pull/4808)\\n- [Better error message for query utxo without oops](https://github.com/input-output-hk/cardano-node/pull/4788)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [New query stake-snapshot integration test](https://github.com/input-output-hk/cardano-node/pull/4805)\\n- [Make leadership-schedule test less flaky](https://github.com/input-output-hk/cardano-node/pull/4671)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-01-20-crypto","metadata":{"permalink":"/cardano-updates/2023-01-20-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-crypto.md","source":"@site/blog/2023-01-20-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-20-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2023-01-25-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-20-hydra"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We explored whether some uses of `transmute` could be removed, but it resulted in considerable regression. \\n* cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision. \\n* KES agent: An inconsistency between `contra-tracer` available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the `contra-tracer` used by consensus. \\n\\n## Low level summary\\n\\n### Mithril\\n* We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average [PR#675](https://github.com/input-output-hk/mithril/pull/675). We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing. \\n* We are writing a RFP for the audit of the core library. \\n### cardano-base\\n* A problem with Nix is blocking merge of [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* Plutus team ran [benchmarks](https://github.com/input-output-hk/plutus/blob/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks/Main.hs) of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we\'ll be able to verify some proofs in a single script execution.\\n* Team is fully digesting the Plonk paper. \\n* There\'s been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used. \\n\\n### KES agent\\n* A little unforseen delay has been caused by a mismatch in the use of `contra-tracer`. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are [doing the change](https://github.com/input-output-hk/cardano-base/pull/255/commits/39b2d9473aa296976825248360a73cf066065431), but still the CI is not happy.\\n* The [same](https://github.com/input-output-hk/cardano-base/pull/317/commits/39b2d9473aa296976825248360a73cf066065431) was needed for the KES agents prerequisites [PR#317](https://github.com/input-output-hk/cardano-base/pull/317).\\n* We\'ve started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency"},{"id":"2023-01-20-hydra","metadata":{"permalink":"/cardano-updates/2023-01-20-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-hydra.md","source":"@site/blog/2023-01-20-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-20-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-20-crypto"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-01-20-network"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\\nspecification. Of which a first version has been aggregated and is currently\\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\\nlike defined in the specification, improved the mutation test framework to have\\nmore control when testing plutus scripts. The added HeadId in the API and the\\nTUI example client make `hydra-node` easier to use and a first experiment of a\\nHydra Head explorer was showing the utility of this - see what Heads exist on\\nthe `preview` network [here](http://explorer.hydra.family).\\n\\n## What did the team achieve this week\\n\\n- HeadId to API and display in the TUI [#678](https://github.com/input-output-hk/hydra/pull/678)\\n- Experiment of creating a hydra explorer, first result hosted [here](http://explorer.hydra.family)\\n- Improved mutation framework allowing to fail for the right reason [#679](https://github.com/input-output-hk/hydra/pull/679)\\n- Correctly reimburse funds in abort (matching the spec) [#670](https://github.com/input-output-hk/hydra/pull/670)\\n- Finished a first write-up of the Hydra HeadV1 spec: [Read it on overleaf](https://www.overleaf.com/read/bbqzmptcxryj) ([Communication channels](https://github.com/input-output-hk/hydra/blob/master/SUPPORT.md) for feedback)\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting with a broader audience\\n- Groom & plan actions required for a maintainable Head explorer\\n- Break \u201calign gaps\u201d feature into smaller chunks (at least on- /off-chain) and groom it\\n- Review the spec & discuss individual aborts with researchers (a bigger open question)"},{"id":"2023-01-20-network","metadata":{"permalink":"/cardano-updates/2023-01-20-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-network.md","source":"@site/blog/2023-01-20-network.md","title":"Network Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":1.045,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-01-20-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-20-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2023-01-20-sre"}},"content":"## High level summary\\n\\nWe have been working towards `cardano-node-1.35.5` release. QA & benchmarking\\nteams gave a green light for the release, and we made decent progress with some\\nCI problem which we encountered on the way ([PR #4612]). We are also working on\\npeer sharing, making improvements in our testing infrastructure, reducing\\ntechnical debt and making progress towards `io-sim-1.0.0.0`. Galois is making\\nprogress on Handshake improvements.\\n\\n## Low level summary\\n\\nOur diffusion simulation network now includes a mixed network of `initiator\\nonly` and `initiator and responder` nodes. [issue #4222]\\n\\nWe are now reviewing the [peer sharing pull request][PR #4019].\\n\\nWe are also reviewing pull request which introduces handshake query flag. [PR #4256]\\n\\nWe fixed a bug in our network simulator. The bug was triggered when a node\\ndied when performing a simultaneous TCP open (a corner case of a corner case!). [PR #4265]\\n\\nWe also refactored `Snocket` interface and removed the bearer construction from\\nits methods. [PR #4260]\\n\\nWe are working towards releasing `io-sim-1.0.0.0` on Hackage, which includes\\nreviewing two PRs: [PR #57] and [PR #60] as well as writing an announcement\\nblog post. \\n\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[PR #4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[PR #4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[PR #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[issue #4222]: https://github.com/input-output-hk/ouroboros-network/issues/4222"},{"id":"2023-01-20-sre","metadata":{"permalink":"/cardano-updates/2023-01-20-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-20-sre.md","source":"@site/blog/2023-01-20-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"sre","permalink":"/cardano-updates/tags/sre"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-01-20-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2023-01-20-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-19-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\\nsupport for cardano-world.\\n\\n## Lower level summary\\n\\n### Cicero\\n\\n- Fixed various race conditions around transformers.\\n- Brought our CI up to date.\\n- Migrated to the Nomad exec driver with Nix support for many actions.\\n- Moved Nix builds to the Nomad clients for much better cache locality.\\n- Ongoing work on vastly improving the action matching and evaluation speed.\\n- \\n\\n### Tullia\\n\\n- Made it easier to support cloning from a PR\'s fork\\n- Update to latest std\\n- Add workaround for cgroup issue: [nomad#12877](https://github.com/hashicorp/nomad/issues/12877)\\n- github preset: add `github.ci.remote` and `(read|get)Repository` functions\\n- Fix various issues around CUE handling\\n\\n### Bitte\\n\\n- Upgrade to NixOS 22.11\\n- Prototype usage of [Colmena](https://colmena.cli.rs) for deploys instead of [deploy-rs](https://github.com/serokell/deploy-rs)\\n- Finalized work on Equinix Metal support\\n- Prototype better secrets management with [ragenix](https://github.com/yaxitech/ragenix) instead of [sops-nix](https://github.com/Mic92/sops-nix)\\n- Improve CI and bring it up to date\\n\\n### cardano-world\\n\\n- Fixd various OOM issues on preview and preprod\\n- Rotated KES keys on preview and preprod\\n- Optimize mainnet db-sync to cope with higher load\\n- Fix an issue where PostgreSQL would fail after a reboot\\n\\n### bitte-world\\n\\n- Updated to NixOS 22.11\\n\\n### ci-world\\n\\n- Updated to NixOS 22.11\\n- Added Equnix cluster\\n- Improve caching of Nix builds"},{"id":"2023-01-19-ledger","metadata":{"permalink":"/cardano-updates/2023-01-19-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-19-ledger.md","source":"@site/blog/2023-01-19-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-19T00:00:00.000Z","formattedDate":"January 19, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-19-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2023-01-20-sre"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-01-14-db-sync"}},"content":"## High level summary\\n\\nThe ledger team completed some preliminary ground work in preparation for CIP-1694\\n(restructuring the ledger state),\\nfixed the PDF hosting problem (mostly the formal specs),\\nbuilt out more of the new user-friendly ledger API,\\nfinished a proof of concept for constraint-based generators for property tests\\n(with the hopes of being able to replace our trace generators one day),\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Restructuring the ledger state\\n\\nThe existing governance structures will be replace in the conway ledger era,\\nas described in CIP-1694.\\nIn particular, the ledger rules will be restructured as follows:\\n\\n\\n```\\n BBODY\\n |\\n |-------------------------------|\\n v v\\n TICK LEDGERS\\n | |\\n |---------| |\\n v v v\\n RUPD ~NEWEPOCH~ ~LEDGER~\\n | |\\n |----------| |--------|-------------------|-----------|\\n v v v v v\\n ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+\\n | | |\\n |---------|------------| v |\\n v v v DELPL v\\n SNAP POOLREAP -UPEC- | UTXO\\n |--------| |\\n v v v\\n POOL DELEG ~UTXOS~\\n\\n-..- Removed\\n+..+ Added\\n~..~ Modified\\n```\\n\\nMoreover, the ledger state will also be restructured in accordance with the new rules.\\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\\nWe have also adapted all the data structures in the ledger state.\\n\\nSee:\\n\\n* [pull-3216]\\n\\n### PDF hosting\\n\\nWe now build all of our PDFs using a GitHub action which is triggered by pushing a tag\\nwith a specific form, `cardano-ledger-spec-YYYY-MM-DD`.\\nThe action creates a GitHub release containing the PDFs.\\nThe links in the main ledger README now point to the PDFs in the latest release.\\n\\nSee:\\n\\n* [pull-3245]\\n* [pull-3260]\\n\\n### Powering the new ledger API\\n\\nWe have now removed all the `HasField` instances from the protocol parameter data types,\\nand replaced them with lenses.\\nThis is probably the last major restructuring that the ledger team will do on the code base\\nfor the API for a while\\n(the Plutus tools team will be working on it next, see [here](https://github.com/input-output-hk/cardano-ledger/projects/5)).\\nWe also added a new helpful function `ensureMinCoinTxOut`.\\n\\nSee:\\n\\n* [pull-3242]\\n* [pull-3248]\\n\\n### Constraint-based generators\\n\\nOur largest scale property tests generate an initial ledger state and a long sequence of valid blocks\\nwhich span several epochs, mimicking a real network.\\nThese tests are, in theory, excellent for checking properties.\\nThey are, however, very difficult to maintain and are not as random as we would like\\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).\\n\\nWe would like to switch to tests which instead generate a random ledger state representative\\nof not just an initial state, generate a single random valid block, and then test our properties.\\nThe hope is that these will be much more random and easier to maintain.\\n\\nWe have finished a proof of concept are encouraged that this approach could work!\\n\\nSee:\\n\\n* [pull-3219]\\n\\n### Technical debt\\n\\n* [pull-3244] massive CI speedup\\n* [pull-3249] better types for fees in the protocol parameters\\n* [pull-3264] move our annotator code to the `cardano-ledger-binary` package where it belongs\\n* [pull-3239] move the `Wdrls` type to the `Core` module.\\n\\n\\n[pull-3244]: https://github.com/input-output-hk/cardano-ledger/pull/3244\\n[pull-3245]: https://github.com/input-output-hk/cardano-ledger/pull/3245\\n[pull-3248]: https://github.com/input-output-hk/cardano-ledger/pull/3248\\n[pull-3249]: https://github.com/input-output-hk/cardano-ledger/pull/3249\\n[pull-3260]: https://github.com/input-output-hk/cardano-ledger/pull/3260\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\n[pull-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\n[pull-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219"},{"id":"2023-01-14-db-sync","metadata":{"permalink":"/cardano-updates/2023-01-14-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-14-db-sync.md","source":"@site/blog/2023-01-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-01-14T00:00:00.000Z","formattedDate":"January 14, 2023","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.36,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-01-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-19-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-13-hydra"}},"content":"## High level summary\\n\\nAfter spending the last months on improving DBSync and releasing `13.1.0.0` the DBSync team focused\\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\\nnew leger core and ghc-9.2.4\\n\\n## Lower level summary\\n- Integrate CHaP\\n[#1331](https://github.com/input-output-hk/cardano-db-sync/pull/1331)\\n- Integrate new ledger core `0.1.1.1` and ghc-9.2\\n[#1332](https://github.com/input-output-hk/cardano-db-sync/pull/1332)\\n- Technical debt: Add code formatter fourmolu\\n[#1334](https://github.com/input-output-hk/cardano-db-sync/pull/1334)\\n- Preparing and tracking Conway and UTxO integration"},{"id":"2023-01-13-hydra","metadata":{"permalink":"/cardano-updates/2023-01-13-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-hydra.md","source":"@site/blog/2023-01-13-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.56,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-13-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-01-14-db-sync"},"nextItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2023-01-13-release"}},"content":"## High-level summary\\n\\nSince last weekly update before christmas, the Hydra team worked on the\\ntechnical specification, closed gaps in `hydra-plutus` scripts, made the unique\\n`headId` available to Hydra clients through the API, allow the `hydra-node` to\\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\\nbuild issues reported by new users.\\n\\nBesides this, a retrospective [blog\\npost](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\\nsome first sessions on the voting project with Catalyst and the CF.\\n\\nA full digest monthly digest for December 2022 can be found on the [hydra\\nwebsite](https://hydra.family/head-protocol/monthly/2022-12).\\n\\n## What did the team achieve this week\\n\\n- Had some first sessions on the voting project with Catalyst and CF\\n- Published retrospective [blog\\n post](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\n by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\\n an outlook where Hydra is headed for in 2023.\\n- Worked on the LaTeX spec for HydraHeadV1, not final or published yet - [latest\\n version in this repository](https://github.com/ch1bo/hydra-spec).\\n- Add unique `headId` to API and hence make it available to clients.\\n- Allow `hydra-node` to explicitly synchronize from genesis using `--start-chain-from 0`.\\n- Closed gaps in `hydra-plutus` scripts\\n - bounded transaction validity ([ADR21](https://hydra.family/head-protocol/adr/21/))\\n - enforcing contract continuity via state token in output\\n- Fixed JSON for some logs and smaller build issues reported by new users.\\n\\n## What are the goals of next week\\n\\n- Reach out to have `hydra-tutorial` integrated.\\n- Plan the next couple of months.\\n- Complete checking reimbursing of commits in head validator.\\n- Align plutus scripts to spec and simplify them (identified some simplifications)\\n- Improve mutation framework to be sure we fail tests for the right reasons\\n- Complete the spec except the open points (<5) and also discuss them with researchers."},{"id":"2023-01-13-release","metadata":{"permalink":"/cardano-updates/2023-01-13-release","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-release.md","source":"@site/blog/2023-01-13-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.64,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2023-01-13-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-01-13-hydra"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2023-01-13-system-test"}},"content":"## Node Reelease Update\\n## 2022-11-02 - 2023-01-13\\n\\n### Executive Summary\\n\\nA 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\\n`release/1.35` branch and does not bump cardano-ledger.\\n\\nThe team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress.\\n\\nWe anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.\\n\\nThe 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.\\n\\n### Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/releases/tag/1.35.4)\\n\\n### In Progress\\n\\n- [Release 1.35.5](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)"},{"id":"2023-01-13-system-test","metadata":{"permalink":"/cardano-updates/2023-01-13-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-13-system-test.md","source":"@site/blog/2023-01-13-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.91,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2023-01-13-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2023-01-13-release"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-12-mithril"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the _P2P Single\\nRelay_ functionality.\\n\\nWe also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- extended the _cardano-node-tests_ with the ability for anybody to fork the repo and [run all our System Tests on GitHub Actions](https://input-output-hk.github.io/cardano-node-tests/readme.html)\\n- added 2 new nightly pipelines - nightly-mixed and nightly-p2p - [details here](https://input-output-hk.github.io/cardano-node-tests/test_results/nightly_system_tests.html)\\n- some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;\\n\\n` === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\\n to\\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===`\\n\\n### Node:\\n- ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled\\n- started the preparations for testing the next tag - [details here](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)\\n\\n### DB-Sync:\\n- some improvements on db-sync sync tests"},{"id":"2023-01-12-mithril","metadata":{"permalink":"/cardano-updates/2023-01-12-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-12-mithril.md","source":"@site/blog/2023-01-12-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-12T00:00:00.000Z","formattedDate":"January 12, 2023","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.165,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-12-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2023-01-13-system-test"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-11-consensus"}},"content":"## High level overview\\nThe Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an [ADR](https://mithril.network/doc/adr/4). They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.\\n\\nFinally, they have worked on upgrading the `devnet` and fixing some flakiness in the end to end tests of the CI.\\n\\n## Low level overview\\n- Implemented the redaction of an ADR for handling graceful updates of the Mithril Network [#671](https://github.com/input-output-hk/mithril/issues/671)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Worked on upgrading the Cardano node of the Mithril `devnet`, as well as fixing flakiness of the CI [#523](https://github.com/input-output-hk/mithril/issues/523)\\n- Prepared and tested the new `2302` distribution pre-release [2302.0-prerelease](https://github.com/input-output-hk/mithril/releases/tag/2302.0-prerelease)\\n- Updated the documentation for SPO to build a signer node in order to better reflect the new release process [#681](https://github.com/input-output-hk/mithril/issues/681)"},{"id":"2023-01-11-consensus","metadata":{"permalink":"/cardano-updates/2023-01-11-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-11-consensus.md","source":"@site/blog/2023-01-11-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.35,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-11-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-01-12-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-01-11-performance-and-tracing"}},"content":"## High level summary\\n\\nThe consensus team is resuming its activities after the Christmas break. During\\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\\ndiscussing with the Ledger team the changes that might be required for the next\\niterations. The pull request that adds the Conway era is waiting for a second\\nreview round and we hope to merge it soon. On the technical debt side we are\\nlooking into a property-test failure found in the iterators. We are\\ninvestigating if this is an error in the model or in the implementation. We also\\nimproved the documentation of our testing code.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe worked with the Ledger team to start preparing the next versions of UTxO-HD.\\nThe Ledger team is concerned that for the remaining maps we might need the full\\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\\nConsensus, the code that requires access to a full state could be moved from the\\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\\nplace in such bridge, instead of querying the ledger for the values that are\\nrequired in the epoch-transition computations.\\n\\nWe [relocated][pull-4234] some UTxO-HD definitions, in preparation for merging\\nthe prototype into `master`.\\n\\nWe also completed updated local benchmarks comparing the replay time and memory\\nconsumption of:\\n\\n- the baseline node (`f2fc76ef45647275c98634da1718290b976ff364`) \\n- the UTxO-HD node with the in-memory backend \\n- the UTxO-HD node with the LMDB backend\\n\\nThe following plot shows the results: we can see that the LMDB node barely\\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\\nin-memory backend is about 30 minutes faster, but still slower than the baseline\\nversion. We are aware of this phenomenon and it is inherent to the problem of\\nmaintaining sequences of differences of the last `k` ledger states that allows\\nus to perform rollback and roll-forward. We are in the process of measuring\\nsyncing from scratch times.\\n\\n![](/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png)\\n\\nWe also [added `StaticEither` accessors][pull-4263] that helped us to simplify\\nthe UTxO-HD prototype.\\n\\n### New Conway era\\n\\nWe incorporated the feedback of the [pull request][pull-3971], and rebased this\\nbranch on top of `master`. The PR is pending a second review round and we hope\\nto merge this soon.\\n\\n### Technical debt \\n\\nWe are investigating a [property-testing failure][issue-4183] involving\\niterators. Solving this requires understanding the expected behavior of\\niterators in the counterexample found by `QuickCheck` to determine if the error\\nis in the model or in the implementation.\\n\\n### Fostering collaboration\\n\\nWe [moved][pull-4248] the contents of `docs/Testing.md` closer to the code, so that the\\nexplanations about the tests are easier to find in the relevant modules, and the\\ndocumentation is easier to keep up to date.\\n\\n[pull-4234]: https://github.com/input-output-hk/ouroboros-network/pull/4234\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4248]: https://github.com/input-output-hk/ouroboros-network/pull/4248\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[pull-4263]: https://github.com/input-output-hk/ouroboros-network/pull/4263"},{"id":"2023-01-11-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2023-01-11-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-11-performance-and-tracing.md","source":"@site/blog/2023-01-11-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.865,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-01-11-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-01-11-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-06-crypto"}},"content":"## High level summary\\n\\nSince our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:\\n\\n1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.\\n2. The new tracing system: the improved API of the new tracing system was implemented, and we\'re now porting the tracing integration layer over.\\n3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.\\n4. New benchmark deployment infrastructure: we\'ve made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.\\n5. Legacy benchmarking: we\'ve started merging the legacy benchmark deployment infrastructure into the workbench.\\n6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.\\n\\n## Performance\\n\\nThe AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.\\n\\n## Tracing\\n\\nThe improved tracing internals were implemented, and we\'re now into the phase of updating the tracing integration, which is also mostly done.\\n\\n## Infrastructure\\n\\nThanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.\\n\\nOn the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.\\n\\nWe also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads."},{"id":"2023-01-06-crypto","metadata":{"permalink":"/cardano-updates/2023-01-06-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-06-crypto.md","source":"@site/blog/2023-01-06-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-06T00:00:00.000Z","formattedDate":"January 6, 2023","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-06-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-01-11-performance-and-tracing"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-05-ledger"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: The API features (error handling) has been merged. \\n* Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.\\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. \\n* KES agent: We keep progressing with KES secure forgetting implementation.\\n\\nWe also started working in the cryptography engineering handbook, which will be a cross team effort.\\n\\n## Low level summary\\n### MuSig2\\n* Merged the more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n\\n### Mithril\\n* Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in [Version 0.1.1](https://github.com/input-output-hk/kes/commit/9de00835ed354cbb8d37838f6cee57930ea9fd3d), which was published in [crates.io](https://crates.io/crates/kes-summed-ed25519). \\n* Updated new KES format to mithril library [PR 674](https://github.com/input-output-hk/mithril/pull/674)\\n* We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync [PR 531](https://github.com/input-output-hk/mithril/pull/531)\\n* We keep progressing on reducing the use of `transmute` in `mithril-stm`.\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. We are only missing nix merge of [PR#520](https://github.com/input-output-hk/iohk-nix/pull/520) and the updates on VRF will be merged.\\n\\n### KES agent\\n* We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests [PR#255](https://github.com/input-output-hk/cardano-base/pull/255#issuecomment-1362601518).\\n\\n### Cryptography handbook\\nWe have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives."},{"id":"2023-01-05-ledger","metadata":{"permalink":"/cardano-updates/2023-01-05-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-01-05-ledger.md","source":"@site/blog/2023-01-05-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-05T00:00:00.000Z","formattedDate":"January 5, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":4.44,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-05-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2023-01-06-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-28-node-cli-api"}},"content":"## High level summary\\n\\nThe ledger team finished up the remaining work for tracking individual depots,\\nbuilt out the new Conway era transaction body (in line with CIP-1694),\\ngreatly reduce some problematically large calculations on the epoch boundary,\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Finishing the deposit tracking\\n\\nThe initial work on the individual deposit tracking project focused only on correctness.\\nAs this is a large data structure\\n(since its size is linear with respect to the number of registered stake credentials),\\nit is very important that we also reduce the memory overhead as much as possible.\\nFortunately, we were able to add very little overhead for the deposits by using existing\\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\\nper registered stake credential.\\n\\nSee:\\n* [pull-3195]\\n* [pull-3202]\\n* [pull-3217]\\n\\n### New Conway era transaction\\n\\nWe implemented the Conway era transaction body, which is in line with CIP-1694.\\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\\nrelated to the liquid democracy (the \\"DReps\\").\\nThe new transaction body adds the new governance actions and votes,\\nwhile also deprecating the old governance structures\\n(i.e. the old protocol parameter updates and MIR certificates).\\n\\nWe also now have the wire specification (CDDL file) and serialization code in place.\\nThe wire specification is still subject to change while we work on the Conway era,\\nbut it is now usable and has proper testing support\\n(so that, for example, the serialization round-trips, etc).\\n\\nSee:\\n* [pull-3176]\\n* [pull-3226]\\n\\n### Optimizing the `TICKF` transition\\n\\nEvery since the release of the Shelley era, we have been working to reduce the computational load\\nplaced on the node by the ledger at the epoch boundary.\\nWhile still not perfect, we believe that we have removed one of the final problematically long\\nepoch boundary computations that exacerbate situations like\\n[this](https://github.com/input-output-hk/cardano-node/issues/4421).\\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\\nledger for the purposes of checking the leadership schedule in a new epoch.\\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\\ninstead of potentially several multi-second costs while the networks waits for the first block\\nof a new epoch to be minted.\\n\\nSee:\\n* An [ADR](https://github.com/input-output-hk/cardano-ledger/blob/ea48d4815946c4f35239eb41815fe06cd6ffec2e/docs/adr/2022-12-12_007-optimize-ledger-view.md) about the decision.\\n* [pull-3209]\\n\\n### Technical debt\\n\\nWe closed the year out with a lot of reduction to the technical debt!\\n\\n#### Improved ledger event\\n\\n* [pull-3212] - The ledger events are not guaranteed to appear in any given order within a block.\\n For this reason, motivated by the use case in db-sync, the `TotalDeposits` event now\\n includes a transaction ID and emits the _change_ in deposits instead of the value.\\n\\n#### Improved type saftey\\n\\n* [pull-3208] - We replaced `NominalDiffTime` with a newtype wrapper. The problem was that our CBOR\\n encoders and decoders were using the wrong level of precision, having to due with with\\n the Shelley genesis file. We removed the potential problem with a newtype wrapper.\\n* [pull-3167] - We now use a GADT to ensure consistency of the Plutus language in the types\\n for `TransactionScriptFailure` and `PlutusDebug`.\\n\\n#### Code/Module organization\\n\\n* [pull-3175] - The Allegra and Mary eras had an unusual relationship in our codebase,\\n due to the uncertainly of release dates while we were implementing them.\\n In particular, they were coupled in way that is different from the rest of the code base.\\n With hindsight on our side, we split the combined `shelley-ma` Haskell package into two\\n separate ledger era packages, which is now consistent with the rest of the repository\\n and module structure.\\n* [pull-3184] - We created a core test sub-library, cleaning up a lot of our property test\\n generator code.\\n* [pull-3210] - We moved the `KeyPair` type to the test library. Outside of testing,\\n the ledger does not need to deal with signing keys, and since this is a topic that\\n deserves the utmost care, it is best to make it clear that our use of signing keys\\n is only for testing.\\n* [pull-3229] - We split the `Cardano.Ledger.Alonzo.Data` module, which is more consistent with the rest\\n of the codebase.\\n\\n#### Revert pointer address deprecation\\n\\nThanks to one of our excellent internal auditors,\\n[@jmhrpr](https://github.com/jmhrpr),\\nwe now have a better plan for deprecating pointer addresses.\\nThis meant that we had to revert the previous work to deprecate them.\\n\\nSee:\\n* [issue-3161]\\n* [pull-3215]\\n\\n#### Miscellaneous\\n\\n* [pull-3205] - We removed deprecated type synonyms.\\n* [pull-3218] - We cleaned up the address deserialization.\\n* [pull-3223] - We fixed faulty address deserialization tests.\\n* [pull-3222] - We switched to a general type family `TxOut` from concrete ones,\\n reducing many constraints.\\n* [pull-3224] - `ShelleyGenesis` is now parameterized by crypto instead of by era.\\n* [pull-3170] - We set the cabal-version to 3.0 in our projects.\\n* [pull-3172] - We removed the now useless `EncodeMint`/`DecodeMint` classes.\\n* [pull-3225] - We switch from [ormolu](https://hackage.haskell.org/package/ormolu) to \\n [fourmolu](https://hackage.haskell.org/package/fourmolu).\\n The reason was to be able to finally have more diff friendly code!\\n\\n[issue-3161]: https://github.com/input-output-hk/cardano-ledger/issues/3161\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3176]: https://github.com/input-output-hk/cardano-ledger/pull/3176\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202\\n[pull-3205]: https://github.com/input-output-hk/cardano-ledger/pull/3205\\n[pull-3208]: https://github.com/input-output-hk/cardano-ledger/pull/3208\\n[pull-3209]: https://github.com/input-output-hk/cardano-ledger/pull/3209\\n[pull-3210]: https://github.com/input-output-hk/cardano-ledger/pull/3210\\n[pull-3212]: https://github.com/input-output-hk/cardano-ledger/pull/3212\\n[pull-3214]: https://github.com/input-output-hk/cardano-ledger/pull/3214\\n[pull-3215]: https://github.com/input-output-hk/cardano-ledger/pull/3215\\n[pull-3217]: https://github.com/input-output-hk/cardano-ledger/pull/3217\\n[pull-3218]: https://github.com/input-output-hk/cardano-ledger/pull/3218\\n[pull-3222]: https://github.com/input-output-hk/cardano-ledger/pull/3222\\n[pull-3223]: https://github.com/input-output-hk/cardano-ledger/pull/3223\\n[pull-3224]: https://github.com/input-output-hk/cardano-ledger/pull/3224\\n[pull-3225]: https://github.com/input-output-hk/cardano-ledger/pull/3225\\n[pull-3226]: https://github.com/input-output-hk/cardano-ledger/pull/3226\\n[pull-3229]: https://github.com/input-output-hk/cardano-ledger/pull/3229\\n[pull-3167]: https://github.com/input-output-hk/cardano-ledger/pull/3167\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172"},{"id":"2022-12-28-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-12-28-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-28-node-cli-api.md","source":"@site/blog/2022-12-28-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-28T00:00:00.000Z","formattedDate":"December 28, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.325,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-28-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-01-05-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-16-hydra"}},"content":"# 2022-12-28 - 2023-01-10\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix hedgehog-extras sha hash](https://github.com/input-output-hk/cardano-node/pull/4762)\\n- [Update hegehog-extras bounds](https://github.com/input-output-hk/cardano-node/pull/4759)\\n- [GitHub token fix](https://github.com/input-output-hk/cardano-node/pull/4751)\\n- [Use setup-haskell action](https://github.com/input-output-hk/cardano-node/pull/4743)\\n- [Use Github Action to install libsecp256k1](https://github.com/input-output-hk/cardano-node/pull/4738)\\n- [Update index state and hedgehog-extras.](https://github.com/input-output-hk/cardano-node/pull/4714)\\n- [Cleaned cabal files](https://github.com/input-output-hk/cardano-node/pull/4710)\\n- [Add cache versioning](https://github.com/input-output-hk/cardano-node/pull/4737)\\n- [Delete obsolete scripts](https://github.com/input-output-hk/cardano-node/pull/4742)\\n- [Use SECURITY.md published in Cardano Engineering Handbook](https://github.com/input-output-hk/cardano-node/pull/4746)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Filter out duplicate collateral inputs in tx build cmds](https://github.com/input-output-hk/cardano-node/pull/4749)\\n- [Optimise query stake-snapshot command](https://github.com/input-output-hk/cardano-node/pull/4754)\\n\\n### cardano-api\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2022-12-16-hydra","metadata":{"permalink":"/cardano-updates/2022-12-16-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-16-hydra.md","source":"@site/blog/2022-12-16-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-16T00:00:00.000Z","formattedDate":"December 16, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.27,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-16-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-28-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-15-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on [the website](https://hydra.family/head-protocol/benchmarks/transaction-cost/) and reduced the cost for commit transactions by ~30% with the help of reference scripts.\\n\\nThe year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.\\n\\n## What did the team achieve this week\\n\\n- Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.\\n- Reduce commit transaction costs by ~30% with reference scripts.\\n- Prepared an RFP for external audit of the Hydra Head solution.\\n- Fixed transaction cost benchmarks for abort tx [#631](https://github.com/input-output-hk/hydra/issues/631).\\n- Recorded decision to use model-based testing ([ADR22](https://hydra.family/head-protocol/adr/22/)) and improved Model [documentation](https://hydra.family/head-protocol/haddock/hydra-node/tests/Hydra-Model.html).\\n - Concluding the first increment on “Validate coordinated Head protocol” [#194](https://github.com/input-output-hk/hydra/issues/194).\\n - Formulated next step / follow-up on testing the Soundness property of our protocol [#656](https://github.com/input-output-hk/hydra/issues/656).\\n- Switched to using nix flakes for development setup and CI build [#646](https://github.com/input-output-hk/hydra/pull/646).\\n\\n## What are the goals of next week\\n\\n- Push [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) & tx validity gap over the finish line (smoke tests missing).\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Close & recap on the year with another monthly report (+ blog post)."},{"id":"2022-12-15-mithril","metadata":{"permalink":"/cardano-updates/2022-12-15-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-15-mithril.md","source":"@site/blog/2022-12-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-15T00:00:00.000Z","formattedDate":"December 15, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-16-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-12-14-consensus"}},"content":"## High level overview\\nThe Mithril team has released the new distribution [`2248.1`](https://github.com/input-output-hk/mithril/releases/tag/2248.1) of their nodes. They have published the first version of the Mithril cryptographic library on [`crates.io`](https://crates.io/crates/mithril-stm), the Rust community\u2019s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.\\n\\nFinally, they have kept on simplifying the aggregator node\'s multi-signer by removing the signer registration and the certificate creation from its responsibilities.\\n\\n## Low level overview\\n- Implemented removing verification key and stake from single signatures [#619](https://github.com/input-output-hk/mithril/issues/619)\\n- Completed the extraction of the signer registration from the multi-signer [#642](https://github.com/input-output-hk/mithril/issues/642)\\n- Completed the extraction of the certificate creation from the multi-signer [#638](https://github.com/input-output-hk/mithril/issues/638)\\n- Implemented a workflow to test client binaries (Linux / MacOS / Windows) [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Completed the signature of the artifacts produced by the CI [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Fixed the protocol parameters transition [#627](https://github.com/input-output-hk/mithril/issues/627)\\n- Worked on optimizing the snapshot digest computation [#510](https://github.com/input-output-hk/mithril/issues/510)\\n- Worked on enforcing the API protocol versions in the client and signer [#633](https://github.com/input-output-hk/mithril/issues/633)\\n- Worked on deactivating the non certified signer registration mode [#621](https://github.com/input-output-hk/mithril/issues/621)\\n- Worked on the re-genesis of the test networks [#651](https://github.com/input-output-hk/mithril/issues/651)"},{"id":"2022-12-14-consensus","metadata":{"permalink":"/cardano-updates/2022-12-14-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-consensus.md","source":"@site/blog/2022-12-14-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.995,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-12-14-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-15-mithril"},"nextItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2022-12-14-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the Consensus team finalized the QSM tests for the\\nbacking store and Mempool on the UTxO-HD branch with important discoveries\\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\\nthe modifications that are required in Ledger and Consensus to accommodate the\\nchanges in the crypto VRF and KES. The `db-analyser` now supports bechmarking\\nthe ledger operations, which will allow us to identify, debug, and profile\\npotential performance problems. We drafted a document that defines how to manage\\nthe versions of Consensus-related packages. The top level documentation of\\n`ouroboros-network` now features a description of the consensus components and\\nprovides a hyperlinked map to the modules documentation.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWhereas we had passing sequential state-machine tests for the mempool, the\\nparallel case proved to be more challenging than we thought. The operation of\\nadding a list of transactions to the mempool is not atomic and, as a result,\\nwhen adding a list of transactions, transactions from other processes can be\\nadded in between. The mempool implementation handles this correctly, however\\nthis required us to [redesign][pull-4076] the parallel model we had to take\\nthe lack of atomicity into account.\\n\\n#### Backing store property tests\\n\\nWe finished refactoring the backing store property tests. The second review\\nround is ongoing.\\n\\n### LSM tree implementation\\n\\nWe are working on benchmarking (in terms of time and number of IO operations)\\nfetching/looking up data from disk.\\n\\n### Genesis \\n\\nWe worked on the design of a mechanism to prevent a DoS attack on our Genesis\\ndesign related to rollbacks. This was arguably the biggest outstanding question.\\n\\nDuring the discussions around Genesis, we noticed a design boundary that nicely\\ndelineates a fundamental component. We almost have a full Haskell prototype of\\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\\nimplementation!\\n\\n### New VRF and KES crypto integration\\n\\nWe collaborated with the Ledger team on preparing the ledger state and crypto\\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\\nthe crypto that will only manifest in headers, not in the ledger states.\\n\\n### Technical debt\\n\\nWe merged the [pull-request][pull-4014] that adds a support to `db-analyser` for\\nbenchmarking ledger operations. This will allow us to identify, debug, and\\nprofile potential performance problems. The benchmark focus on the main 5 ledger\\noperations that are involved in chain syncing, block forging, and block\\nvalidation, namely:\\n\\n0. Forecast.\\n1. Header tick.\\n2. Header application.\\n3. Block tick.\\n4. Block application.\\n\\nThe following figure shows a plot of the benchmarking results for the first 65\\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\\nto the era transitions.\\n\\n![](/images/consensus/2022-12-14-ledger-ops-benchmark.png)\\n\\nAs we can see in this figure, era and epoch boundaries require more computation\\ntime. The ledger team are aware of this problem, and we are working to improve\\nthis situation.\\n\\n### Fostering collaboration\\n\\nWe [drafted a document][pull-4207] motivating and defining how Consensus (and\\npossibly other core teams) will/should manage our package versions. This\\npull-request garnered many great discussions from our team members and other\\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\\nal. We want to thank you all for your input, and we found this discussion very\\nenlightening!\\n\\nWe merged the [pull request][pull-4197] that adds an overview of consensus to\\nthe [top level\\ndocumentation](https://input-output-hk.github.io/ouroboros-network/) of\\nouroboros-network. This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\n[pull-4207]: https://github.com/input-output-hk/ouroboros-network/pull/4207\\n[pull-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014\\n[pull-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-12-14-db-sync","metadata":{"permalink":"/cardano-updates/2022-12-14-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-db-sync.md","source":"@site/blog/2022-12-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2022-12-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-12-14-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-14-node-cli-api"}},"content":"## High level summary\\n\\nThe DBSync team continued testing release `13.1.0.0`. The QA team has reported that no issues have\\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.\\n\\n## Lower level summary\\n\\n- Release is cherry-picked back to master, which uses the new rollback mechanism which uses\\nreverse indexes, same as the release\\n[#1320](https://github.com/input-output-hk/cardano-db-sync/pull/1320)\\nThis also fixes a bug number of issues on master.\\n- Depenencies upgrade and CHaP integration\\n[#1324](https://github.com/input-output-hk/cardano-db-sync/pull/1324)\\n- AdaPots fix [#1323](https://github.com/input-output-hk/cardano-db-sync/pull/1323). This\\nfixes an issue where the per epoch AdaPots didn\'t match the epoch boundary, but\\nthey also included changes from the first block of the epoch.\\n- Deposits Event fix [#3212](https://github.com/input-output-hk/cardano-ledger/pull/3212). This pr\\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\\nnumber of queries that db-sync does during syncing an make syncing faster."},{"id":"2022-12-14-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-12-14-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-node-cli-api.md","source":"@site/blog/2022-12-14-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-14-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/cardano-updates/2022-12-14-db-sync"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-12-14-performance-and-tracing"}},"content":"# 2022-12-14 - 2022-12-27\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n\\n## Completed\\n\\n### docs\\n\\n- [Move style guide to wiki](https://github.com/input-output-hk/cardano-node/pull/4703)\\n\\n### CI & project maintenance\\n\\n- [Cache secp256k1](https://github.com/input-output-hk/cardano-node/pull/4734)\\n- [Use cabal-cache](https://github.com/input-output-hk/cardano-node/pull/4717)\\n- [build(deps): bump certifi from 2020.4.5.2 to 2022.12.7 in /doc/.sphinx](https://github.com/input-output-hk/cardano-node/pull/4699)\\n- [Update cabal.project](https://github.com/input-output-hk/cardano-node/pull/4724)\\n\\n### Developer experience\\n\\n- [Add aarch64-darwin to nix-shell](https://github.com/input-output-hk/cardano-node/pull/4125)\\n\\n### cardano-cli\\n- [Improved error message for failed asset name decode](https://github.com/input-output-hk/cardano-node/pull/4626)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Remove cardano-cli address build-script](https://github.com/input-output-hk/cardano-node/pull/4700)\\n\\n### cardano-api\\n- [Move signing key reading to cardano-api](https://github.com/input-output-hk/cardano-node/pull/4698)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [Only run chairman test on latest era](https://github.com/input-output-hk/cardano-node/pull/4712)\\n- [Add fix and test for `foldBlocks`](https://github.com/input-output-hk/cardano-node/pull/4679)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)"},{"id":"2022-12-14-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-12-14-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md","source":"@site/blog/2022-12-14-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":3.095,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-12-14-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-12-14-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-12-12-network"}},"content":"## High level summary\\n\\n1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.\\n2. A new workstream for Plutus cost modeling improvement: we\'ve planned and started implementing the smart contract call overhead measurement machinery.\\n3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we\'re continuing with the further performance-oriented rework of the internals.\\n4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.\\n5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.\\n\\n## Performance\\n\\nThe SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we\'ll be running the model cluster workload.\\n\\nWe\'ve also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.\\n\\n## Tracing\\n\\nAfter the initial model-scale performance data caused us to panic, among other things we\'ve done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.\\n\\nTo understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:\\n\\n 1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that\'s also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.\\n 2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it\'s the fair benchmark, because that\'s the way we expect SPO\'s to set up tracing. That, however also causes it to do more work.\\n\\nAll that said, since we\'ve established the performance of the new system to be adequate for the release, we won\'t be delaying it much further.\\n\\nIn addition, we\'re still pursuing our performance-enhancing rework of the new tracing internals.\\n\\n## Infrastructure\\n\\nAfter implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.\\n\\nMoving to analysis, we\'ve also improved provenance of the raw data, by collecting more identification information and statistics about it.\\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.\\n\\nA new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\\nPreviously we only had automation for two aspects separately, so we only could either:\\n - compare individual runs (used for different node configurations / versions)\\n - collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline."},{"id":"2022-12-12-network","metadata":{"permalink":"/cardano-updates/2022-12-12-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-12-network.md","source":"@site/blog/2022-12-12-network.md","title":"Network Team Update","description":"High level summary","date":"2022-12-12T00:00:00.000Z","formattedDate":"December 12, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-12-12-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-12-14-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-12-09-crypto"}},"content":"## High level summary\\n\\nIn last sprint the team focused on preparations for the conference talk at\\n[OPODIS 2022]. We also worked on preparations to publish `io-sim` and related\\npackages on Hackage ([PR #57], [PR #60]).\\n\\nWe also started reviewing:\\n* `ouroboros-network`\\n* `cardano-node`\\n* `cardano-ledger`\\nrepositories for open-source readiness ([PR #4128]).\\n\\nWe prepared a PR which changes how `node-to-node` and `node-to-client` protocol\\nversiones are serialised in `cardano-node` log ([PR #4691]).\\n\\n[OPODIS 2022]: https://sites.uclouvain.be/OPODIS2022/\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[PR #4128]: https://github.com/input-output-hk/ouroboros-network/pull/4218\\n[PR #4691]: https://github.com/input-output-hk/cardano-node/pull/4691"},{"id":"2022-12-09-crypto","metadata":{"permalink":"/cardano-updates/2022-12-09-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-crypto.md","source":"@site/blog/2022-12-09-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.39,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-12-09-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-12-12-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-09-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency. \\n* Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe. \\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack. \\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.\\n\\n## Low level summary\\n### MuSig2\\n* [Still in progress] We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We merged the API redesig [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n* We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We\'ll probably circle back to this in the future [PR#36](https://github.com/input-output-hk/musig2/pull/36)\\n\\n### Mithril\\n* We merged the individual signature [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n* We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser ([kes repo](https://github.com/input-output-hk/kes/commits/master)) \\n\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. \\n* We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a [bug in GHC](https://gitlab.haskell.org/ghc/ghc/-/issues/22564)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Fixed a \'use-after-free\' bug in the KES agent."},{"id":"2022-12-09-hydra","metadata":{"permalink":"/cardano-updates/2022-12-09-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-hydra.md","source":"@site/blog/2022-12-09-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.62,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-09-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-12-09-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-12-09-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on completing to \\"Validate coordinated head protocol against formal model\\", this is a huge step to verify the implementation is secure. They also worked on implementing [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) related to bounded tx validity which is now under review. [HydraPay](https://github.com/obsidiansystems/hydra-pay) project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of [issues](https://github.com/obsidiansystems/hydra-pay/issues?q=is%3Aissue) they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.\\n\\n## What did the team achieve this week\\n\\n- Document model based testing [#194](https://github.com/input-output-hk/hydra/issues/194) & [#641](https://github.com/input-output-hk/hydra/issues/641)\\n- Got [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md), reducing gaps between implementation and specification, under review.\\n- Complete review on `hydra-tutorial`.\\n- Complete first round of review on `HydraPay` work [#634](https://github.com/input-output-hk/hydra/issues/634)\\n- Meeting with `Director of CyberSecurity` frio `IOG` to unblock \\"the RFP prepared for the external audit\\" [#606](https://github.com/input-output-hk/hydra/issues/606)\\n- Remove `vasil-dev` and `testnet` from `smoke-test` because they were not working [#630](https://github.com/input-output-hk/hydra/issues/630)\\n- Fix flaky `plutus-merkle-tree` test [#642](https://github.com/input-output-hk/hydra/issues/642)\\n- Refactor `NetworkSpec` to improve legilibility.\\n- Fix benchmark cost for `abortTx` [#631](https://github.com/input-output-hk/hydra/issues/631)\\n- Adapt `nix.conf` to the recent hydra-ci nix cache migration.\\n\\n## What are the goals of next week\\n\\n- Get [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) accepted & close tx validity gap in our implementation.\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Get Cicero (new CI) working.\\n- Use reference inputs to reduce the cost of the `commitTx`."},{"id":"2022-12-09-ledger","metadata":{"permalink":"/cardano-updates/2022-12-09-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-09-ledger.md","source":"@site/blog/2022-12-09-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.87,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-12-09-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-09-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-02-hydra"}},"content":"## High level summary\\n\\nThe Plutus tools team at IOG has started helping the ledger team to build out a user friendly\\n`cardano-ledger-api` package!\\nA [GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5)\\nwill be filled out in the days ahead,\\npeople interested in the API can use it to follow along and join in on the conversations.\\n\\nThe ledger team has started using\\n[architectural decision records](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md)\\nto leave a record of important decisions that the team makes.\\nWe will retroactively go back through past decisions and make ADRs for them.\\n\\nThe logic to track individual deposits is now nearly in place.\\nWe are prioritizing correctness with our first pull request, and will follow up with\\nperformance optimizations and general cleanup next.\\n\\nPointer addresses are being deprecated with the Cardano major protocol version 8.\\nSee [CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374)\\nfor more context.\\n\\n## Lower level summary\\n\\n#### Cardano ledger API\\n\\nThe **Plutus tools team** has taken our minimal `cardano-ledger-api` package and started filling it\\nout and adding much needed documentation.\\nThey have also added doctests!\\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\\nit in this\\n[GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5).\\n\\nSee\\n\\n* [pull-3182]\\n* [pull-3188]\\n\\n#### Architectural Decision Records (ADRs)\\n\\nWe are now providing more context and leaving a record of important decisions that are made\\nin the ledger. The first ADR explains the very lightweight process.\\n\\nSee\\n\\n* [pull-3177] (rendered [here](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md))\\n\\n#### Tracking individual deposits\\n\\nSee [ADR-3](https://github.com/input-output-hk/cardano-ledger/pull/3190/files)\\nfor background.\\nWe now have the logic in place to track individual deposits, and a host of property tests\\nto make sure that the logic is correct.\\nThe current implementation uses more memory than it needs to, and we will address that next,\\nwith our hope being to only use one word (8 bytes) per registered stake credential.\\nThere is a fair amount of other cleanup needed for general maintainability.\\n\\nSee\\n\\n* [pull-3127]\\n* [pull-3195]\\n* [pull-3202]\\n\\n#### Removing pointer addresses\\n\\nPointer addresses, which have never seen any real use\\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\\nversion 9.\\n[CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374) gives the context.\\nWe are disabling them by first preventing transaction outputs containing them\\nfrom being serialized by the node at the moment we switch to version 9.\\nAt the hard fork after that, we will translate the existing few pointer addresses\\nto enterprise addresses.\\n\\nSee\\n\\n* [pull-3174]\\n\\n#### Technical debt\\n\\n* [pull-3162] - Sometimes we have to put safeguards in place for hard forks which may never\\n be exercised. After we have passed the given hardfork, we are able to clean up the code\\n and simplify our logic. We removed all of the ones that we are currently easily able to.\\n* [pull-3165] - We improved the type safety of our code while also discovering and fixing\\n a serialization bug.\\n* [pull-3172] - We removed dead code.\\n* [pull-3175] - The Allegra and the Mary code used to be coupled in a particular way the we grew to\\n dislike. We made these two ledger eras now uniform with the rest of our code base.\\n* [pull-3184] - We organized our property testing code.\\n* [pull-3200] - The Plutus tools teams fixed an outstanding bug in the translation from the\\n ledger state to the Plutus script context.\\n\\n\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3165]: https://github.com/input-output-hk/cardano-ledger/pull/3165\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172\\n[pull-3174]: https://github.com/input-output-hk/cardano-ledger/pull/3174\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3177]: https://github.com/input-output-hk/cardano-ledger/pull/3177\\n[pull-3182]: https://github.com/input-output-hk/cardano-ledger/pull/3182\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3188]: https://github.com/input-output-hk/cardano-ledger/pull/3188\\n[pull-3190]: https://github.com/input-output-hk/cardano-ledger/pull/3190\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3200]: https://github.com/input-output-hk/cardano-ledger/pull/3200\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202"},{"id":"2022-12-02-hydra","metadata":{"permalink":"/cardano-updates/2022-12-02-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-02-hydra.md","source":"@site/blog/2022-12-02-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-02T00:00:00.000Z","formattedDate":"December 2, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.965,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-02-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-12-09-ledger"},"nextItem":{"title":"DB sync Team Update","permalink":"/cardano-updates/2022-12-01-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on cleaning up several things in progress\\nafter last week\'s summit. They have extended their model-based testing (MBT)\\napproach with transaction creation & observation\\n[#410](https://github.com/input-output-hk/hydra/issues/410), solved\\n`AcquirePointTooOld` problems of the `hydra-node` with by changing the wallet\\ninitialization [#439](https://github.com/input-output-hk/hydra/issues/439).\\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\\nHead, which are bound to be included in the Hydra HeadV1 specification.\\n\\n## What did the team achieve this week\\n\\n- Monthly review & report - will also be published on our website [#644](https://github.com/input-output-hk/hydra/pull/644)\\n- Extended the model-based testing (MBT) with transaction creation/observation [#410](https://github.com/input-output-hk/hydra/issues/410)\\n- Solve `AcquirePointTooOld` problems with new wallet initialization [#439](https://github.com/input-output-hk/hydra/issues/439)\\n- Fixed our hydraw deployments (EC2 instances)\\n- Created & discussed [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) within tx validity work\\n- Received & discussed security proofs of Coordinated Hydra Head (requires more work)\\n\\n## What are the goals of next week\\n\\n- Get ADR21 accepted & close tx validity gap in our implementation\\n- Complete review & integrate the Hydra tutorial\\n- Review latest hydra-pay work\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec\\n- Get Cicero (new CI) working"},{"id":"2022-12-01-db-sync","metadata":{"permalink":"/cardano-updates/2022-12-01-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-db-sync.md","source":"@site/blog/2022-12-01-db-sync.md","title":"DB sync Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.78,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB sync Team Update","slug":"2022-12-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-12-02-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-01-mithril"}},"content":"## High level summary\\n\\nThe DB Sync team prepared a release `13.1.0.0-rc2` which includes many improvements for db-sync,\\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\\nmigrations. This release finalises the objectives that were set for db-sync for the previous\\n3 months period and part of the syncing speed objective set for the next period\\n[Changelog](https://github.com/input-output-hk/cardano-db-sync/blob/3640e5aa00b8bada61e5d4b6eee063749866711b/cardano-db-sync/CHANGELOG.md#13100)\\n\\n## Lower level summary\\n- Branch [release/13.1.0.x](https://github.com/input-output-hk/cardano-db-sync/compare/release/13.0.x..3640e5aa00b8bada61e5d4b6eee063749866711b)\\nincludes all the improvements related to the release. The release is passing through the testing\\nphase and a number of bugs and issues have been fixed, like\\n[#1312](https://github.com/input-output-hk/cardano-db-sync/issues/1312)\\n[#1311](https://github.com/input-output-hk/cardano-db-sync/issues/1311).\\nAlso many new unit tests have been added.\\n\\n- Part of the release branch is cherry-picked back into master, in a way that it respects the new\\nrelease and development process, so that it takes into account migrations\\n[release process](https://github.com/input-output-hk/cardano-db-sync/issues/1305)\\n\\n- The DB Sync team has also tagged release `13.0.6` which better supports preview and preprod for\\ndocker."},{"id":"2022-12-01-mithril","metadata":{"permalink":"/cardano-updates/2022-12-01-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-mithril.md","source":"@site/blog/2022-12-01-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.04,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-01-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB sync Team Update","permalink":"/cardano-updates/2022-12-01-db-sync"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-12-01-system-test"}},"content":"## High level overview\\nThe Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes. \\n\\nFinally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.\\n\\n## Low level overview\\n- Implemented custom Mithril SPOs on testing/pre-release networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Deprecated Signer Declarative Pool Id registration mode [#585](https://github.com/input-output-hk/mithril/issues/585)\\n- Completed the second stage of the store automatic migration process [#600](https://github.com/input-output-hk/mithril/issues/600)\\n- Completed the deployment pipelines to crates.io registry [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Completed automatic generation of nodes/libraries versions manifest in releases notes [#599](https://github.com/input-output-hk/mithril/issues/599)\\n- Completed CI/CD handling of PR from forks [#597](https://github.com/input-output-hk/mithril/issues/597)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#586](https://github.com/input-output-hk/mithril/issues/586)\\n- Worked on signing the artifacts released in the distributions by the CI/CD [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Worked on multi-platforms end to end test [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Worked on the refactorizaton of the aggregator multi-signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-12-01-system-test","metadata":{"permalink":"/cardano-updates/2022-12-01-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-01-system-test.md","source":"@site/blog/2022-12-01-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.765,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-12-01-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-12-01-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-30-consensus"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, planned the testing of the _P2P Single \\nRelay_ functionality, and also tested some DB-Sync tags.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- moved the System Test CLI Pipelines from BuildKite to Github Actions\\n- improved the reporting tools to support the rerun of the failled tests and update of the reports \\n- added support for Github API in [report-aggregator](https://github.com/mkoura/report-aggregator), so reports will be generated from the GitHub nightly jobs from now on\\n- added support for mixed topology - P2P, legacy, mixed topologies\\n- planned the P2P Single Relay system test activities \\n- added support to start regression tests with PV8 + better selection of tests\\n\\n### DB-Sync:\\n- confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)\\n- tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2"},{"id":"2022-11-30-consensus","metadata":{"permalink":"/cardano-updates/2022-11-30-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-consensus.md","source":"@site/blog/2022-11-30-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":2.4,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-30-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-12-01-system-test"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-30-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team merged improvements to the monadic\\ncursor API that was needed to implement LMDB range reads, which is in turn\\nrequired for the implementation of the UTxO HD feature. We added tables to\\nseveral tests in for the UTxO HD feature, which increases our confidence in the\\ncorrectness of the prototype. The mempool property tests are close to being\\ncompleted. Also, we finished the LSM tree tuning algorithm.\\n\\nOn the Genesis front we started simplifying the BlockFetch logic with\\nCSJ-specific workloads in mind. \\n\\nWe are also documenting the Block Diffusion Pipelining feature, and added a\\nhigh-level overview of consensus to the top level documentation of\\n`ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWe merged the implementation of a monadic cursor API ([#1][pull-1])) which was\\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\\nbridging the gap between the `lmdb-simple` interface and consensus by facilitating\\nusing `lmdb-simple`\'s cursor API without `Serialise` constraints ([#3][pull-3]).\\n\\nWe refactored the backing store property tests to use `quickcheck-lockstep`\\n([#4081][pull-4081]).\\n\\nWe added tables to the mock ledger in the UTxO-HD feature branch\\n([#4184][pull-4184]). Every test that used to run with `SimpleBlocks` now uses\\ntables. This will enable us to exercise the UTxO HD mempool integration by\\nleveraging the existing mempool property-tests. The new state-machine\\nproperty-tests are still needed for testing the parallel behaviour of the\\nmempool.\\n\\nOur work on the mempool state-machine tests revealed the need for improvements\\nin the `quickcheck-state-machine` library. Parallel testing assumed that the\\nstate machine did not have access to mutable references. However, the mempool\\ntests require the use of such mutable references for mocking the ledger\\ninterface. As a result, our parallel tests were failing with rather obscure\\nmessages. @Jasagredo submitted a pull request ([#12][pull-12]) that allows for\\nnew mutable references to be created at each run of the state machine.\\n\\n#### Backing store property tests\\n\\n### LSM tree implementation\\n\\nWe finished the LSM Tree tuning algorithm. We are currently tidying up the code\\nand gathering results (i.e., plots and their interpretation).\\n\\n### CSJ prototype\\n\\nWe started simplifying the BlockFetch logic with CSJ-specific workloads in mind.\\n\\n### New VRF and KES crypto integration\\n\\nStarted working on supporting new version of `StandardCrypto` which uses compact\\nKES and batched VRF ([#4151][issue-4151]).\\n\\n### Technical debt\\n\\nWe reviewed the existing state of the Block Diffusion Pipelining document. We\\nare now working on the \\"Implementation\\" section ([#4020][issue-4020]).\\n \\n### Fostering collaboration\\n\\nWe cleared up our understanding of the error dynamics of forecasting\\n([#4146][pull-4146] and [#4174][pull-4174]).\\n\\nWe submitted a pull request that adds an overview of consensus to the [top level\\ndocumentation](https://input-output-hk.github.io/ouroboros-network/) of\\nouroboros-network ([#4197][pull-4197]). This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\nhttps://github.com/input-output-hk/ouroboros-network/pull/4197\\n\\n\\n[issue-4151]: https://github.com/input-output-hk/ouroboros-network/issues/4151\\n[pull-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pull-3]: https://github.com/input-output-hk/lmdb-simple/pull/3\\n[pull-4081]: https://github.com/input-output-hk/ouroboros-network/pull/4081\\n[pull-4184]: https://github.com/input-output-hk/ouroboros-network/pull/4184\\n[pull-12]: https://github.com/stevana/quickcheck-state-machine/pull/12\\n[pull-4146]: https://github.com/input-output-hk/ouroboros-network/pull/4146\\n[pull-4174]: https://github.com/input-output-hk/ouroboros-network/pull/4174 \\n[issue-4020]: https://github.com/input-output-hk/ouroboros-network/issues/4020\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-11-30-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-30-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-node-cli-api.md","source":"@site/blog/2022-11-30-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-30-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-30-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-30-performance-and-tracing"}},"content":"# 2022-11-30 - 2022-12-13\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n## Completed\\n\\n### docs\\n\\n### cardano-cli\\n- [Append tx output in cli transaction build command](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Error messages in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4592)\\n\\n### cardano-api\\n\\n### cardano-node\\n- [Replace Data.Map with Data.Map.Strict](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Github actions](https://github.com/input-output-hk/cardano-node/pull/4708)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-30-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-11-30-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-30-performance-and-tracing.md","source":"@site/blog/2022-11-30-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.95,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-30-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-30-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-28-network"}},"content":"## High level summary\\n\\n1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.\\n2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.\\n3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.\\n4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.\\n5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.\\n\\n## Performance\\n\\nWe have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don\'t see any significant performance changes. The component bumps are therefore clear for release.\\n\\n## Tracing\\n\\nFor the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.\\n\\nTo support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.\\n\\n## Infrastructure\\n\\nGeneration support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.\\n\\nIn addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.\\n\\nThe intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.\\n\\nWe continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.\\n\\nWe are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.\\n\\nAs usual, a number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-28-network","metadata":{"permalink":"/cardano-updates/2022-11-28-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-28-network.md","source":"@site/blog/2022-11-28-network.md","title":"Network Team Update","description":"Stake-Driven Data Diffusion Release for Relays","date":"2022-11-28T00:00:00.000Z","formattedDate":"November 28, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"},{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":3.675,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-28-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-30-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-25-crypto"}},"content":"## Stake-Driven Data Diffusion Release for Relays\\n\\nIOG networking team decided to release the _Stake-Driven Data Diffusion with\\nRobust Optimised Peer Selection_ also more commonly known as _P2P_. In the\\nlast update, we informed about a performance regression, but it turns out it\\nonly affects block producers, and thus we highly advise against running it on\\nsuch nodes. Further investigation is required to find the cause of it.\\n\\nOn IOG\'s benchmarking cluster we have seen quite a good performance improvement\\non block propagation itself. The cluster is running a static topology with\\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\\nnodes are block producers. The setup of this network is the same as mainnet.\\nWe\'ve seen 40-50% performance improvement on block propagation comparing to the\\nsame cluster deployed with the same topology but using non-P2P nodes. We think\\nthis performance improvement is caused by using full duplex connections. Quite\\nlikely the transaction traffic floating in both directions on the same TCP\\nconnection helps to keep the TCP window open. Note that in a cluster of 50\\nnodes with valency 6 the probability of having at least one duplex connection\\nis more than 50%. We don\'t expect the same improvement on mainnet because the\\nnetwork is much wider and the transaction traffic is not as large.\\n\\nJust before the release we squashed two small bugs:\\n\\n* [issue #4163] - top level integration bug in `keep-alive`;\\n* [issue #4177] - a bug in `outbound-governor`;\\n* [PR #4165] - a fix `cardano-ping` support of `NodeToNodeV_10`.\\n\\n\\n### Peer Sharing\\n\\nWe were carrying a review of [peer sharing PR][PR #4019].\\n\\n### DeltaQ\\n\\nNeil Davies was invited to give a guest lecture entitled `Avoiding System Catastrophes` at [UCLouvain].\\n\\n## What have we achieve last sprint\\n\\n* [issue #4163]: we found out that a control message is not passed to the\\n `keep-alive` mini-protocol, this results in every demotion executing demotion\\n timeout rather than a graceful termination. With the fix the node will no longer log:\\n ```json\\n { \\"kind\\": \\"PeerStatusChangeFailure\\"\\n , \\"peerStatusChangeType\\": \\"WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})\\"\\n , \\"reason\\": \\"TimeoutError\\"\\n }\\n ````\\n\\n* [issue #4177]: we fixed an assertion failure in the `outbound-governor`; now\\n we don\'t try demoted peers which are being demoted already.\\n\\n* [PR #4155]: we refactored `ouroboros-network` packages. There\'s a top level\\n `ouroboros-consensus-diffusion` package which integrates `network`\\n & `consensus` code. We also introduced:\\n\\n - `ouroboros-network-api` package which contains the API shared between\\n `network` & `conensus`;\\n - `ouroboros-network-mock` package which contains mock API used for testing\\n (e.g. a mock chain & chain producer, etc.)\\n - `ouroboros-network-protocols` package which contains implementation of all\\n (but `handshake`) mini-protocols, exposes a `testlib` and contains `test`\\n and `cddl` components.\\n\\n This made the dependency tree of `network` & `consensus` packages much\\n cleaner.\\n\\n* [PR #4169]: we described the usage of release branches in `CONTRIBUTING.md`\\n doc.\\n\\n* [PR #4165]: we fixed `cardano-ping` support of `NodeToNodeV_10` protocol.\\n\\n\\n### DeltaQ\\n\\nThe abstract of the talk:\\n\\n> An essential step to ensuring that distributed systems are fit for\\n> purpose.\\n>\\n> Distributed systems have become an integral part of our society and\\n> daily lives. We are, both implicitly and explicitly, individually as well as\\n> collectively, placing ever more trust in them.\\n>\\n> Are they worthy of this trust? Our need for them to be \u2018fit-for-purpose\u2019 goes\\n> well beyond notions of functional correctness (i.e. never getting the wrong\\n> answer). We need them to deliver the desired outcomes in a timely, robust,\\n> reliable, resilient fashion, at scale and in a sustainable way (both\\n> economically and environmentally).\\n>\\n> This all sounds like a worthy aspiration, but what would be a practical\\n> approach to capturing and reasoning about these issues? How can we ensure that\\n> systems can meet their fit-for-purpose objectives, not just in their design but\\n> as they are deployed, encounter the imperfect world, are scaled to become\\n> economic, and proceed into ongoing maintenance?\\n>\\n> This talk will illustrate how the notions of Outcomes and Quality Attenuation\\n> (as captured by \u2018\u2206Q\u2019) are being used to both frame the necessary notions and\\n> provide a basis for assuring the refinement and reification of such systems,\\n> from initial concept to operational infrastructure.\\n\\nYou can download the slides from [here](../static/pdf/network/2022-11-24-UCL.pdf).\\n\\n[issue #4163]: https://github.com/input-output-hk/ouroboros-network/issues/4163\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[PR #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[PR #4169]: https://github.com/input-output-hk/ouroboros-network/pull/4169\\n[PR #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[UCLouvain]: https://uclouvain.be/en/index.html"},{"id":"2022-11-25-crypto","metadata":{"permalink":"/cardano-updates/2022-11-25-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-25-crypto.md","source":"@site/blog/2022-11-25-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.705,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-25-crypto","authors":"iquerejeta","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-28-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-25-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team. \\n* Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes\\n* cardano-base: The VRF and BLS branchs are still open and in progress\\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent. \\n\\n## Low level summary\\n### MuSig2\\n* We redesigned the library so that MuSig2 lib users don\'t need to be aware of the underlying secp256k1 library [PR#31](https://github.com/input-output-hk/musig2/pull/31)\\n* We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We rethought the API and made it more consistent with the underlying secp256k1 library [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n\\n### Mithril\\n* The mithril crates in general will be published in crates.io, and we adapted the core library\'s README [PR#616](https://github.com/input-output-hk/mithril/pull/616) \\n* We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n\\n### cardano-base\\n* We\'ve been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions [PR#344](https://github.com/input-output-hk/cardano-base/pull/344)\\n* Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation."},{"id":"2022-11-25-hydra","metadata":{"permalink":"/cardano-updates/2022-11-25-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-25-hydra.md","source":"@site/blog/2022-11-25-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-25-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-25-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-23-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a [presentation](https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/) about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.\\n\\n## What did the team achieve this week\\n\\n- Attended the Cardano Summit in Lausanne. Hydra was topic of one talk: \\n- Had a team workshop / hackathon after the summit:\\n - Retrospective\\n - Impact mapping session\\n - Hacked on smaller things\\n- Got a PR for tullia/cicero things by @kdermetfan\\n\\n## What are the goals of next week\\n\\n- Monthly report & review meeting\\n- Tie up several loose ends / branches.\\n- Resolve Tx validity discussions & PRs.\\n- Review cicero PR & try it out."},{"id":"2022-11-23-ledger","metadata":{"permalink":"/cardano-updates/2022-11-23-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-23-ledger.md","source":"@site/blog/2022-11-23-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-23T00:00:00.000Z","formattedDate":"November 23, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.19,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-23-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-25-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-18-hydra"}},"content":"## High level summary\\n\\nWe released [CIP-1694],\\nour proposal for entering the [Voltaire phase](https://roadmap.cardano.org/en/voltaire/).\\n**Please come join the discussion**, this will be an incredibly exciting transition for\\nCardano and we want everyone to participate!\\n\\nWe now have a sensible way to version all of the serialization schemes used in the ledger.\\nThe draft pull request was polished, reviewed, and merged this week.\\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era.\\n\\nEveryone working on the Cardano node is working together to improve our release process,\\nand the ledger team in particular dedicated one engineer to help with these efforts\\nfor the next release.\\n\\n## Lower level summary\\n\\n### The Conway ledger era\\n\\nThe current proposal in [CIP-1694] encompasses two new ledger eras.\\nThe first era will be called Conway, after the English mathematician John Horton Conway.\\nThe community facing aspects of the Conway ledger era will be very minimal,\\nbut it will pave the way for introducing liquid democracy.\\nThe details can be viewed [here](https://github.com/input-output-hk/cardano-ledger/projects/4).\\nWe do not yet have a formal specification for the Conway era.\\nOur plan is to debut the\\n[formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications).\\nBriefly, the Conway ledger era will:\\n* introduce SPO voting for hard forks (in the spirit of the now abandoned [CIP-47])\\n* provide an on-chain mechanism for rotating the governance keys\\n* re-plumb the ledger rules involving governance to be in line with [CIP-1694]\\n\\n### Versioned CBOR\\n\\nWe now have the ability to easily tie our serialization schemes to the Cardano\\nmajor protocol version.\\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\\nplan for resolving problems (see [CIP-ledger-cbor]).\\nIn particular, we can now address several long standing issues, such as\\n[issue-2444], [issue-2965], and [issue-3003]. \\n\\nThe final (and massive!) pull request which brought us the versioning is [pull-3138].\\n\\n### Deposit tracking\\n\\nThe draft pull request which was exploring how best to track individual deposits\\nis much closer now to being ready to take out of draft ([pull-3127]).\\nFor background on the issue, see [issue-3113].\\nThis is quite an invasive change which effects many of our tests, which we are now addressing.\\n\\n### Technical debt\\n\\nAs always, we keep working on technical debt.\\nWe have deduplicated a some things: [pull-3129], [pull-3162].\\nWe have memoized a problematic computation (though more due diligence is needed before we can\\nmerge): [pull-3141].\\n\\n### Node release\\n\\nWe have been helping with the node release efforts. See [pull-4608].\\n\\n[CIP-47]: https://github.com/cardano-foundation/CIPs/pull/318\\n[CIP-1694]: https://github.com/cardano-foundation/CIPs/pull/380\\n[CIP-ledger-cbor]: https://github.com/cardano-foundation/CIPs/pull/372\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[pull-3129]: https://github.com/input-output-hk/cardano-ledger/pull/3129\\n[pull-3141]: https://github.com/input-output-hk/cardano-ledger/pull/3141\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-4608]: https://github.com/input-output-hk/cardano-node/pull/4608"},{"id":"2022-11-18-hydra","metadata":{"permalink":"/cardano-updates/2022-11-18-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-18-hydra.md","source":"@site/blog/2022-11-18-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.085,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-18-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-23-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-18-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version `0.8.1`, which includes several fixes and a user-wished extension of the persistence introduced by `0.8.0` of replaying server outputs to make clients like the `hydra-tui` be aware of the latest `hydra-node` state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from `hydra-poc` to [`hydra`](https://github.com/input-output-hk/hydra)!\\n\\n## What did the team achieve this week\\n\\n- Implemented replaying of server outputs to address [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Released version 0.8.1 containing this and other fixes [Release notes](https://github.com/input-output-hk/hydra/releases/tag/0.8.1)\\n- Worked on the bounded tx validity as one of the on-chain script fixes, but couldn’t finish it just yet [#615](https://github.com/input-output-hk/hydra/pull/615)\\n- Collaborated with the education team on a Hydra tutorial.\\n- Discovered and discussed issues with the “seen ledger”.\\n- Renamed the Hydra repository `hydra-poc` -> `hydra`\\n\\n## What are the goals of next week\\n\\n- Create and discuss an ADR about handling tx validity correctly.\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**\\n- Have a team workshop / hackathon after the summit:\\n - Retrospective\\n - Roadmapping session\\n - Hack on something complex or useful"},{"id":"2022-11-18-mithril","metadata":{"permalink":"/cardano-updates/2022-11-18-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-18-mithril.md","source":"@site/blog/2022-11-18-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.35,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-18-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-18-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-16-consensus"}},"content":"## High level overview\\nThe Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks. \\n\\nFinally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.\\n\\n## Low level overview\\n- Released a new Mithril distribution [2246.1](https://github.com/input-output-hk/mithril/releases/tag/2246.1)\\n- Completed the first stage of the store migrations process [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage [#576](https://github.com/input-output-hk/mithril/issues/576)\\n- Prepared a Daedalus synchronization benchmark video with/without Mithril [#606](https://github.com/input-output-hk/mithril/issues/606)\\n- Upgraded the Cardano nodes of the testing Mithril networks to `1.35.4` [#594](https://github.com/input-output-hk/mithril/issues/594)\\n- Worked on implementing SPO tests nodes on testing Mithril networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Worked on the refactorizaton of the aggregator multi signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-11-16-consensus","metadata":{"permalink":"/cardano-updates/2022-11-16-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-consensus.md","source":"@site/blog/2022-11-16-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":5.06,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-16-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-18-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-16-node-cli-api"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team started documenting the\\nimplementation of the UTxO HD feature and continued developing tests for it. As\\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\\nspent time working on the LSM tree prototype, and designed a parameter tuning\\nalgorithm for it. Regarding our work on Genesis, our investigation of the\\n\\"plateaus\\" pointed at the `TICKF` slowdown on era boundaries as culprit. This\\nled us to developing a caching strategy that will not only remove the\\naforementioned \\"plateaus\\", but can help alleviating the growing block production\\ndelay on epoch switch. We also helped reviewing the block forge credential\\nhotswap feature, which is intended for use in the adoption of P2P.\\n\\nWe also worked on paying technical debt and fostering collaboration. In\\nparticular, we improved the `io-sim` framework, which is crucial for testing and\\nsimulating Cardano components. We also removed thunks that appeared on era\\ntranslations, and improved our diffusion pipelining feature. We are working on a\\npresentation for explaining Praos and Genesis.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: in progress.\\n - We added documentation for this feature.\\n - We developed the second version of the mempool tests.\\n - We fixed benchmarks that were inflating the speedup we observed in the\\n anti-diff implementation of sequences of differences. Speedups are now in the\\n range of [3.33, 4.75], which remain significant.\\n - We continued improving Haskell LMDB support.\\n - We finished implementing a \\"parameter tuning algorithm\\" for the LSM tree\\n prototype. This enables us to run experiments to check the correctness of\\n the algorithm.\\n- Genesis: in progress.\\n - Work investigating the \\"plateaus\\" in the `ChainSync` jumping prototype\\n pointed to the `TICKF` slowdown on era boundaries as culprit.\\n- Tech debt:\\n - We improved the capabilities of our `io-sim` library, which is crucial for\\n testing and simulating Cardano components.\\n - We removed thunks from epoch translations in the ledger.\\n - We added Linux CI support for `lmdb-simple`.\\n - We got pending diffusion pipelining improvements merged.\\n- Fostering collaboration:\\n - We are working on a explanation of Praos and Genesis protocols.\\n- Support:\\n - Investigation of CSJ \\"plateaus\\" led us to developing a caching strategy for\\n `TICKF` that will not only remove these \\"plateaus\\", but can help alleviating\\n the growing block production delay on epoch switch.\\n - We reviewed the block forge credential hotswapping feature which is intended\\n for use in the adoption of P2P.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe merged PR [#4060][pr-4060], which adds a report documenting the UTxO HD\\nfeature, and puts emphasis in explaining how the mempool works in combination\\nwith UTxO HD.\\n\\nWe opened a draft PR with the second iteration of the property tests for the\\nmempool ([#4076][pr-4076]).\\n\\nWe fixed the `Arbitrary` instances for keys and values in `DiffSeq` benchmarks\\n([#4143][pr-4143]). The problem was that we were testing with mostly small\\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\\nSpeedups are now in the range of [3.33, 4.75] across the different\\nconfigurations.\\n\\n#### Backing store property tests\\n\\nWe focused on incorporating feedback on the monadic cursor API PR ([#1][pr-1]).\\nThis required us to make small tweaks to `quickcheck-lockstep` to test the new\\nAPI. We also updated the backing store property tests to use the new version of\\nthe monadic cursor API.\\n\\n### LSM tree implementation\\n\\nWe worked on the LSM tree prototype. In particular: finished implementing a\\n\\"parameter tuning algorithm\\" that adapts the LSM tree design based on factors\\nlike:\\n- workload\\n- machine specs, \\n- and characteristics of the data being stored. \\n\\nWe are now running experiments to gather results and cross-reference them with\\nexisting experimental results from the LSM tree paper to see if the algorithm is\\nworking correctly.\\n\\n### Benchmarking the CSJ prototype\\n\\nWe focused on investigating the \\"plateaus\\" in the `ChainSync` tip, which turned\\nout to be due to the `TICKF` bug which we previously were only aware of in the\\ncontext of the long forging times near epoch boundaries. For the most drastic\\npatch by @nfrisby to speed up `TICKF`, full sync is speeding up by 7%.\\n\\nThe following plot shows that by caching the `TICKF` the `ChainSync` tip and the\\n`VolatileDB` tip progress at the same rate.\\n\\n![](/images/consensus/2022-11-16-removed-stuttering.png)\\n\\nThe plot below shows the speedup observed by caching the `TICKF` rule wrt the\\nbaseline.\\n\\n![](/images/consensus/2022-11-16-comparing-TICKF-batch.png)\\n\\n### Technical debt\\n\\nAfter addressing the PR comments, we merged PR [#16][pr-16], which implements\\nthe `MonadCatch` instance for `STM`. This extends the capability of our `io-sim`\\nlibrary, which is crucial for testing and simulating Cardano components PR #16\\nclosed [#1461][issue-1461]. This new feature was published as version `0.4.0.0`\\nof `io-sim`.\\n\\nWe continued with our work fixing the `NoThunk` errors required for enabling\\nnightly tests, with the help of `TVarInvariant` checks in `strict-stm` and\\n`nothunks` libraries. We proposed fixes in `cardano-ledger` that took care of\\nthunks that appeared in era translations ([#3143][pr-3143]). The fixes will be\\nintegrated back into consensus when `cardano-ledger` approves and publish the\\nchanges introduced in `#3143`.\\n\\nWe added CI support for `lmdb-simple` ([#2][pr-2]). We currently test the build on\\na Linux environment only.\\n\\nWe got pending diffusion pipelining PRs ([#3857][pr-3857], [#3860][pr-3860],\\n[#3856][pr-3856]) merged, after rebasing and addressing feedback.\\n\\n### Fostering collaboration\\n\\n@nfrisby finished a visualisation tool and outlined scripts for the Praos and\\nGenesis explanation presentations. The idea is to produce a video that gives an\\noverview of these protocols.\\n\\n### Support \\n\\nWe started working on caching the computation of the `TICKF` rule\\n([#4054][issue-4054]), since this was blocking our benchmarking work for\\nGenesis. In addition, this issue has the Cardano community [quite\\nconcerned][issue-4421], so we are hoping the work done in caching the\\ncomputation of the `TICKF` rule can help alleviating the growing block\\nproduction delay on epoch switch.\\n\\nWe reviewed the block forge credential hotswapping PR [#3800][pr-3800] from the\\nnetworking team, which is intended for use in the adoption of P2P.\\n\\n[issue-4054]: https://github.com/input-output-hk/ouroboros-network/issues/4054\\n[issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n[issue-1461]: https://github.com/input-output-hk/ouroboros-network/issues/1461\\n\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-16]: https://github.com/input-output-hk/io-sim/pull/16\\n[pr-3143]: https://github.com/input-output-hk/cardano-ledger/pull/3143\\n[pr-4060]: https://github.com/input-output-hk/ouroboros-network/pull/4060\\n[pr-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pr-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pr-4143]: https://github.com/input-output-hk/ouroboros-network/pull/4143\\n[pr-2]: https://github.com/input-output-hk/lmdb-simple/pull/2\\n[pr-3857]: https://github.com/input-output-hk/ouroboros-network/pull/3857\\n[pr-3860]: https://github.com/input-output-hk/ouroboros-network/pull/3860\\n[pr-3856]: https://github.com/input-output-hk/ouroboros-network/pull/3856"},{"id":"2022-11-16-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-16-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-node-cli-api.md","source":"@site/blog/2022-11-16-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-16-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-11-16-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-16-performance-and-tracing"}},"content":"# 2022-11-16 - 2022-11-29\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n- [Add a native tokens tutorial and exercises](https://github.com/input-output-hk/cardano-node/pull/4562)\\n\\n### cardano-cli\\n- [Update cardano-cli\'s help](https://github.com/input-output-hk/cardano-node/pull/4674)\\n- [Remove error calls in renderShelleyTxCmdError](https://github.com/input-output-hk/cardano-node/pull/4644)\\n\\n### cardano-api\\n- [Implement Cardano.Api.DeserialiseAnyOf](https://github.com/input-output-hk/cardano-node/pull/4639)\\n\\n### cardano-node\\n- [Fix windows CI](https://github.com/input-output-hk/cardano-node/pull/4650)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-16-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-11-16-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-16-performance-and-tracing.md","source":"@site/blog/2022-11-16-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.635,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-16-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-16-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-11-crypto"}},"content":"## High level summary\\n\\n1. P2P performance investigation is ongoing, in support of the networking team.\\n2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.\\n3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.\\n4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.\\n5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.\\n\\n\\n## Performance\\n\\nWe are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.\\n\\n## Tracing\\n\\nWe ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.\\n\\n## Infrastructure\\n\\nThe first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.\\n\\nWe designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.\\n\\nA number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-11-crypto","metadata":{"permalink":"/cardano-updates/2022-11-11-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-crypto.md","source":"@site/blog/2022-11-11-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.305,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-11-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/cardano-updates/2022-11-16-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-11-hydra"}},"content":"## High level overview\\n\\nThe SECP primitives AC has been met, and the test-vectors [PR](https://github.com/input-output-hk/cardano-base/pull/320) has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool [PR](https://github.com/input-output-hk/cardano-base/pull/336) has been merged, and we\'ve adapted the KES secure [PR](https://github.com/input-output-hk/cardano-base/pull/255) to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork ([PR#](https://github.com/input-output-hk/cardano-base/pull/341)). Finally, we\'ve \'cleaned\' our libsodium fork, and we directly fork upstream, rather than forking Algorand\'s fork. \\n\\n## Low level overview\\n* With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation. \\n* We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool. \\n* In parallel, we keep progressing on the [KES agent](https://github.com/input-output-hk/kes-agent)\\n* VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification. \\n* Our libsodium fork now links directly to upstream libsodium."},{"id":"2022-11-11-hydra","metadata":{"permalink":"/cardano-updates/2022-11-11-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-hydra.md","source":"@site/blog/2022-11-11-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.94,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-11-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-11-11-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-11-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team published together with Obsidian Systems a light paper\\non our \\"Hydra for Payments\\" project ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/)). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of `hydra-node` processes. \\n\\n## What did the team achieve this week\\n\\n- Published Hydra for Payments light paper ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/))\\n- Have a draft RFP ready for a first review internally\\n- Answered the internal auditor’s questions\\n- Fixed a bug with following the chain when starting with persistence ([#599](https://github.com/input-output-hk/hydra-poc/issues/599))\\n- Minor improvements to logging for better observability ([#598](https://github.com/input-output-hk/hydra-poc/issues/598), [#600](https://github.com/input-output-hk/hydra-poc/issues/600))\\n- Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look ([#590](https://github.com/input-output-hk/hydra-poc/issues/590))\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Close more gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**"},{"id":"2022-11-11-ledger","metadata":{"permalink":"/cardano-updates/2022-11-11-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-ledger.md","source":"@site/blog/2022-11-11-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.41,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-11-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-11-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-11-network"}},"content":"## High level summary\\n\\nI am extremely excited to say that we now have a pull request up which introduces our new versioned\\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\\nhad since the Shelley phase. It will take time to properly review it, and we will\\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\\nserialization schemes.\\n\\nWe also have a draft pull request that reworks how deposits are tracked. Users of the system will\\nnot notice any difference, but it is a necessary change needed to prepare the way for\\ndecentralizing the governance of Cardano.\\n\\nFinally, we continued to address technical debt. In particular, we continued to make progress on\\nbringing coherency and consistency to the code base with a common naming convention, and\\nimproving some error messages.\\n\\n## Lower level summary\\n\\n- We have a pull request up for our new versioned CBOR serialization.\\n When we encounter a problem with our deserializers, it can be very difficult to implement a fix.\\n It is difficult because we can only fix such issues during a hard fork, and leading up to the\\n hard fork we must maintain two serializations for the same type in order to not cause unintended\\n network splitting (the problematic version must be used before the hard fork,\\n and the fixed version is used afterwards).\\n This can be especially tricky with the `FromCBOR` typeclass, since it is not always easy to\\n search for where all the problematic uses are located.\\n The new versioned CBOR serialization allows us to gracefully handle this transition.\\n See [[pull-3138]].\\n- We proposed a CIP for backwards compatibility of the transaction serialization schemes.\\n See [[pull-372]].\\n- We have draft for the new deposit tracking.\\n This draft is not as memory efficient as the final version will be,\\n but it is a sufficient proof of concept that we can write property tests against, ensuring\\n that we have not changed the semantics.\\n We will optimize after we are sure of the correctness.\\n See [[pull-3127]].\\n- We now provide better support for debugging failed Plutus scripts in an important helper\\n function, named `evaluateTransactionExecutionUnits`.\\n In particular, it now returns all the information needed to rerun the script with exactly the\\n same arguments. This feature will end up appearing in the CLI and other tools from the Plutus\\n tools team.\\n See [[pull-3135]].\\n- We did a lot more renaming to bring coherency and consistency to the code base.\\n See [[pull-3126]], [[pull-3120]], [[pull-3118]], and [[pull-3116]].\\n- We have added a few things to the ledger repository to make it conform to the\\n [Cardano Engineering Handbook](https://input-output-hk.github.io/cardano-engineering-handbook/)\\n See [[pull-3139]].\\n\\n\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3135]: https://github.com/input-output-hk/cardano-ledger/pull/3135\\n[pull-3126]: https://github.com/input-output-hk/cardano-ledger/pull/3126\\n[pull-3120]: https://github.com/input-output-hk/cardano-ledger/pull/3120\\n[pull-3118]: https://github.com/input-output-hk/cardano-ledger/pull/3118\\n[pull-3116]: https://github.com/input-output-hk/cardano-ledger/pull/3116\\n[pull-3139]: https://github.com/input-output-hk/cardano-ledger/pull/3139\\n[pull-372]: https://github.com/cardano-foundation/CIPs/pull/372"},{"id":"2022-11-11-network","metadata":{"permalink":"/cardano-updates/2022-11-11-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-11-network.md","source":"@site/blog/2022-11-11-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":1.595,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-11-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-11-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-04-hydra"}},"content":"import NoticedHeaders from \'@site/static/images/network/2022-11-11-noticed-headers.png\';\\n\\n## High-level summary\\n\\nIn last sprint we got a performance report of P2P performance testing cluster\\n(which consists of 50 nodes). There is a performance regression in the header\\nnotification metric. The P2P cluster is constructed with the same\\ntopology as the non-p2p reference one this indicates some regression which\\nneeds to be further investigated. This poses a risk for releasing P2P.\\n\\nWe also continued to work on peer sharing: [pull #4019].\\n\\nWe continued working on dynamic block production which is required for P2P\\nrelease for BP nodes: [pull #3159].\\n\\nWe simplified the P2P topology format: [issue #4559], [pull #3888].\\n\\nWe added a new trace point for asynchronous demotions of local peers with\\n`Warning` severity. This trace is **important** for SPOs.\\n\\n## Detail description\\n\\n### Performance regression\\n\\nBelow we include a graph which shows the performance regression of the P2P code base vs non P2P.\\n\\n\\n\\nOn the `x` axis is time in seconds which measures the delay from the start of\\nthe slot to when a header was received. The `y` axis is the percentile of nodes\\nthat received a header. We are currently investigating possible causes of the\\nregression. \\n\\n### New P2P topology form\\n\\nThe new topology file format is described in this [issue #4559].\\n\\n### Tracing improvements\\n\\n* We improved a handshake error reporting, [pull #4136]\\n* We added `TraceDemoteLocalAsynchronous` rendered as `DemoteLocalAsynchronous`\\n in `json` format, [pull #4127]. Such demotions should be investigated by the\\n pool operator. They can indicate a problem in the deployed system, but also\\n they could indicate a remote problem in arranged connections with other SPOs.\\n\\n### Open Source Improvements\\n\\nWe improved documentation of `io-sim` and `typed-protocols` for open-source\\ncontributors and/or maintenance tasks: [pull #22], [pull #45], [pull #48]. \\n\\n[pull #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull #3888]: https://github.com/input-output-hk/ouroboros-network/issues/3888\\n[pull #3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue #4559]: https://github.com/input-output-hk/cardano-node/issues/4559\\n[pull #4136]: https://github.com/input-output-hk/ouroboros-network/pull/4136\\n[pull #4127]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[pull #22]: https://github.com/input-output-hk/typed-protocols/pull/22\\n[pull #45]: https://github.com/input-output-hk/io-sim/pull/45\\n[pull #48]: https://github.com/input-output-hk/io-sim/pull/48"},{"id":"2022-11-04-hydra","metadata":{"permalink":"/cardano-updates/2022-11-04-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-hydra.md","source":"@site/blog/2022-11-04-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.935,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-04-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-11-11-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-04-mithril"}},"content":"## High level summary\\n\\nThis week, the hydra team first re-deployed the latest Hydra scripts to the re-spun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0). They also completed implementation of [ADR18](https://hydra.family/head-protocol/adr/18/) and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557) and alignment of the specification document with auditors.\\n\\n## What did the team achieve this week\\n\\n- Complete and merge ADR18 [#579](https://github.com/input-output-hk/hydra-poc/pull/579)\\n- Re-deploy hydra scripts to respun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0) [#595](https://github.com/input-output-hk/hydra-poc/pull/595)\\n- Have first gap of [#452](https://github.com/input-output-hk/hydra-poc/pull/452) in review.\\n- Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.\\n- Engineering meeting to discuss hard forks and protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557)\\n- Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.\\n- Drafted project scope for an external audit RFP.\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Answer the internal auditor’s questions\\n- Have a draft RFP ready for a first review internally\\n- Close some gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)"},{"id":"2022-11-04-mithril","metadata":{"permalink":"/cardano-updates/2022-11-04-mithril","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-mithril.md","source":"@site/blog/2022-11-04-mithril.md","title":"Mithril Team Update","description":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"mithril","permalink":"/cardano-updates/tags/mithril"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-04-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-11-04-hydra"},"nextItem":{"title":"Open-Source Team","permalink":"/cardano-updates/2022-10-31-open-source"}},"content":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.\\n# Low level overview\\n- We have been moving forward on the implementation of the release process [#500](https://github.com/input-output-hk/mithril/issues/500):\\n - Setup of the new hosted environments for `testing-preview`, `pre-release-preview` and `release-preprod` with their terraform and GitHub environments [#542](https://github.com/input-output-hk/mithril/issues/542)\\n - Adapted the CI workflows to work with the new release process [#543](https://github.com/input-output-hk/mithril/issues/543)\\n - Publication of an [ADR3](https://mithril.network/doc/adr/3)\\n - Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2022/10/28/updated-environments) about Mithril networks evolution \\n - Releasing our first Mithril distribution [2244.0](https://github.com/input-output-hk/mithril/releases/tag/2244.0)\\n- Worked on the API versioning mechanism [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Worked on the implementation of the stores migration process for the signer and aggregator nodes [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Prepared a Mithril `devnet` video demo [#526](https://github.com/input-output-hk/mithril/issues/526)\\n- Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably [#484](https://github.com/input-output-hk/mithril/pull/484)"},{"id":"2022-10-31-open-source","metadata":{"permalink":"/cardano-updates/2022-10-31-open-source","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-04-open-source.md","source":"@site/blog/2022-11-04-open-source.md","title":"Open-Source Team","description":"High Level Summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"open-source","permalink":"/cardano-updates/tags/open-source"}],"readingTime":1.465,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Open-Source Team","slug":"2022-10-31-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/cardano-updates/2022-11-04-mithril"},"nextItem":{"title":"Embedding Quality Workstream","permalink":"/cardano-updates/2022-11-03-embedding-quality"}},"content":"## High Level Summary\\n\\n* We\'ve been working toward publishing _Cardano Backlog_, currently its in\\n review by the IOG communication team.\\n* We identified a number of libraries which can be published.\\n* We setup and enhanced [cardano-updates][cardano-updates].\\n\\n## Detailed description\\n\\nI am glad to announce that I was given the role of open-source advocate for\\ncardano project. In last few weeks we were making steps towards publishing our\\nbacklog. It\'s currently under review by the communication team, although most\\nof the issues are already visible across various repositories.\\n\\nThe open-source initiatives have their own\\n[project](https://github.com/orgs/input-output-hk/projects/60). It is set up\\nto help us track our major open-source activities. Right now there are two\\nwork streams:\\n\\n* the work on [_Cardano Engineering Handbook_][ceh];\\n* libraries to be release on [Hackage][Hackage] or [crates.io][crates.io].\\n\\nWe identifies a number of libraries across all the teams which contribute to\\n_Cardano_ which we would like publish to publish, see the following\\n[link][publish-on-hackage]. Arnauld Bailly recently published\\n[`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\nlibrary on Hackage. The networking team is slowly progressing towards\\npublishing [io-sim][io-sim] and related packages, checkout the progress\\n[here](https://github.com/orgs/input-output-hk/projects/19/views/24).\\n\\nThanks to Arnaud Bailly our [Cardano Updates][cardano-updates] website has\\na new look & feel! It\'s using [docusaurus.io][docusaurus].\\n\\n\\nChristian Taylor carried recently a detailed analysis of our open-source\\nrepositories. He collected many interesting metrics, which allows us to see\\nwhere we need to improve as an open-source project to make the Cardano project\\nand many smaller related libraries which we maintain be more open and available\\nfor open-source contributors.\\n\\nThe graph below shows which documents the 55 most important Cardano\\nrepositories are missing the most:\\n![Documentation Adoption](../static/img/doc-adoption.png)\\nYou can expect we will improve in these metrics in the coming weeks.\\n\\n\\n[Hackage]: https://hackage.haskell.org/\\n[crates.io]: https://crates.io\\n[publish-on-hackage]: https://github.com/orgs/input-output-hk/projects/60/views/3\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[ceh]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[cardano-updates]: https://input-output-hk.github.io/cardano-updates\\n[docusaurus]: https://docusaurus.io"},{"id":"2022-11-03-embedding-quality","metadata":{"permalink":"/cardano-updates/2022-11-03-embedding-quality","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-03-embedding-quality.md","source":"@site/blog/2022-11-03-embedding-quality.md","title":"Embedding Quality Workstream","description":"High level summary","date":"2022-11-03T00:00:00.000Z","formattedDate":"November 3, 2022","tags":[{"label":"embedding-quality","permalink":"/cardano-updates/tags/embedding-quality"}],"readingTime":0.65,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"Embedding Quality Workstream","slug":"2022-11-03-embedding-quality","authors":"dorin100","tags":["embedding-quality"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Team","permalink":"/cardano-updates/2022-10-31-open-source"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-02-consensus"}},"content":"## High level summary\\n\\nWe made good progress on most of the Action Items we agreed on Lisbon, like:\\n* Cardano System Tests was fully open to public (tools, tests, results) \\n See [cardano-node-tests webpage](https://input-output-hk.github.io/cardano-node-tests).\\n* We defined an [user-facing-functionality template](https://github.com/input-output-hk/cardano-node/blob/master/.github/ISSUE_TEMPLATE/user-facing-feature.md) that is used with the cardano-cli team \\n * this includes acceptance criteria & user stories, and definition of done\\n* We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)\\n* We started to apply a _labelling convention_ on [cardano-node issues](https://github.com/input-output-hk/cardano-node/issues) that will be used to generate some visual dashboards with some metrics [TBD]\\n* Ziyand Liu started an _End-to-End Development and Testing Process for Plutus Features_"},{"id":"2022-10-02-consensus","metadata":{"permalink":"/cardano-updates/2022-10-02-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-consensus.md","source":"@site/blog/2022-11-02-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.53,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-02-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Embedding Quality Workstream","permalink":"/cardano-updates/2022-11-03-embedding-quality"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-02-ledger"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team continued its work on testing the\\nUTxO HD prototype. We completed the era-transition and backing store tests, and\\nthe mempool tests are advancing at a steady pace. Regarding our work in the\\nGenesis design, we continued our collaboration with the research and networking\\nteams, and we continue investigating strategies for making the chain-sync\\njumping prototype faster.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We worked on state-machine tests for the mempool, and spotted potential bugs\\n in the implementation. Investigation is ongoing.\\n - We have a set of property tests for the backing store. We still need to\\n incorporate the improvements to the LMDB cursor API that these tests\\n made possible.\\n - We merged the era-transition tests PR.\\n- Genesis: on track.\\n - Design work around Genesis continues in collaboration with researchers and\\n the networking team.\\n - We continued trying to improve the performance of the chain-sync jumping\\n prototype. We gained additional insight on which parameters to tweak next.\\n In spite of the baseline still being faster, the current prototype already\\n achieves a significant speedup when compared to the naive approach of simply\\n running full chain-sync with all peers.\\n- Tech debt: on track.\\n - We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe continued working on property-tests for the UTxO HD prototype. In particular\\nwe merged the [era-transition tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4073).\\n\\n#### Backing store property tests\\n\\nThe [backing store property tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4081) has been\\nreviewed. The next steps are:\\n\\n- Improve error handling and command generation.\\n- Add coverage testing to check that we are not failing to cover interesting\\n test cases.\\n\\nThe [monadic cursor API](https://github.com/input-output-hk/lmdb-simple/pull/1)\\nwent through its first review round. The API is in a relatively stable state.\\nThis PR also unifies the `cborg` and `serialise`-based interfaces to LMDB\\noperations. The next steps are:\\n\\n- Write\\n [`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\n state-machine tests for this API.\\n- Adapt the changes in the serialisation interface in the backing store property\\n tests. This will involve adding boilerplate code in consensus to make up for\\n the removal of the `cborg`-based interface.\\n\\n## LSM tree implementation\\n\\nWe worked on the [LSM tree\\nprototype](https://github.com/input-output-hk/ouroboros-network/issues/4121). In\\nparticular, we focused on tuning the LSM tree design to the different workloads\\nthat consensus has (eg syncing, normal node operation, etc).\\n\\n### Benchmarking the CSJ prototype\\n\\nWork on improving the chain-sync jumping performance is ongoing. In particular\\nwe compared the performance of different jump intervals, which, somewhat\\nsurprisingly, do not make a significant difference. In particular, we are seeing\\nperiodic \\"plateaus\\" where the chain-sync tip does not progress, but they are\\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\\ncombination of the garbage collector (GC) pauses, and the actual time it takes\\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\\nfragment.\\n\\nIn the coming weeks we will try to shorten these plateaus via a combination of\\ntweaking GC options and less synchronisation in the CSJ governor.\\n\\nThe following plot shows the performance of the chain-sync jumping prototype\\nusing different jumping intervals. It compares the syncing progress by plotting\\nthe slots of adopted blocks against time. The baseline is still faster, however\\nit is worth noting that the current prototype already achieves a significant\\nspeedup when compared to the naive approach of simply running full chain-sync\\nwith all peers.\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline.svg)\\n\\nThe second plot shows the syncing progress sliced to a chosen ~5min interval,\\nand includes, in addition to the slots of adopted blocks, the slots of the tip\\nof the ChainSync fragment. This allows us to see how far ahead of the selected\\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\\nthat the CS fragment tip is not progressing for significant periods\\n(\\"plateaus\\").\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg)\\n\\n## Technical debt\\n\\nWe [clarified](https://github.com/input-output-hk/ouroboros-network/pull/4098) a\\ncommon source of confusion around VRF tie-breaking and cross-era chain\\nselection. This PR involved correcting potentially misleading names of\\nVRF-related functions, and providing context for a particular VRF value is\\nused for tie-breaking."},{"id":"2022-11-02-ledger","metadata":{"permalink":"/cardano-updates/2022-11-02-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-ledger.md","source":"@site/blog/2022-11-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.275,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-02-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-02-node-cli-api"}},"content":"## High level summary\\nWe have made the decision to use the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\\nto the model. In particular, we now have a lot of support for axiomatic set theory.\\nWhile the next ledger era is still in the design phase, most of the team remains working\\non technical debt.\\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\\na ledger core module, we have finished up our benchmarking around the problematic `TICKF`\\nledger transition (while improving the performance), made conveniences to the development\\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\\nfixed some flaky tests, and deleted some dead code.\\n\\n## Lower level summary\\n\\n### Axiomatic Set Theory\\n\\nThe formal ledger model now has support for much of the set theory that we make use of in\\nthe formal ledger specifications. See [[pull-20]].\\n\\n### Completed Technical Debt\\n\\n- We have addressed issues with two of our most problematic and flaky tests.\\n See [[pull-3039]] and [[pull-3093]].\\n- We have added more documentation and tests to the Twiddler module. This is a module which\\n makes our CBOR serialization round-trip tests much more robust, and will also hopefully\\n help enforce the mandate for downstream libraries to never re-serialize data that needs\\n to be hashed. See [[pull-3073]] and [[pull-3095]]\\n (we cannot merge 3095 just yet, due to a preference for merging other features).\\n- We have finished our long analysis of the problematic `TICKF` transition.\\n We now have a lot of benchmarks surrounding this code, and have added performance improvements.\\n See [[pull-3068]] and [[issue-3035]].\\n- We have restored support for\\n [ghcid](https://hackage.haskell.org/package/ghcid)\\n in our repository. This is a tool for developing with Haskell that many of us find greatly\\n improves our productivity by providing us with constant feedback from the type checker.\\n See [[pull-3112]].\\n- After much activity on the cost model, we have done some final clean up of the code.\\n See [[pull-3075]] and [[pull-3101]].\\n- We moved a lot of the existing user facing documentation regarding native tokens into the\\n ledger repository, and cleaned it up\\n (most of the heavy lifting was done by our amazing technical writers).\\n See [[pull-3091]].\\n- We removed dead code. See [[pull-3089]].\\n- We moved a lot of code from the Shelley specific libraries to the ledger core library.\\n See [[pull-3109]] and [[pull-3110]].\\n- We\'ve removed more of the awkward legacy template Haskell names.\\n See [[pull-3108]].\\n\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20\\n[pull-3039]: https://github.com/input-output-hk/cardano-ledger/pull/3039\\n[pull-3093]: https://github.com/input-output-hk/cardano-ledger/pull/3093\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3095]: https://github.com/input-output-hk/cardano-ledger/pull/3095\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3112]: https://github.com/input-output-hk/cardano-ledger/pull/3112\\n[pull-3075]: https://github.com/input-output-hk/cardano-ledger/pull/3075\\n[pull-3101]: https://github.com/input-output-hk/cardano-ledger/pull/3101\\n[pull-3091]: https://github.com/input-output-hk/cardano-ledger/pull/3091\\n[pull-3089]: https://github.com/input-output-hk/cardano-ledger/pull/3089\\n[pull-3109]: https://github.com/input-output-hk/cardano-ledger/pull/3109\\n[pull-3110]: https://github.com/input-output-hk/cardano-ledger/pull/3110\\n[pull-3108]: https://github.com/input-output-hk/cardano-ledger/pull/3108"},{"id":"2022-11-02-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-11-02-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-node-cli-api.md","source":"@site/blog/2022-11-02-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.265,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-02-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-11-02-ledger"},"nextItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2022-11-02-release"}},"content":"# 2022-11-02 - 2022-11-15\\n\\n## High level summary\\n- Documentation improvments\\n- Merged community contributions\\n- Exposing types from cardano-api requested by the community/other teamss\\n- Test output has been improved so diagnosing failures is now easier\\n- Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)\\n- Refactoring of cardano-testnet making it more useable as a library (ongoing)\\n- Release 1.35.4 was merged & released\\n\\n## Completed\\n\\n### cardano-cli\\n- [Community contributions - doc fixes and spelling errors](https://github.com/input-output-hk/cardano-node/pull/4567)\\n\\n### cardano-api\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add Ord instance for AddressInEra](https://github.com/input-output-hk/cardano-node/pull/4587)\\n- [Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4496)\\n- [Expose TextEnvelopeCddl from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4635)\\n- [Expose txScriptValidityToScriptValidity in Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4628)\\n- [export RawBytesHexError](https://github.com/input-output-hk/cardano-node/pull/4599)\\n\\n### cardano-node\\n- [Add Plutus minting script doc](https://github.com/input-output-hk/cardano-node/pull/2883)\\n- [Improve test output](https://github.com/input-output-hk/cardano-node/pull/4575/files)\\n- [Enable stale bot](https://github.com/input-output-hk/cardano-node/pull/4586)\\n- [Add link to troubleshooting page in the wiki](https://github.com/input-output-hk/cardano-node/pull/4557)\\n- [Use environment files in Github Actions](https://github.com/input-output-hk/cardano-node/pull/4550)\\n\\n\\n### cardano-testnet\\n- [Add single entrypoint for starting testnets](https://github.com/input-output-hk/cardano-node/pull/4544)\\n- [Improve cardano-testnet test output](https://github.com/input-output-hk/cardano-node/pull/4575)\\n- [Reorder module hierarchy](https://github.com/input-output-hk/cardano-node/pull/4595)\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-02-release","metadata":{"permalink":"/cardano-updates/2022-11-02-release","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-release.md","source":"@site/blog/2022-11-02-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"release","permalink":"/cardano-updates/tags/release"}],"readingTime":0.445,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2022-11-02-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-11-02-node-cli-api"},"nextItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-11-02-system-test"}},"content":"## Node Reelease Update\\n## 2022-10-19 - 2022-11-02\\n\\n### Executive Summary\\nThe team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.\\n\\n1.35.4 release candidates have been created and are being tested internally and externally.\\n\\n### Completed\\n\\n- [1.35.4-rc1 tag](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [1.35.4-rc2 tag (config changes only for preview)](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [CHaP Migration] (https://github.com/input-output-hk/cardano-node/pull/4540)\\n\\n### In Progress\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst)\\n\\n- [Cicero CI Migration](https://input-output-hk.github.io/cardano-updates/2022-08-12-sre)"},{"id":"2022-11-02-system-test","metadata":{"permalink":"/cardano-updates/2022-11-02-system-test","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-02-system-test.md","source":"@site/blog/2022-11-02-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"system-test","permalink":"/cardano-updates/tags/system-test"}],"readingTime":0.4,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-11-02-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/cardano-updates/2022-11-02-release"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-11-01-db-sync"}},"content":"## High level summary\\n\\nWe have been focused on:\\n* Fully opening our test results (on top of the existing tests & tools): \\n See [cardano-node-tests webpage](https://input-output-hk.github.io/cardano-node-tests/).\\n* Started to test and automate the new functionalities added in the `1.35.4-rc1` node tag \\n See [test results tracking page](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst).\\n* Made some improvements to the automated db-sync sync tests \\n See [db-sync tests](https://github.com/input-output-hk/cardano-node-tests/tree/db_sync_tests/db_sync_tests).\\n* Multiple cleanups and updates to the cardano-node-tests framework\\n* Updated the nightly pipelines for the cardano-node-tests after the Babbage HF"},{"id":"2022-11-01-db-sync","metadata":{"permalink":"/cardano-updates/2022-11-01-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-11-01-db-sync.md","source":"@site/blog/2022-11-01-db-sync.md","title":"DB Sync Team Update","description":"High level summary","date":"2022-11-01T00:00:00.000Z","formattedDate":"November 1, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":0.86,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-11-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/cardano-updates/2022-11-02-system-test"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-28-hydra"}},"content":"## High level summary\\n\\nThe DBSync team is preparing a release which introduces schema simplifications, removes indexes,\\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\\nresync from genesis.\\n\\n## Lower level summary\\n\\n### Schema simplifications\\n\\nIndexes, Unique and Foreign keys are removed in order to speedup syncing\\n[#1295](https://github.com/input-output-hk/cardano-db-sync/pull/1295)\\nThe same pr also introduces a different way to rollback, which doesn\'t rely on foreign keys and\\nindexes.\\n\\n### Performance\\n\\nThe DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\\nconservative number of these will be included in the next release and the rest can be found in\\n[performance view](https://github.com/orgs/input-output-hk/projects/52/views/7).\\n\\n### Migrations and resyncing\\n\\nThe next release will be 13.1.0, it will enable a migration without the need to resync. It will also\\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294)\\n\\n### Release\\n\\nThe release has been mostly cherry-picked from master\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294) and its scope can be seen\\n[release view](https://github.com/orgs/input-output-hk/projects/52/views/6)"},{"id":"2022-10-28-hydra","metadata":{"permalink":"/cardano-updates/2022-10-28-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-hydra.md","source":"@site/blog/2022-10-28-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.795,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-28-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-11-01-db-sync"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-10-28-network"}},"content":"## High level summary\\n\\nThis week, the hydra team completed several user experience improvements to the\\n`hydra-tui` and `hydra-node`, and delivered a first version of persisted head\\nstates by publishing release version\\n[`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0).\\nBesides this, they met with researchers on topic of the HeadV1 specification and\\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.\\n\\n## What did the team achieve this week\\n\\n- Completed the UX improvements on the `hydra-tui`\\n- Released version [`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0), which delivers a first version of persisted head states\\n- Met with researchers on the HeadV1 specification\\n- Started work on the RFP for our external audit\\n\\n## What are the goals of next week\\n\\n- Complete ADR18 implementation and get it merged\\n- Start work on event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Have a first plutus script gap closed [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)"},{"id":"2022-10-28-network","metadata":{"permalink":"/cardano-updates/2022-10-28-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-network.md","source":"@site/blog/2022-10-28-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-10-28-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-28-hydra"},"nextItem":{"title":"Performance & Tracing Team Update","permalink":"/cardano-updates/2022-10-28-performance-and-tracing"}},"content":"## High-level summary\\n\\nThe team has focused on debuging & fixing bugs for the **P2P single relay release**, which included\\n\\n* diagnosing, fixing and writing tests for a bug in `peer-state-actions` which\\n fortunately hasn\'t been released;\\n* diagnosing & preventing misconfiguration of DNS\\n\\nWe also focused on developing **peer sharing**. We also held a session with\\nthe scientists on eclipse evasion.\\n\\n## Detailed description\\n\\n### P2P Network Stack\\n\\nDuring the past two weeks the team focused on p2p single relay release and peer\\nsharing. We found and fixed an important bug recently introduced in one of the\\ncomponents of p2p networking stack (fortunately never released). Together with\\na fix, we designed a unit test diffusion simulation as well as quickcheck\\nproperty test (both could reproduce it). We also changed the code in a way that\\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\\nFor more see:\\n\\n* [ouroboros-network#4067](https://github.com/input-output-hk/ouroboros-network/pull/4067)\\n* [ouroboros-network#4086](https://github.com/input-output-hk/ouroboros-network/pull/4086)\\n\\nInitial benchmarking run of the P2P code was executed. The results where\\nunlike what we see on the mainnet. We found a possible misconfiguration of the\\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\\nthe next benchmarking results. See more at:\\n\\n[ouroboros-network#4106](https://github.com/input-output-hk/ouroboros-network/pull/4106)\\n\\nWe also started working on P2P single relay release. The PR\\n[ouroboros-network#4120](https://github.com/input-output-hk/ouroboros-network/pull/4120)\\nincludes _108_ patches cherry-picked from the `master` branch. We started\\nworking toward integration these changes against the release branch of\\n`cardano-node`. Early next week we ought to be able to have an early version\\nof `cardano-node` with _non experimental P2P support_!\\n\\nFor more detailed release plan please see [P2P - Single\\nRelay](https://github.com/input-output-hk/ouroboros-network/issues/3888)\\nissue.\\n\\n### Consensus\\n\\nWe identified and fixed missing error reporting in consensus\\ninitialisation phase. See more at\\n[ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n\\n### Cardano Node\\n\\nWe also made changes in `cardano-node` in order to give better experience for\\nnode operators. This includes updating severities of some of the traces as\\nwell as implementing new format of the p2p topology file. For more see:\\n\\n* [cardano-node#4563](https://github.com/input-output-hk/cardano-node/pull/4563).\\n* [cardano-node#4561](https://github.com/input-output-hk/cardano-node/pull/4561)\\n\\n### Peer Sharing\\n\\nWe continued working on implementation of peer sharing. We have an early\\nimplementation which will be reviewed and analysed in next weeks. We started\\nworking on `cardano-node` integration. We need\\n[PR #4392](https://github.com/input-output-hk/cardano-node/pull/4392) to be merged\\nbefore such integration will be able to land in `cardano-node`, although this\\nis _not blocking_ us currently. See more at:\\n\\n* [ouroboros-network#4019](https://github.com/input-output-hk/ouroboros-network/pull/4019)\\n\\n### Eclipse Evasion\\n\\nWe held a session which included Alexander Russel, Sandro Coretti-Drayton and\\nNick Frisby from the consensus team. We discussed high lever design of the\\neclipse evasion scheme, which is important for the design and implementation of\\n`ouroboros-genesis`. We got a positive feedback from the researchers.\\n\\n### IO-Sim\\n\\nIn this period we made little progress towards releasing `IO-Sim` on Hackage.\\nA single [PR](https://github.com/input-output-hk/io-sim/pull/32) which added\\na few missing instances of the `STM` monad.\\n\\n### Open Source\\n\\nWe made sure the CI runs for PRs which comes from forks (which is important to\\naccept contributions from 3rd parties).\\n\\n### Mithril Cardano Integration\\n\\nWe held initial discussions with Arnaud Bailly about possible path to integrate\\nmithril to `cardano-node` and take advantage of the `ouroboros-network`\\ndiffusion layer."},{"id":"2022-10-28-performance-and-tracing","metadata":{"permalink":"/cardano-updates/2022-10-28-performance-and-tracing","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-performance-and-tracing.md","source":"@site/blog/2022-10-28-performance-and-tracing.md","title":"Performance & Tracing Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"performance-tracing","permalink":"/cardano-updates/tags/performance-tracing"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & Tracing Team Update","slug":"2022-10-28-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-10-28-network"},"nextItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2022-08-12-sre"}},"content":"## High level summary\\n\\nOn the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.\\n\\nOn the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.\\n\\n## Executive summary\\n\\n- The new tracing system public release is getting closer, as we\'re resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.\\n- The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.\\n- The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE."},{"id":"2022-08-12-sre","metadata":{"permalink":"/cardano-updates/2022-08-12-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-28-sre.md","source":"@site/blog/2022-10-28-sre.md","title":"SRE Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"sre","permalink":"/cardano-updates/tags/sre"}],"readingTime":3.04,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2022-08-12-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Team Update","permalink":"/cardano-updates/2022-10-28-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-10-27-crypto"}},"content":"## High level summary\\n\\nThe SRE team is heavily working on the Equinix Metal migration, replacing Hydra\\nwith Cicero, and a new version of Spongix.\\n\\n## Lower level summary\\n\\n### OpenZiti\\n\\n- Work is ongoing on our OpenZiti integration into Bitte in [[bitte-zt]].\\n- CI-World deployment of Darwin CI Ziti service in [[ci-world-commit-d40f4d]].\\n- Multiple issues filed, and a lot of discussion with the OpenZiti developers,\\n we\'re making pretty rapid progress thanks to them.\\n- Work on getting Equinix baremetal machines integrated into AWS World Bitte\\n clusters utilizing a Ziti ZTNA network overlay to bridge the networking of\\n the two environments and get IAM extension to Equinix machine for Nomad\\n client onboarding.\\n- A Nix Flake for most of our OpenZiti dependencies including the Console,\\n Controller, Edge Tunnel, and Router is now at [[openziti-bins]].\\n- The Flake also includes a WiP NixOS modules for these components.\\n- Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\\n no issues seen so far\\n- Moved the console to traefik routing service (`zac.$DOMAIN`) and\\n controller/edge router stay at `zt.$DOMAIN`, but have registered consul\\n services\\n\\n### Cicero & Tullia Integrations\\n\\n- Added webhook for [[haskell.nix]].\\n- Finished Cicero CI action for [[cardano-addresses-pull-205]].\\n- Fixed cardano-prelude cicero action in [[cardano-prelude-pull-176]].\\n- Fixed the `abcird-stdlib/publish` action [[abcirdc-pull-104]]\\n- fix error on vm-bigdisk flake configs [[cicero-pull-66]].\\n- Helped with Cicero actions and answered questions for [[plutus]]\\n [[cardano-prelude]], and [[abcirdc]].\\n- Merged [[cardano-base-pull-323]] for Tullia on cardano-base.\\n- Merged Cicero action in [[cardano-ogmios-pull-5]].\\n- Opened [[cardano-explorer-app-pull-427]] to add Tullia and Cicero.\\n- Opened [[cardano-ledger-pull-3097]] to add Cicero CI action.\\n- Opened [[cardano-node-pull-4489]] to add Tullia and Cicero, including\\n OS-agnostic jobs.\\n- Opened [[ouroboros-network-pull-4108]] to add Cicero action.\\n- Reviewed [[plutus-pull-4918]] and helped test it.\\n- Update Tullia in [[abcirdc-pull-97]] to build if a tag is given.\\n\\n### Cicero & Tullia Features\\n\\n- Improvements to Tullia task aggregation to make [[cardano-addresses]] build\\n correctly.\\n- Better tullia CUE lib default for tags [[tullia-commit-4df3c5d]].\\n- Put `cache.nixos.org` back in `cache.iog.io`\'s upstreams. This is now\\n considered a public cache again, and without it some Cicero evaluations had\\n to build huge packages.\\n- Started working on a flake-parts module for Tullia.\\n- Started working on cutting down Tullia task build time by putting facts in\\n JSON files.\\n- Fixed running into kernel arg limit by reading tullia\'s DAG from a file\\n- Merged [[tullia-pull-9]] that fixes several issues related to error reporting.\\n and escaping.\\n- Added Mac builders in Cicero on CI-World.\\n- Started work on Tullia invocation caching.\\n\\n### Spongix\\n\\n- A lot of progress on an SQlite backed version of Spongix, it already supports\\n the full HTTP binary cache protocol but still lacks comprehensive testing and\\n some tuning, as well as recursive lookups.\\n- First steps in the implementation of the `nix-daemon` `ssh-ng` protocol so\\n Spongix can be used via SSH and we can get rid of basic auth.\\n\\n### Bugs\\n\\n- Discovered Cicero bug where Nomad reschedules cause the Github commit status\\n to get stuck in `pending`\\n- Discovered Cicero race condition bug around concurrent transactions for\\n codependent actions.\\n- Fixed tullia task order bug in [[cardano-addresses]]\\n- Diagnose Cicero action not triggered in [[abcirdc]]\\n- Fixed meta/description of the Tullia package in [[tullia-pull-7]]\\n- Add Vault token loop alerts in [[bitte-cells-pull-40]]\\n- Ongoing investigation on recurring Patroni and nomad-follower issues related\\n to token rotation.\\n\\n[abcirdc]: https://github.com/input-output-hk/abcirdc\\n[abcirdc-pull-104]: https://github.com/input-output-hk/abcirdc/pull/104\\n[abcirdc-pull-97]: https://github.com/input-output-hk/abcirdc/pull/97\\n[bitte-cells-pull-40]: https://github.com/input-output-hk/bitte-cells/pull/40\\n[bitte-zt]: https://github.com/input-output-hk/bitte/compare/zt\\n[cardano-addresses]: https://github.com/input-output-hk/cardano-addresses\\n[cardano-addresses-pull-205]: https://github.com/input-output-hk/cardano-addresses/pull/205\\n[cardano-base-pull-323]: https://github.com/input-output-hk/cardano-base/pull/323\\n[cardano-explorer-app-pull-427]: https://github.com/input-output-hk/cardano-explorer-app/pull/427\\n[cardano-ledger-pull-3097]: https://github.com/input-output-hk/cardano-ledger/pull/3097\\n[cardano-node-pull-4489]: https://github.com/input-output-hk/cardano-node/pull/4489\\n[cardano-ogmios-pull-5]: https://github.com/input-output-hk/cardano-ogmios/pull/5\\n[cardano-prelude]: https://github.com/input-output-hk/cardano-prelude\\n[cardano-prelude-pull-176]: https://github.com/input-output-hk/cardano-prelude/pull/176#issuecomment-1280947946\\n[cicero-pull-66]: https://github.com/input-output-hk/cicero/pull/66\\n[ci-world-commit-d40f4d]: https://github.com/input-output-hk/ci-world/commit/d40f4d19187a2128b6f0d63bde7e3f9a33071994\\n[haskell.nix]: https://github.com/input-output-hk/haskell.nix\\n[openziti-bins]: https://github.com/johnalotoski/openziti-bins\\n[ouroboros-network-pull-4108]: https://github.com/input-output-hk/ouroboros-network/pull/4108\\n[plutus]: https://github.com/input-output-hk/plutus\\n[plutus-pull-4918]: https://github.com/input-output-hk/plutus/pull/4918\\n[tullia-commit-4df3c5d]: https://github.com/input-output-hk/tullia/commit/4df3c5d956f1b062b950643da12768ae71acf245\\n[tullia-pull-7]: https://github.com/input-output-hk/tullia/pull/7\\n[tullia-pull-9]: https://github.com/input-output-hk/tullia/pull/9"},{"id":"2022-10-27-crypto","metadata":{"permalink":"/cardano-updates/2022-10-27-crypto","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-27-crypto.md","source":"@site/blog/2022-10-27-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-10-27T00:00:00.000Z","formattedDate":"October 27, 2022","tags":[{"label":"crypto","permalink":"/cardano-updates/tags/crypto"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-10-27-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/cardano-updates/2022-08-12-sre"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-21-hydra"}},"content":"## High level overview\\n\\nThe crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\\nmeeting the [acceptance criteria](https://github.com/input-output-hk/cardano-base/issues/315) in cardano-base,\\nwhich lacks some editorial comments on the style of dQuandrant\'s PR, the inclusion of one additional test, and\\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\\nbut also progressing on the implementation.\\n\\n## Low level overview\\n### SECP built-ins\\n* (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in [PR 313](https://github.com/input-output-hk/cardano-base/pull/313)\\n* CIP-0049 was addressed in the editors meeting, and [PR 250](https://github.com/cardano-foundation/CIPs/pull/250) was merged\\n* The unit-tests [PR 320](https://github.com/input-output-hk/cardano-base/pull/320) is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.\\n\\n### KES agent\\n* We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.\\n* We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s)."},{"id":"2022-10-21-hydra","metadata":{"permalink":"/cardano-updates/2022-10-21-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-21-hydra.md","source":"@site/blog/2022-10-21-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-21T00:00:00.000Z","formattedDate":"October 21, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":0.97,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-21-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/cardano-updates/2022-10-27-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-19-node-cli-api"}},"content":"## High level summary\\n\\nThis week, the hydra team reviewed and addressed several open comments on the\\nnew HeadV1 specification, completing a list the of identified gaps between\\nspecification and implementation while doing so. In the wake of the recent\\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\\nwell as potential research avenues.\\n\\n### What did the team achieve this week\\n\\n- Had the monthly review meeting, a bit earlier than expected: \\n- Reviewed and addressed several open comments on HeadV1 specification.\\n- Completed the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Had two meetings with SundaeSwap to incorporate their feedback (on research and on the roadmap).\\n- Some small fixes on TUI and our docker images. [#538](https://github.com/input-output-hk/hydra-poc/issues/538) [#562](https://github.com/input-output-hk/hydra-poc/pull/562)\\n- Met with the internal audit team and clarified scope.\\n\\n### What are the goals of next week\\n\\n- Complete the last two items required for a version `0.8.0`.\\n- Cut the next release, version `0.8.0`\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Have the CI build macos artifacts"},{"id":"2022-10-19-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-10-19-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-19-node-cli-api.md","source":"@site/blog/2022-10-19-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-10-19T00:00:00.000Z","formattedDate":"October 19, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-19-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-21-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-18-consensus"}},"content":"# 2022-10-19 - 2022-11-01\\n\\n## High level summary\\n\\nThis sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node\'s mempool for the following information:\\n- Ask the node about the current mempool\'s capacity and sizes\\n- Request the next transaction from the mempool\'s current list\\n- Query if a particular transaction exists in the mempool\\n\\nOutside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric `tx_submit_fail_count` has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:\\n- Documentation improvments\\n- Release 1.35.4 was merged & released\\n- Exported various types from cardano-api that were requested by community members\\n\\n## Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n### cardano-cli\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n\\n### cardano-api\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Export IsPlutusScriptLanguage from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4554)\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add ToJSON and FromJSON instances for Address](https://github.com/input-output-hk/cardano-node/pull/4568)\\n- [Export TxIns type alias from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4565)\\n- [Export more generators from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4534)\\n\\n### cardano-submit-api\\n- [Add tx_submit_fail_count metric](https://github.com/input-output-hk/cardano-node/pull/4566)\\n\\n### cardano-node\\n- [Upgrade to cabal-3.8.1.0](https://github.com/input-output-hk/cardano-node/pull/4549)\\n- [Update building-the-node-using-nix.md](https://github.com/input-output-hk/cardano-node/pull/4613)\\n\\n### cardano-testnet\\n- None\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-10-18-consensus","metadata":{"permalink":"/cardano-updates/2022-10-18-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-18-consensus.md","source":"@site/blog/2022-10-18-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-10-18T00:00:00.000Z","formattedDate":"October 18, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.225,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-19-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-14-hydra"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team worked on adding property test for\\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\\nbacking store. Thanks to these tests we were able to uncover a bug in the\\nprototype. On the Genesis front, we benchmarked a different version of the\\nChainSync jumping prototype to try to improve its performance, but this did not\\nresult in any noticeable speedup.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We focused on increasing test coverage for the UTxO-HD prototype:\\n - We started implementing Cadano-eras transition property-tests.\\n - We started implementing state-machine property-tests for the mempool.\\n - We merged the mempool rewrite.\\n - We started working on state-machine tests for the backing store. This\\n uncovered a bug in the range-read implementation of the LMDB backing\\n store.\\n- Genesis: on track.\\n - We benchmarked a version of the Genesis ChainSync Jumping prototype that\\n spreads out the ChainSync updates over a longer period of time. This did not\\n result in any noticeable speedup.\\n - We investigated the overhead introduced by non-ChainSync components, but no\\n conclusions could be drawn from the benchmarks we ran.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe focused on increasing test coverage for the UTxO HD prototype. We also merged\\nthe [mempool\\nrewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049).\\n\\n#### Era transition property tests\\n\\nWe started implementing [Cardano era transition property\\ntests](https://github.com/input-output-hk/ouroboros-network/issues/4043),\\nwhich are needed for making sure that the ledger tables get updated in the\\nright way when we move from one era to the next. There are at the moment two\\nimportant transitions.\\n- Byron to Shelley: where all the UTxO is transferred from in-memory Byron\\n state (which has no tables) to the ledger tables of the Shelley state.\\n- Shelley to Allegra: where the AVVM addresses must be deleted.\\n\\nWe have tests for the Byron to Shelley transitions. We are working on adding\\nthe remaining ones.\\n\\n#### Mempool state-machine tests\\n\\nWe started implementing [state-machine property tests for the\\nmempool](https://github.com/input-output-hk/ouroboros-network/issues/4044).\\nThe mempool is currently tested via pure property tests, and use a ledger\\nstate without tables. With the introduction of UTxO HD, testing the concurrent\\nbehavior of the mempool became of crucial importance (eg now we have to\\nacquire locks to flush the backing store). In addition, we need to test a\\nledger state with tables. These needs led to the creation of a new set of\\nproperty tests. In particular we aim to run parallel state-machine tests that\\nexercise the mempool in a way similar to how the node would make use of it.\\n\\n#### Backing store property tests\\n\\nWe started working on [state-machine tests for the backing\\nstore](https://github.com/input-output-hk/ouroboros-network/pull/4081) that UTxO\\nHD uses. The property tests uncovered errors in the range-reads implementation\\nof the LMDB backing store. To facilitate fixing this bug, we made\\n[changes](https://github.com/input-output-hk/lmdb-simple/pull/1) to the Haskell\\nLMDB bindings.\\n\\n### Benchmarking the CSJ prototype\\n\\nPrompted by previous benchmarks showing significant improvements in sync time by\\nusing more capabilities, we implemented a way to spread out the ChainSync\\nupdates over a larger period instead of firing them all at the same time. This\\ndidn\'t result in a noticeable speedup.\\n\\nWe also benchmarked the prototype with CSJ disabled (such that just the dynamo\\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\\nThis results in era-specific behavior (speed is like the prototype in Byron, but\\nlike the baseline in Shelley). This deserves a closer look in the future.\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n - Red: baseline\\n - Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.\\n - Blue: like Green, jumps are spread out.\\n - Orange: variant with no jumping, to measure unrelated overhead.\\n\\n![](/images/happy-path-csj-prototype-bench-2.svg)"},{"id":"2022-10-14-hydra","metadata":{"permalink":"/cardano-updates/2022-10-14-hydra","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-14-hydra.md","source":"@site/blog/2022-10-14-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"hydra","permalink":"/cardano-updates/tags/hydra"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-14-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-18-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-10-14-ledger"}},"content":"## High level summary\\n\\nThis week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the `hydra-node` over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks \\"past the opening of a Head\\". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.\\n\\n## What did the team achieve this week\\n\\n- Last week we thought we were done with [ADR18](https://hydra.family/head-protocol/adr/18/), but were not ...\\n- ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.\\n- Implemented a first version for persistence [#187](https://github.com/input-output-hk/hydra-poc/issues/187) in response.\\n- Enhanced CI to publish test results [on our website](https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results)\\n- Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!\\n- Pulled static executable feature [#200](https://github.com/input-output-hk/hydra-poc/issues/200) into scope, implemented it and merged it!\\n- Received and read through a project proposal by a vendor (building a Hydra platform).\\n\\n## What are the goals of next week\\n\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Cut the next release, version `0.8.0`\\n- Address open comments on specification document & complete the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Have the CI build macos artifacts"},{"id":"2022-10-14-ledger","metadata":{"permalink":"/cardano-updates/2022-10-14-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-14-ledger.md","source":"@site/blog/2022-10-14-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.03,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-10-14-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/cardano-updates/2022-10-14-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-05-consensus"}},"content":"## High level summary\\n\\nThe ledger team is still primarily focused on addressing\\n[technical](https://github.com/input-output-hk/cardano-ledger/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Acredit_card%3A+technical-debt%22)\\n[debt](https://github.com/input-output-hk/cardano-ledger/projects/3).\\nWe now have the infrastructure for versioning our serialization schemes,\\nwhich we continue to put into action.\\nWe have made first steps towards getting proper support for the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\n(in particular, we\'ve added nix builds and\\ncontinuous integration support).\\nWe are wrapping up an investigation of the performance of a critical\\nfunction used by the consensus layer for leader checks.\\nFinally, we are improving the packaging and versioning of our code.\\n\\n## Lower level summary\\n\\n### Completed Technical Debt\\n\\n- Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\\n our code lives in the `cardano-ledger-shelley` package, though with hindsight we can say that\\n much of it should live in `cardano-ledger-core`.\\n We continue to move things to `cardano-ledger-core`, and have much more to come. [[pull-3059]]\\n- We now have the infrastructure to support **versioned** serialization schemes.\\n The inability to do this has caused us a lot difficulties,\\n such as [[issue-3003]], [[issue-2965]] and [[issue-2444]].\\n We are still in the process of switching to the versioned serialization scheme\\n (such as [[pull-3078]]),\\n but the infrastructure was completed in [[pull-3063]].\\n- We now have proper nix and CI support for the formal ledger project. [[pull-19]]\\n- A separate team is helping bring support for\\n [CHaP](https://github.com/input-output-hk/cardano-haskell-packages)\\n to all the cardano-node repositories.\\n We have been helping out with this effort.\\n* A separate team continues working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4.\\n We have been helping out with this effort.\\n\\n### In-progress Technical Debt\\n\\nWe also have several fairly large pull-requests in review\\nthat we are working on.\\n\\n- In an on-going attempt to build out a more user-friendly API,\\n we continue to remove `HasField` instances in place of using micro-lenses.\\n The protocol parameters, in particular, are being worked on. [[pull-3045]]\\n- We are also renaming record fields to be consistent across the repository. [[pull-3062]]\\n- We are now cleaning up all the work we did to understand the performance\\n of the TICKF transition. We have some improvements to the computatation\\n as well. [[pull-3068]]\\n- We are adding more documentation, in particular to our `Twiddler` functionality. [[pull-3073]]\\n- The formal ledger is adding support for finite set theory. [[pull-20]]\\n\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n\\n[pull-3059]: https://github.com/input-output-hk/cardano-ledger/pull/3059\\n[pull-3045]: https://github.com/input-output-hk/cardano-ledger/pull/3045\\n[pull-3062]: https://github.com/input-output-hk/cardano-ledger/pull/3062\\n[pull-3063]: https://github.com/input-output-hk/cardano-ledger/pull/3063\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3078]: https://github.com/input-output-hk/cardano-ledger/pull/3078\\n[pull-19]: https://github.com/input-output-hk/formal-ledger-specifications/pull/19\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},{"id":"2022-10-05-consensus","metadata":{"permalink":"/cardano-updates/2022-10-05-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-05-consensus.md","source":"@site/blog/2022-10-05-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-10-05T00:00:00.000Z","formattedDate":"October 5, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":1.825,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-05-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-10-14-ledger"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-10-04-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team worked on improving the\\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\\nthe issues that prevented us from running system level benchmarks. Also on the\\nUTxO HD front, we have an improved implementation of the sequence-of-differences\\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\\nthe UTxO HD feature.\\n\\n## Executive summary\\n\\n- With the latest implementation of ChainSync jumping we are closer to the\\n baseline performance. In particular, the prototype seems to benefit from the\\n extra concurrency provided by additional capabilities.\\n- We rewrote the implementation of the mempool in the UTxO HD prototype. This\\n rewrite was required due to performance problems we observed when running the\\n [workbench](https://github.com/input-output-hk/cardano-node/blob/master/Makefile#L51).\\n These performance problems prevented us from running system level benchmarks.\\n The rewrite solved these issues. After the [UTxO-HD: mempool\\n rewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049) PR is\\n merged, we will contact the Benchmarking team so that they run the system\\n level benchmarks.\\n- The implementation of sequences of differences based on anti-diffs was\\n integrated into the UTxO HD prototype. It is pending\\n [review](https://github.com/input-output-hk/ouroboros-network/pull/4036) and\\n we also need to run replay and syncing benchmarks to confirm that this will\\n deliver a performance improvement, as observed in our micro-benchmarks.\\n- [The UTxO HD prototype\\n inspection](https://github.com/input-output-hk/ouroboros-network/issues/3944)\\n resulted in a [list of\\n tests](https://github.com/input-output-hk/ouroboros-network/issues/4045)\\n needed for consensus to consider the UTxO HD prototype as fully tested.\\n\\n## Additional information\\n\\n### Genesis\\n\\nBenchmarking setup: 50MBit/s, 50ms latency\\n\\n - Red: baseline\\n - Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.\\n\\nAs ChainSync Jumping involves many concurrent network operations at every jump,\\nwe tried to run the node with 6 instead of the default 2 capabilties.\\n\\n - Orange: baseline with 6 capabilities\\n - Blue: CSJ prototype with 6 capabilities\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n![](/images/happy-path-csj-prototype-bench-1.svg)\\n\\nFurther work includes whether we can tune the prototype to better handle few\\ncapabilities, or to adapt the default number of capabilities (potentially just\\nwhile syncing)."},{"id":"2022-10-04-db-sync","metadata":{"permalink":"/cardano-updates/2022-10-04-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-04-db-sync.md","source":"@site/blog/2022-10-04-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-10-04-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-10-05-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-04-node-cli-api"}},"content":"## DBSync Update\\n\\n\\n### Fast restarts\\n We fixed a long overdue issue in db-sync which caused long delays on restarts\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266). This has been\\n one of db-sync main objectives for this period. Restarts are now very fast,\\n because db-sync deletes almost nothing from the db, it just replays the ledger rules until it\\n reaches the tip of the db. The fix also improves reconnection speed, in cases where the node\\n restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\\n deployment mess up a very old snapshot or no snapshot at all is used.\\n\\n### Property based testing\\nWe added stateful property based testing, using `quickcheck-state-machine`\\n [1269](https://github.com/input-output-hk/cardano-db-sync/pull/1269). These tests use empty or\\n almost empty blocks to test the new behaviour of restarts and rollbacks.\\n\\n These tests generate arbitrarily a list of symbolic commands from these:\\n\\n```\\nRollForward Int\\nRollBack BlockNo\\nStopDBSync\\nStartDBSync\\nRestartNode\\nAssertBlockNo BlockNo\\n```\\n\\nThe commands are translated into real commands. For example `RollForward Int` will forge a new block\\nthat fits on the current chain. These real commands are executed against db-sync using the mock\\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\\nwhich looks like this:\\n\\n``` haskell\\n Model\\n { serverTip :: BlockNo\\n , dbSyncTip :: BlockNo\\n , dbSynsIsOn :: Bool\\n , dbSynsHasSynced :: Bool\\n }\\n```\\n\\nFinally a number of postconditions are checked, related to the eventual block number of db-sync.\\n\\n### Tech Debt\\n\\nWe handled a number of tech debt in\\n [1275](https://github.com/input-output-hk/cardano-db-sync/pull/1275)\\n This improves the code format of db-sync, deletes many queries that were never used and groups the\\n others. This tech debt resolution not only improves the experience of working in db-sync, but can\\n facilitate some of our other objectives, as it makes it very explicit which queries are used\\n during syncing and which indexes are necessary.\\n\\n### Smash\\n\\nWe worked on fixing an issue related to fetching pool metadata\\n [1276](https://github.com/input-output-hk/cardano-db-sync/pull/1276).\\n The issue which is described in\\n [1270](https://github.com/input-output-hk/cardano-db-sync/issues/1270)"},{"id":"2022-10-04-node-cli-api","metadata":{"permalink":"/cardano-updates/2022-10-04-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-10-04-node-cli-api.md","source":"@site/blog/2022-10-04-node-cli-api.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"cli-api","permalink":"/cardano-updates/tags/cli-api"}],"readingTime":0.98,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-04-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-10-04-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-30-ledger"}},"content":"## Node-Api-Cli Update\\n## 2022-10-04 - 2022-10-18\\n\\n### Executive Summary\\nThe majority of the team\'s time was spent between getting `1.34.4` ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to `cardano-cli`.\\n\\n### Completed\\n\\n- [GHC 9.2.4 preparations](https://github.com/input-output-hk/cardano-node/pull/4504)\\n\\n#### cardano-cli\\n\\n- [Serenity] - [Separate IO from txBuild and txBuildRaw functions](https://github.com/input-output-hk/cardano-node/pull/4491)\\n\\n#### cardano-api\\n\\n- [BUGFIX] - [TxWitness text envelope format does not roundtrip in Shelley era](https://github.com/input-output-hk/cardano-node/pull/4501)\\n\\n#### cardano-node\\n\\n- [Fix MacOS GHA CI](https://github.com/input-output-hk/cardano-node/pull/4526)\\n\\n### In Progress\\n\\n- [Release 1.34.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n#### cardano-cli\\n\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n\\n### cardano-api\\n\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-09-30-ledger","metadata":{"permalink":"/cardano-updates/2022-09-30-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-30-ledger.md","source":"@site/blog/2022-09-30-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-30T00:00:00.000Z","formattedDate":"September 30, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":2.285,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-30-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/2022-10-04-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-09-27-network"}},"content":"## Ledger Update\\n\\nWe have continued focusing nearly entirely on addressing technical debt.\\nA lot of design work has begun for the next ledger era,\\nbut we do not yet have anything concrete to share.\\n\\n### Technical debt issues completed\\n\\n* [[issue-1676]][[pull-2992]] We have finally removed the ledger dependency on the\\n `cardano-prelude` package. It was barely used in the ledger repository, and it added a dependency\\n that we did not want to maintain. It was a bit difficult to remove, and we had\\n to coordinate removing it from cardano-base.\\n A lot ended up going into [pull-2992][pull-2992], due to the coordination effort, and we ended\\n up updating Plutus as well.\\n This means that we\'ve now also made a lot of progress on the problematic cost model serialization\\n issues described in [issue-2902].\\n In particular, after we resolve [issue-3014], we will not have to wait an epoch before\\n releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.\\n* [[issue-3046]][[pull-3055]] We moved a module that is now only used in Byron to a Byron package.\\n* [[issue-3047]][[pull-3054]] We improved the interface to the `Value` (multi-asset) type.\\n* [[pull-3044]] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\\n were adding approximately 20 minutes to our compile time!\\n* [[issue-2932]][[pull-3036]] As a part of our ongoing re-organization of the codebase, we\\n have added a `Cardano.Ledger.[Era].Core` module to each ledger era that has a TxBody class.\\n Most classes defined in the era should go in this new module.\\n We also re-export the `Cardno.Ledger.Core` module and the previous `Cardano.Ledger.[Era].Core`\\n modules from each era.\\n\\n### Technical debt in progress\\n\\n* [[issue-3034]][[issue-3035]][[node-issue-4421]] We are continuing to write benchmarks to understand exactly where\\n all the time is being spent on executing the `TICKF` transition.\\n The consolidation of the per-stake-credential stake distribution to the per-stake-pool\\n distribution does seem to account for a large amount of time (near a second as written, which we\\n have down to about half a second with some optimizations),\\n but this does not account for everything.\\n Applying the reward update may also be a big contributing factor.\\n* [[pull-3033]][[pull-3038]][[pull-3041]] A separate team is working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.\\n* The nix scripts used to build our new\\n [formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications)\\n do not work consistently for everyone, and we have been working on fixing these issues.\\n* [[issue-3014]] We are still working on adding a versioning scheme to all of the ledger\\n serializers.\\n\\n[issue-1676]: https://github.com/input-output-hk/cardano-ledger/issues/1676\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902\\n[issue-2932]: https://github.com/input-output-hk/cardano-ledger/issues/2932\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014\\n[issue-3034]: https://github.com/input-output-hk/cardano-ledger/issues/3034\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n[issue-3046]: https://github.com/input-output-hk/cardano-ledger/issues/3046\\n[issue-3047]: https://github.com/input-output-hk/cardano-ledger/issues/3047\\n\\n[node-issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n\\n[pull-2992]: https://github.com/input-output-hk/cardano-ledger/pull/2992\\n[pull-3033]: https://github.com/input-output-hk/cardano-ledger/pull/3033\\n[pull-3038]: https://github.com/input-output-hk/cardano-ledger/pull/3038\\n[pull-3036]: https://github.com/input-output-hk/cardano-ledger/pull/3036\\n[pull-3041]: https://github.com/input-output-hk/cardano-ledger/pull/3041\\n[pull-3044]: https://github.com/input-output-hk/cardano-ledger/pull/3044\\n[pull-3054]: https://github.com/input-output-hk/cardano-ledger/pull/3054\\n[pull-3055]: https://github.com/input-output-hk/cardano-ledger/pull/3055"},{"id":"2022-09-27-network","metadata":{"permalink":"/cardano-updates/2022-09-27-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-27-network.md","source":"@site/blog/2022-09-27-network.md","title":"Network Team Update","description":"Network Update","date":"2022-09-27T00:00:00.000Z","formattedDate":"September 27, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":2.24,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-09-27-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-30-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-09-20-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n## Network Update\\n\\n### Ouroboros Network\\n\\n* We finished high and low level _peer sharing_ design. See\\n [Peer Sharing Implementation Plan](https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan)\\n* We started working on low-level design of _eclipse evasion_ (work in\\n progress).\\n* We decided to use **peer sharing** instead of overloaded and ambiguous _gossip_ term.\\n [PR input-output-hk/ouroboros-network#3980](https://github.com/input-output-hk/ouroboros-network/pull/3980)\\n* We fixed technical dept\\n [issue input-output-hk/cardano-node#3905](https://github.com/input-output-hk/ouroboros-network/issues/3905) in\\n the simulation testing of diffusion\\n [PR input-output-hk/cardano-node#4004](https://github.com/input-output-hk/ouroboros-network/pull/4004)\\n* We deployed all our nodes using our new nix based deployment architecture.\\n When deploying we found an issue in the\\n [`RTView`](https://github.com/input-output-hk/cardano-node/issues/3752).\\n\\n### Ouroboros Consensus\\n\\n* Recently we found out that the consensus does not log exceptions thrown during\\n intiialisation. This was fixed in\\n [PR input-output-hk/ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n As part of this pull request we also changed that all exceptions rethrown by\\n the connection handler thread are wrapped in `ExceptionInHandler`.\\n\\n#### Some older items, which were not announced\\n\\n* We identified and fixed an issue related to socket activation (socket options\\n where not set for sockets passed through socket activation).\\n [PR input-output-hk/cardano-node#3979](https://github.com/input-output-hk/ouroboros-network/pull/3979)\\n This fix will be released in the next `cardano-node` release.\\n\\n### Cardano Node\\n\\n* We extended the NixOs service module so that one can modify `socketPath`,\\n `runtimeDir`, `databasePath`, `traceSocketPathAccept`,\\n `traceSocketPathConnect` and `stateDir` options.\\n [PR input-output-hk/cardano-node#4196](https://github.com/input-output-hk/cardano-node/pull/4196)\\n\\n### IO-Sim\\n\\nWe resolved a number of issues before release of `io-sim` on hackage:\\n\\n* [issue input-output-hk/ouroboros-network#2797](https://github.com/input-output-hk/ouroboros-network/issues/2797)\\n* [issue input-output-hk/ouroboros-network#2650](https://github.com/input-output-hk/ouroboros-network/issues/2650)\\n* [issue input-output-hk/ouroboros-network#3436](https://github.com/input-output-hk/ouroboros-network/issues/3436)\\n* [issue input-output-hk/ouroboros-network#2588](https://github.com/input-output-hk/ouroboros-network/issues/2588)\\n* [issue input-output-hk/ouroboros-network#2587](https://github.com/input-output-hk/ouroboros-network/issues/2587)\\n* [issue input-output-hk/ouroboros-network#2586](https://github.com/input-output-hk/ouroboros-network/issues/2586)\\n\\nSee [PR #24](https://github.com/input-output-hk/io-sim/pull/24).\\n\\nWe also improved experience for contributors of `io-sim` and `typed-protocols` by adding issue templates:\\n* [PR input-output-hk/io-sim#25](https://github.com/input-output-hk/io-sim/pull/25)\\n\\n### Typed Protocols\\n\\n* We pushed a branch which identifies a GHC quirk:\\n [coot/typed-protocols-rewrite-StateToken-problem](https://github.com/input-output-hk/typed-protocols/tree/coot/typed-protocols-rewrite-StateToken-problem).\\n That\'s too be resolved in order to push forward review of the redesign in\\n [PR input-output-hk/typed-protocols#3](https://github.com/input-output-hk/typed-protocols/pull/3).\\n* As for `io-sim`, we wrote issue templates:\\n [PR input-output-hk/typed-protocols#11](https://github.com/input-output-hk/typed-protocols/pull/11)\\n\\n### Input Endorsers Simulation\\n\\nNew features include:\\n\\n* Histograms of block arrival frequency, for both network (inbound) and CPU\\n (block validation). This is interesting to check that we\'re not overloading\\n the CPU block validation capacity, or network link capacity. Or alternatively\\n to observe the behaviour in an overload situation if we set the block\\n generation rate high enough.\\n\\n* Pie chart of utilisation of TCP links. This shows how small a fraction of\\n links are being used at any one time, and shows that once the system \\"warms\\n up\\" and is operating stably, most block delivery is ballistic.\\n\\n* Showing off the new screen layout combinators, that let us put multiple\\n charts, titles etc on screen at once and scale them to whatever screen or\\n video resolution we like without having to tweak numbers (this example is\\n scaled to fit 1080HD video resolution).\\n\\n\\n```mdx-code-block\\n\\n```"},{"id":"2022-09-20-consensus","metadata":{"permalink":"/cardano-updates/2022-09-20-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-20-consensus.md","source":"@site/blog/2022-09-20-consensus.md","title":"Consensus Team Update","description":"- We proposed a fix for the performance degradation observed when running","date":"2022-09-20T00:00:00.000Z","formattedDate":"September 20, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":3.895,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-09-20-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-09-27-network"},"nextItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-09-19-db-sync"}},"content":"- We proposed a fix for the performance degradation observed when running\\n distributed multi-node benchmarks in the UTxO HD feature branch. While this\\n fixed the problems observed when running local benchmarks, it broke the\\n `ThreadNet` tests due to concurrency issues. Therefore, we think it is wise to\\n start redesigning the UTxO HD mempool integration.\\n- We did several rounds of code review on the alternative implementation of\\n diff-sequences required by the UTxO HD feature based on the idea of\\n anti-diffs. This alternative implementation is close to being merged, and the\\n next step is to integrate this to the UTxO HD branch, so that we can run\\n ad-hoc replaying and syncing from scratch benchmarks and compare these with\\n the baseline. The micro-benchmarks we elaborated for the alternative\\n implementation show speedups of up to 4x, so we are optimistic about the\\n performance of replaying and syncing from scratch benchmarks, however it is\\n important to notice that *due to the nature of UTxO HD* we will still be\\n slower than the baseline.\\n- The final draft of the Genesis implementation specification is ready for\\n review.\\n- We implemented a prototype for the happy path of Genesis\' ChainSync Jumping\\n (CSJ). The prototype is slower than the baseline, however it is not the latest\\n version of the prototype and the jump interval is very small.\\n- Work on integrating Conway has [stopped][nicks-comment-conway] since\\n priorities have changed.\\n- We started work on benchmarking epoch-boundaries and epoch overhead\\n [pr-4014][pr-4014]. To this end, we made use of a modified version of our\\n `db-analyser` tool. We ran the new benchmarking setup using the Cardano\\n mainnet chain, and we can see that block tick and application take\\n substantially longer at epoch boundaries, although there are a couple of slots\\n during an epoch in which these computations take more than normal. We notified\\n the ledger team about these findings. We will use this modified version of\\n `db-analyser` to investigate the epoch overhead.\\n\\n\\n# Workstreams\\n\\n## UTxO HD\\n\\n - Spent quite some time investigating the root cause of the degradation in\\n performance observed in the benchmarks. We run the `make forge-stress`\\n benchmarks locally in order to debug this behavior.\\n\\n - Transaction batching doesn\'t make a notable difference in the outcome\\n (considering we are using the in-memory backend).\\n\\n - The mempool batching implementation required asynchronous transaction\\n validation which is a violation of the `LocalTxSubmission` protocol\\n contract and therefore if we continued on that route, the impact would\\n have been quite big.\\n\\n - The STM logic we implemented by using a `TMVar` for the mempool internal\\n state was buggy and under certain circumstances it seemed to lock.\\n Reverting the mempool internal state to be stored in a `TVar` seems to\\n solve this problem.\\n\\n - The results we get after this change look almost identical to the ones\\n from the baseline.\\n\\n - [The anti-diff prototype (PR\\n #3997)](https://github.com/input-output-hk/ouroboros-network/pull/3997) has\\n been reviewed and is close to being merged.\\n\\n - A follow-up issue ([issue\\n #4010](https://github.com/input-output-hk/ouroboros-network/issues/4010))\\n to integrate the anti-diff prototype in the various `consensus` packages\\n was created. A first version of the integration exists, and all tests\\n pass. A next step is to get some indication of the \\"real\\" performance gain\\n by profiling `db-analyser` (or `cardano-node`).\\n\\n## Genesis\\n\\n - Final draft of the Genesis implementation specification, now up for review.\\n\\n - Local benchmark setup for parameter tuning via the happy path ChainSync\\n Jumping (CSJ) prototype ([Issue 3987][issue-3987]).\\n\\n - Context: Our Genesis design requires us to check in with a large (~20)\\n number of servers periodically while syncing. These servers are offered\\n jump requests via the ChainSync protocol (hence the name), which they can\\n accept or decline. If a peer declines, the Genesis rule allows us to\\n determine whether a node actually has a better chain.\\n\\n - The \\"happy path\\" is when no peer declines a jump. We want this to have\\n close to no overhead compared to status quo, i.e. syncing without Genesis.\\n\\n - We implemented a prototype for this happy path, and are now starting to\\n test in various configurations (number of peers, latency, bandwidth) to\\n tune the performance of ChainSync jumping, i.e. how complicated our logic\\n of choosing when to jump needs to be.\\n\\n **Example:**\\n\\n - Simulated connection: 50 MBit/s, 50ms latency\\n\\n - Jump interval: 3000 slots (on the low end, could be increased to up to\\n `3k/f`)\\n\\n - Red: baseline (1.35.3), one peer in topology file\\n\\n - Blue: Preliminary version of our prototype, with 10 peers.\\n\\n ![](/images/happy-path-csj-prototype-prelim.svg)\\n\\n It is slower by about ~30%, but it is not the latest version of the\\n prototype, and the jump interval is very small, making CSJ more of a\\n bottleneck.\\n\\n## Technical debt\\n\\n- Fix flakiness in ChainDB QSM tests ([PR 3990](https://github.com/input-output-hk/ouroboros-network/pull/3990)).\\n\\n[issue-3987]: https://github.com/input-output-hk/ouroboros-network/issues/3987\\n[nicks-comment-conway]: https://github.com/input-output-hk/ouroboros-network/pull/3971#issuecomment-1252524031\\n[pr-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014"},{"id":"2022-09-19-db-sync","metadata":{"permalink":"/cardano-updates/2022-09-19-db-sync","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-19-db-sync.md","source":"@site/blog/2022-09-19-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-09-19T00:00:00.000Z","formattedDate":"September 19, 2022","tags":[{"label":"db-sync","permalink":"/cardano-updates/tags/db-sync"}],"readingTime":1.525,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-09-19-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-09-20-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-16-ledger"}},"content":"## DBSync Update\\n\\n### New Tag\\nWe created a new db-sync tag 13.0.5 which addresses shortcomings of the last\\nrelease 13.0.4. It is currently under testing.\\nThe Changelog is\\n [here](https://github.com/input-output-hk/cardano-db-sync/blob/8ad98d48e0068f3768d48e18fdcbe254037cba3b/cardano-db-sync/CHANGELOG.md#1305) and in more details:\\n\\n* We fixed fees for tx with phase 2 failure that didn\'t include a total collateral field.\\n [1248](https://github.com/input-output-hk/cardano-db-sync/pull/1248)\\n\\n* We fixed an issue that could cause db-sync to crash if a specific rollback occured.\\n [1247](https://github.com/input-output-hk/cardano-db-sync/pull/1247)\\n\\n* DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\\n could result in the wrong CBOR encoding being inserted.\\n [1217](https://github.com/input-output-hk/cardano-db-sync/pull/1217)\\n\\n* All the fixes above come with unit tests which validates the fix.\\n\\n* Added support for preprod and preview from docker. DBSync no longer needs to include the configs\\n for different networks, these are directly fetched from the cardano world.\\n [1254](https://github.com/input-output-hk/cardano-db-sync/pull/1254)\\n\\n* We added better support from docker for the new disable options and the overall documentation.\\n [1260](https://github.com/input-output-hk/cardano-db-sync/pull/1260)\\n\\nAll the above were also backported to the master branch\\n\\n### Open source\\n\\nWe made the db-sync [board public](https://github.com/orgs/input-output-hk/projects/52/views/1), so\\n everyone can have access on the issues we prioritise.\\n We also added new tasks to the board, some of them could be approachable to newcomers or people who\\n want to contribute.\\n\\n### Progress on tech debt and new features\\n* [1223](https://github.com/input-output-hk/cardano-db-sync/pull/1223) was merged, which removes the\\n foreign keys from the db schema. This opens the road to a number of optimizations.\\n\\n* An additional fix on top of the previous work was added\\n [1250](https://github.com/input-output-hk/cardano-db-sync/pull/1250)\\n\\n* An initial version where DBSync does not rollback on restart is done here\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266).\\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\\n the future it can also facilitate migrations in cases where the ledger snapshots have a breaking\\n change, without the need to resync everything from genesis."},{"id":"2022-09-16-ledger","metadata":{"permalink":"/cardano-updates/2022-09-16-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-16-ledger.md","source":"@site/blog/2022-09-16-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-16T00:00:00.000Z","formattedDate":"September 16, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.625,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-16-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/cardano-updates/2022-09-19-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-01-ledger"}},"content":"## Ledger Update\\n\\nWe have been focused nearly entirely on addressing technical debt.\\n\\n* We introduced more consistent naming across eras, this time for the auxiliary data.\\n See [3032](https://github.com/input-output-hk/cardano-ledger/pull/3032).\\n* We made clear how the `consumed` functions differs between eras (which was a previous source of\\n confusion), and added some related support to the fledgling ledger API.\\n See [3016](https://github.com/input-output-hk/cardano-ledger/pull/3016).\\n* We added clarity and organizational consistency to the main ledger era type synonyms.\\n See [3017](https://github.com/input-output-hk/cardano-ledger/pull/3017).\\n* We removed code duplication related to the input data hashes.\\n See [3018](https://github.com/input-output-hk/cardano-ledger/pull/3018).\\n* We split up a large module into smaller components. The large module was actually causing our\\n CI to time out.\\n See [3020](https://github.com/input-output-hk/cardano-ledger/pull/3020).\\n* We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\\n See [3023](https://github.com/input-output-hk/cardano-ledger/pull/3023),\\n [3031](https://github.com/input-output-hk/cardano-ledger/pull/3031),\\n and [3028](https://github.com/input-output-hk/cardano-ledger/pull/3028).\\n* We made consistent, standalone `TxOut` (transaction output) modules for every era.\\n See [3024](https://github.com/input-output-hk/cardano-ledger/pull/3024).\\n* We brought consistency to a maddening inconsistent use of type variables indicating the specific\\n choice of cryptographic primitives. In particular, all uses of `crypto` have been renamed to `c`.\\n See [3027](https://github.com/input-output-hk/cardano-ledger/pull/3027).\\n* We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\\n types that will compose better in the future and which simplifies the constraints.\\n See [3029](https://github.com/input-output-hk/cardano-ledger/pull/3029).\\n* We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\\n given transaction. This is a much needed cleanup to prevent future mistakes.\\n See [3019](https://github.com/input-output-hk/cardano-ledger/pull/3019).\\n* We fixed a problem with our generators that was causing a fair number of our property tests to\\n fail in CI.\\n See [3039](https://github.com/input-output-hk/cardano-ledger/pull/3039).\\n* We have started the work to update Plutus. This will bring support for SECP in the next major\\n protocol version, and also address a\\n [problem](https://github.com/input-output-hk/cardano-ledger/issues/2902)\\n that we current have evolving the cost models.\\n See [3030](https://github.com/input-output-hk/cardano-ledger/pull/3030).\\n* We addressed a small issue that came up when integrating the conway era downstream, namely\\n the lack of some serialization instances.\\n See [3022](https://github.com/input-output-hk/cardano-ledger/pull/3022)."},{"id":"2022-09-01-ledger","metadata":{"permalink":"/cardano-updates/2022-09-01-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-09-01-ledger.md","source":"@site/blog/2022-09-01-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-01T00:00:00.000Z","formattedDate":"September 1, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/tags/ledger"}],"readingTime":1.94,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-01-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-16-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-08-31-consensus"}},"content":"## Ledger Update\\n\\nSince finishing up support for the Vasil Hardfork, the ledger team has been\\nfocused on two main things: a new ledger era and technical debt.\\n\\n### New minimal ledger era\\n\\nWe have implemented a new ledger era named `conway` which is nearly identical\\nto the `babbage` era. This has been the first time that we have been able to see\\nwhat a minimal ledger era looks like. We have finished this task, modulo any\\nintegration issues that might come up. The only thing that the `conway` era\\ndoes differently from the `babbage` era is provide support for rotating\\nthe master keys using the hardfork combinator\'s state translation.\\nWe may end up adding features to the `conway` era, but it is a nice exercise\\nseeing what it looks like to get a minimal ledger era supported in all the\\ndownstream components.\\n\\n### Addressing technical debt\\n\\nWe have been addressing technical debt, mostly in an effort to make the\\nrepository a more friendly code base to work in.\\n\\n- We have begun work on a ledger API, called `cardano-ledger-api`.\\n- We have done a big re-design of the major type classes used in the ledger.\\n With hindsight on our side, we now have something much more organized and\\n easier to use.\\n- We have done a lot of re-naming. The names across eras are now much more\\n uniform, avoid certain confusions that plagued us, and are clearer in where\\n they are from.\\n- We have reduced a lot of code duplication that could lead to bugs if you\\n do not have the whole code base in your head.\\n- We have added a handful of performance improvements.\\n- We added type safety in a number of locations. In particular, the type of\\n values that can be minted in a transaction no longer allow for Lovelace\\n in the type, and some functions which used to handle both timelock scripts\\n and plutus script now correctly enoforce at the type level that only one of\\n them can be used.\\n- We made our generators so that they now produce a much richer set of\\n valid serializations. There is room within CBOR to serialize the same\\n data structure in multiple ways, and it is helpful to have the generators\\n use a wide variety.\\n- We have begun re-organizing our test suites."},{"id":"2022-08-31-consensus","metadata":{"permalink":"/cardano-updates/2022-08-31-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-08-31-consensus.md","source":"@site/blog/2022-08-31-consensus.md","title":"Consensus Team Update","description":"Executive summary","date":"2022-08-31T00:00:00.000Z","formattedDate":"August 31, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/tags/consensus"}],"readingTime":8.925,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-08-31-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/2022-09-01-ledger"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/2022-08-12-network"}},"content":"## Executive summary\\n\\n- We did most of the heavy lifting required to integrate the Conway era.\\n- We have property tests for the UTxO HD backing store API implementations. A\\n possible bug was identified. Work is ongoing to make sure the property-tests\\n cover all the relevant cases.\\n- We implemented and benchmarked the \\"anti-diff\\" prototype to speed up the UTxO\\n HD functionality. Results show a rough speedup of `4x` to `5.5x` across\\n several scenarios. Note that: [\\"Data reported by `tasty-bench` is only of\\n indicative and comparative significance.\\"](https://hackage.haskell.org/package/tasty-bench-0.3.2/docs/Test-Tasty-Bench.html).\\n We are investigating additional performance improvements. The \\"anti-diff\\"\\n prototype and benchmarks are still pending code review.\\n- We elaborated a draft specification for the Genesis implementation and\\n `ChainSync` jumping optimization.\\n\\n## Workstreams\\n\\n### Conway\\n\\n - Integration PR of the minimal Conway era ([Issue #3963][issue-3962], [PR\\n #3971][pull-3971]).\\n - Discussions with Ledger revealed possible sources of confusion about which\\n data should be changed in the Conway era. As a result, a new technical debt\\n issue was raised, which does not block the integration of the Conway era\\n ([Issue #3976][issue-3976]).\\n\\n### UTxO HD\\n\\n- [Issue #3954][issue-3954], [branch][branch-3954]: The functionality of a\\n backing store, which is the interface to the on-disk part of ledger state in\\n UTxO-HD, is tested at a high level through the `OnDisk` tests. However, some\\n functionalities remain untested, e.g., reads of ranges of keys. As such, we\\n have implemented `quickcheck-state-machine` tests that exercise backing stores\\n directly. The tests are reusable for different backing store implementations\\n because the tests are implementation-agnostic: Any backing store that conforms\\n to the backing store interface can be plugged into the tests. Work is still\\n ongoing to label/monitor the tests, such that we can verify that interesting\\n cases are being tested. Furthermore, a possible bug has been identified in the\\n LMDB backing store with respect to range reads, though the bug has not been\\n resolved yet.\\n- [Issue #3946][issue-3946], [branch][branch-4199], [PR #3882][pull-3882]: The\\n \\"anti-diff\\" prototype proposes an alternative approach to keeping track of\\n sequences (more specifically, `FingerTree`s) of diffs. These diff sequences\\n are a component of the in-memory parts of the ledger state in UTxO-HD. Since\\n the consensus code often requires the cumulative diff of a sequence of diffs,\\n the current implementation \\"caches\\" cumulative diffs of each subtree in the\\n diff sequence. This caching allows relatively fast reconstruction of the total\\n cumulative diff, but this caching proved to incur a non-negligible cost: when\\n we manipulate diff sequences through splits and appends, we force re-computing\\n a logarithmic number of caches. This is problematic, since we often split and\\n append in consensus: we split when we flush diffs to a backing store or when\\n we roll back blocks, and we append when pushing blocks. The new approach\\n should reduce the overhead of this caching.\\n\\n We implemented micro-benchmarks for the \\"anti-diff\\" prototype: we\\n first generate a sequence of commands (`Forward`, `Push`, `Flush`, or\\n `Rollback`) through a simulation, after which we measure the performance of\\n applying the commands to a diff sequence. In this context, `Forward` means\\n forwarding of values through a diff, whereas `Rollback` means switching to\\n a different fork by rolling back diffs/blocks and pushing new ones.\\n Moreover, we compare the performance for the two implementations: the\\n \\"legacy\\" approach, and the anti-diff approach.\\n\\n Some preliminary results were positive, but we needed to revisit the\\n benchmark\'s configuration to obtain more definitive results. After a\\n discussion with @dcoutts and the consensus team about this configuration\\n (e.g., number of commands generated, choice of the security parameter `k`),\\n the benchmarks should now be closer to the realistic setting. The following\\n configuration specifies the default configuration that is used in the\\n benchmarking code:\\n * Number of commands generated: `10_000`\\n * Security parameter `k`: `2160`\\n * Number of initial backing values: `100`\\n * Number of key-value pairs deleted by a push: `50`\\n * Number of key-value pairs inserted by a push: `50`\\n * Number of key-value pairs forwarded by a forward: `50`\\n * Probability of a large (in the range `[1000, 2000]`) rollback: `0.05`\\n * Probability of a small (in the range `[1, 10]`) rollback: `0.95`\\n * Order of commands:\\n * An equal number of forward and pushes.\\n * `1` flush every `10` pushes.\\n * `1` rollback every `100` pushes\\n\\n Moreover, we run four benchmark scenarios:\\n * Default configuration\\n * Without rollbacks\\n * With only small rollbacks\\n * Without rollbacks, larger flushes (`1` flush every `100` pushes)\\n\\n ### How to read results\\n\\n Note: this section uses documentation from the\\n [tasty-bench](https://hackage.haskell.org/package/tasty-bench) package to\\n explain how to read the results of running our benchmarks.\\n\\n Running a benchmark scenario gives us the following (curated) output:\\n ```text\\n ...\\n AntiDiff: OK (18.27s)\\n 2.527 s \xb1 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x\\n LegacyDiff: OK (32.73s)\\n 10.829 s \xb1 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory\\n ...\\n ```\\n\\n The output says that the first benchmark, which exercises the anti-diff\\n prototype, was repeatedly executed for `18.27` seconds (wall-clock time),\\n its predicted mean CPU time was `2.527` seconds and means of individual\\n samples do not often diverge from it further than `\xb1 47` milliseconds\\n (double standard deviation). We also configure the RTS to collect GC\\n statistics, which enables `tasty-bench` to estimate and report memory usage.\\n This data is reported as per `RTSStats` fields: `allocated_bytes`,\\n `copied_bytes` and `max_mem_in_use_bytes`. So, the output of the first\\n benchmark says that a total of `2.1 GB` of memory was allocated, that a\\n total of `544 MB` of memory were copied, and that the peak memory in usage\\n was `2.2 GB`. We read the output for the second benchmark in the same way.\\n\\n Furthermore, the benchmark compares the mean CPU times for\\n both the anti-diff and legacy approaches: In this case, the mean CPU time\\n for the anti-diff approach is `~0.23x` the mean CPU time for the legacy\\n approach. Conversely, the mean CPU time for the legacy approach is\\n `1 / 0.23 ~= 4.35x` the mean CPU time for the anti-diff approach. We will\\n call `0.23x` the *improvement factor*. We will call `4.35x` the *speedup*.\\n\\n Note that these improvement factors (and reported results) are subject to\\n noise, randomness, the specific configuration parameters, and the whims\\n of statistics. Data reported by `tasty-bench` is only of indicative and\\n comparative significance.\\n\\n ### Results\\n\\n For each of the 4 scenarios, we list the results of running the anti-diff and\\n legacy approaches 5 times. We run the benchmarks 5 times to get an indication\\n of whether the results are similar across multiple runs. Furthermore, we\\n calculate the accompanying *ranges* (if applicable) of improvement factors and\\n speedups.\\n\\n Note also the decrease in total bytes allocated and total bytes copied for\\n the anti-diff approach compared to the legacy approach.\\n\\n #### Default configuration\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|2.533 s (0.23x)|4.7 ms|2.1 GB|557 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.792 s|162 ms|6.8 GB|2.3 GB|2.4 GB|\\n |Run 2: AntiDiff|2.508 s (0.23x)|245 ms|2.1 GB|515 MB|2.2 GB|\\n |Run 2: LegacyDiff|10.850 s| 30 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 3: AntiDiff|2.562 s (0.23x)|5.0 ms|2.1 GB|552 MB|2.2 GB|\\n |Run 3: LegacyDiff|10.993 s|149 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 4: AntiDiff|2.168 s (0.22x)|5.3 ms|1.8 GB|434 MB|2.0 GB|\\n |Run 4: LegacyDiff|9.976 s| 39 ms|6.3 GB|2.0 GB|2.0 GB|\\n |Run 5: AntiDiff|2.527 s (0.23x)| 47 ms|2.1 GB|544 MB|2.2 GB|\\n |Run 5: LegacyDiff|10.829 s|148 ms|6.8 GB|2.3 GB|2.2 GB|\\n\\n * Improvement factor: `[0.22, 0.23]`\\n * Speedup : `[1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]`\\n\\n #### No rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.638 s (0.19x)| 36 ms|1.4 GB|181 MB|2.4 GB|\\n |Run 1: LegacyDiff|8.656 s|207 ms|5.7 GB|1.5 GB|2.4 GB|\\n |Run 2: AntiDiff|1.638 s (0.19x)| 75 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.654 s|322 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.663 s (0.19x)| 74 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.799 s|216 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.645 s (0.19x)| 51 ms|1.4 GB|181 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.732 s|261 ms|5.7 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.639 s (0.19x)| 19 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.653 s|234 ms|5.7 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `0.19`\\n * Speedup : `1 / 0.19 ~= 5.25`\\n\\n\\n #### Only small rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.833 s (0.18x)| 36 ms|1.5 GB|185 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.362 s|867 ms|5.8 GB|1.6 GB|2.4 GB|\\n |Run 2: AntiDiff|1.696 s (0.19x)| 30 ms|1.5 GB|185 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.822 s|106 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.702 s (0.19x)| 44 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.906 s|147 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.701 s (0.19x)| 47 ms|1.5 GB|185 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.949 s|197 ms|5.8 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.677 s (0.19x)| 55 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.856 s|177 ms|5.8 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `[0.18, 0.19]`\\n * Speedup : `[1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]`\\n\\n #### No rollbacks, larger flushes (every 100 pushes)\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.643 s (0.25x)| 21 ms|1.5 GB|196 MB|2.4 GB|\\n |Run 1: LegacyDiff|6.591 s|351 ms|4.0 GB|1.4 GB|2.4 GB|\\n |Run 2: AntiDiff|1.616 s (0.25x)| 47 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 2: LegacyDiff|6.520 s|232 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 3: AntiDiff|1.640 s (0.25x)| 34 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 3: LegacyDiff|6.540 s|150 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 4: AntiDiff|1.635 s (0.25x)| 76 ms|1.5 GB|196 MB|2.0 GB|\\n |Run 4: LegacyDiff|6.589 s|131 ms|4.0 GB|1.4 GB|2.0 GB|\\n |Run 5: AntiDiff|1.628 s (0.25x)| 19 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 5: LegacyDiff|6.490 s|5.9 ms|4.0 GB|1.4 GB|2.2 GB|\\n\\n * Improvement factor: `0.25`\\n * Speedup : `1 / 0.25 ~= 4`\\n\\n### Genesis\\n\\n - We elaborated a draft of the specification of the Genesis implementation and\\n the ChainSync Jumping optimization. In particular, this includes a proof\\n sketch that the latter preserves liveness and safety in all cases ([Issue\\n 3964][issue-3964]).\\n - @nfrisby\'s main realization during this sprint was that he had been\\n focusing so far on the case where the selected chain is an extension of\\n the intersection of our peers\' ChainSync candidates.\\n - This is the main case, ie an \\"absorbing\\" state, but it\'s not the only\\n case.\\n - The new proof sketch begins by case splitting on that predicate, and\\n that made the sketch quite a bit easier to follow.\\n - We continued working on the \\"happy path\\" `ChainSync` Jumping prototype ([Issue\\n 3960][issue-3960]).\\n\\n### Technical debt\\n\\n - We started working on the issues required to re-enable nightly CI runs..\\n Nightly CI runs have far more lax time constraints, which gives the option to\\n run significantly more property tests than in our regular CI. To this end, we\\n merged a PR to easily adapt the number of tests globally ([PR\\n #3947][pull-3947]).\\n\\n[issue-3954]: https://github.com/input-output-hk/ouroboros-network/issues/3954\\n[branch-3954]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/3954-backingstore-property-tests\\n[issue-3946]: https://github.com/input-output-hk/ouroboros-network/issues/3946\\n[branch-4199]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/CAD-4199-prototype-anti-diffs\\n[pull-3882]: https://github.com/input-output-hk/ouroboros-network/pull/3882\\n[pull-3947]: https://github.com/input-output-hk/ouroboros-network/pull/3947\\n[issue-3960]: https://github.com/input-output-hk/ouroboros-network/issues/3960\\n[issue-3962]: https://github.com/input-output-hk/ouroboros-network/issues/3962\\n[issue-3964]: https://github.com/input-output-hk/ouroboros-network/issues/3964\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[issue-3976]: https://github.com/input-output-hk/ouroboros-network/issues/3976"},{"id":"2022-08-12-network","metadata":{"permalink":"/cardano-updates/2022-08-12-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-08-12-network.md","source":"@site/blog/2022-08-12-network.md","title":"Network Team Update","description":"The networking team took an active part in the project iteration (PI) planning","date":"2022-08-12T00:00:00.000Z","formattedDate":"August 12, 2022","tags":[{"label":"network","permalink":"/cardano-updates/tags/network"}],"readingTime":0.88,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-08-12-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/cardano-updates/2022-08-31-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n\\nThe networking team took an active part in the project iteration (PI) planning\\nsession, see cardano-node [backlog](https://github.com/orgs/input-output-hk/projects/39) for detailed\\noutcomes.\\n\\n\\n* We started working on a detailed design / implementation plan for gossip.\\n\\n* We merged [input-output-hk/ouroboros-network#3859](https://github.com/input-output-hk/ouroboros-network/pull/3859) which\\n sets the ouroboros-network repository for the single relay release.\\n\\n* We identified a bug in the network simulator, which is fixed in the\\n [input-output-hk/ouroboros-network#3852](https://github.com/input-output-hk/ouroboros-network/pull/3852).\\n The above PR was reviewed.\\n\\n* We set the tracing configuration for nodes which we deploy and fixed and\\n identified some deployment hiccups. We identified some bugs in the RT view\\n which were registered by the maintainers.\\n [input-output-hk/ouroboros-network-ops#4](https://github.com/input-output-hk/ouroboros-network-ops/pull/4)\\n\\n* We fixed typos in network-mux library:\\n [input-output-hk/ouroboros-network#3921](https://github.com/input-output-hk/ouroboros-network/pull/3921)\\n\\n* For easy of debugging we renamed a trace point:\\n [input-output-hk/ouroboros-network#3922](https://github.com/input-output-hk/ouroboros-network/pull/3922)\\n\\n* Duncan iterated on his simulation / visualisation. He also was able to\\n identify and fix a bug in the simulator. The simulation contains 50 nodes.\\n Dashed lines indicate and established connection, while solid lines indicate\\n a TCP connection with fully open TCP window.\\n\\n```mdx-code-block\\n\\n```"}]}')}}]); \ No newline at end of file diff --git a/assets/js/47cae651.0b1d1567.js b/assets/js/47cae651.ee17e7ba.js similarity index 76% rename from assets/js/47cae651.0b1d1567.js rename to assets/js/47cae651.ee17e7ba.js index 14e7f1cb27..a601c45785 100644 --- a/assets/js/47cae651.0b1d1567.js +++ b/assets/js/47cae651.ee17e7ba.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8352],{81765:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/2","page":2,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/","nextPage":"/cardano-updates/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8352],{81765:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/2","page":2,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/","nextPage":"/cardano-updates/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4c91b9ee.737129a5.js b/assets/js/4c91b9ee.b7835508.js similarity index 75% rename from assets/js/4c91b9ee.737129a5.js rename to assets/js/4c91b9ee.b7835508.js index 4a73c55eb8..98c2aee00f 100644 --- a/assets/js/4c91b9ee.737129a5.js +++ b/assets/js/4c91b9ee.b7835508.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6705],{5324:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/6","page":6,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/5","nextPage":"/cardano-updates/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6705],{5324:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/6","page":6,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/5","nextPage":"/cardano-updates/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4d7c8e78.16e412e8.js b/assets/js/4d7c8e78.16e412e8.js new file mode 100644 index 0000000000..f0f6f453df --- /dev/null +++ b/assets/js/4d7c8e78.16e412e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5389],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/cardano-updates/2023-03-24-hydra",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-24-hydra.md",source:"@site/blog/2023-03-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-24T00:00:00.000Z",formattedDate:"March 24, 2023",tags:[{label:"hydra",permalink:"/cardano-updates/tags/hydra"}],readingTime:.95,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},nextItem:{title:"DB-sync Team Update",permalink:"/cardano-updates/2023-03-23-db-sync"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p};function u(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra had a team workshop and conducted the monthly review\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\nthe hydraw demo application. While this marks an important milestone, they also\nemphasized that more features are still to be added as needed for applications\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\ndiscussions and provide more space for user requests."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392"},"slides"),"/",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c"},"recording"),", full report of March next week",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Opened a head on mainnet with hydraw demonstration"),(0,n.kt)("li",{parentName:"ul"},"Hydra pay updates"))),(0,n.kt)("li",{parentName:"ul"},"Team workshop in Austria",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Hydra presentation at the Cardano Foundation in Zurich"),(0,n.kt)("li",{parentName:"ul"},"In-person grooming session, marked many items as candidates to be rather :idea: dicussions"),(0,n.kt)("li",{parentName:"ul"},"Improved head protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")," and investigated a potential bug in rollback handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Team building and retrospective")))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up on backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Make API more configurable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/51457b0b.2b856b32.js b/assets/js/51457b0b.2b856b32.js new file mode 100644 index 0000000000..204edb5828 --- /dev/null +++ b/assets/js/51457b0b.2b856b32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9576],{67576:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/5","page":5,"postsPerPage":5,"totalPages":5,"totalCount":21,"previousPage":"/cardano-updates/tags/hydra/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/548ef7ca.b3d5ef11.js b/assets/js/548ef7ca.954558cc.js similarity index 75% rename from assets/js/548ef7ca.b3d5ef11.js rename to assets/js/548ef7ca.954558cc.js index ee332ac047..c5283f78a1 100644 --- a/assets/js/548ef7ca.b3d5ef11.js +++ b/assets/js/548ef7ca.954558cc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5578],{8960:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/21","page":21,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/20","nextPage":"/cardano-updates/page/22","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5578],{8960:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/21","page":21,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/20","nextPage":"/cardano-updates/page/22","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/60c9cc01.96596159.js b/assets/js/60c9cc01.32fab898.js similarity index 75% rename from assets/js/60c9cc01.96596159.js rename to assets/js/60c9cc01.32fab898.js index b3f8a1eaaa..228b210325 100644 --- a/assets/js/60c9cc01.96596159.js +++ b/assets/js/60c9cc01.32fab898.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2744],{36901:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/4","page":4,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/3","nextPage":"/cardano-updates/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2744],{36901:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/4","page":4,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/3","nextPage":"/cardano-updates/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/66326f4e.b638aebb.js b/assets/js/66326f4e.f7f38081.js similarity index 75% rename from assets/js/66326f4e.b638aebb.js rename to assets/js/66326f4e.f7f38081.js index b117c4c588..12bc6e63a2 100644 --- a/assets/js/66326f4e.b638aebb.js +++ b/assets/js/66326f4e.f7f38081.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7837],{16524:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/8","page":8,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/7","nextPage":"/cardano-updates/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7837],{16524:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/8","page":8,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/7","nextPage":"/cardano-updates/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/79239208.14d50849.js b/assets/js/79239208.85052b9f.js similarity index 71% rename from assets/js/79239208.14d50849.js rename to assets/js/79239208.85052b9f.js index 402d2f2c79..356007fa88 100644 --- a/assets/js/79239208.14d50849.js +++ b/assets/js/79239208.85052b9f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5748],{61778:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/2","page":2,"postsPerPage":5,"totalPages":4,"totalCount":20,"previousPage":"/cardano-updates/tags/hydra","nextPage":"/cardano-updates/tags/hydra/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5748],{61778:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/2","page":2,"postsPerPage":5,"totalPages":5,"totalCount":21,"previousPage":"/cardano-updates/tags/hydra","nextPage":"/cardano-updates/tags/hydra/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7b73b4cd.cedbd0c7.js b/assets/js/7b73b4cd.a0509691.js similarity index 75% rename from assets/js/7b73b4cd.cedbd0c7.js rename to assets/js/7b73b4cd.a0509691.js index 534186b001..ea9eb64587 100644 --- a/assets/js/7b73b4cd.cedbd0c7.js +++ b/assets/js/7b73b4cd.a0509691.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[881],{25184:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/19","page":19,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/18","nextPage":"/cardano-updates/page/20","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[881],{25184:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/19","page":19,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/18","nextPage":"/cardano-updates/page/20","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7d4ab4f9.d977e931.js b/assets/js/7d4ab4f9.4ce65bc3.js similarity index 75% rename from assets/js/7d4ab4f9.d977e931.js rename to assets/js/7d4ab4f9.4ce65bc3.js index c2aab9cb37..8e6eb92aba 100644 --- a/assets/js/7d4ab4f9.d977e931.js +++ b/assets/js/7d4ab4f9.4ce65bc3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4007],{90958:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/9","page":9,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/8","nextPage":"/cardano-updates/page/10","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4007],{90958:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/9","page":9,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/8","nextPage":"/cardano-updates/page/10","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/82ed4471.71467e5c.js b/assets/js/82ed4471.4e15a259.js similarity index 75% rename from assets/js/82ed4471.71467e5c.js rename to assets/js/82ed4471.4e15a259.js index 22f0acfc53..4d828c3b63 100644 --- a/assets/js/82ed4471.71467e5c.js +++ b/assets/js/82ed4471.4e15a259.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8312],{9933:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/7","page":7,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/6","nextPage":"/cardano-updates/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8312],{9933:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/7","page":7,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/6","nextPage":"/cardano-updates/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/91831590.a38788c8.js b/assets/js/91831590.df9d096a.js similarity index 78% rename from assets/js/91831590.a38788c8.js rename to assets/js/91831590.df9d096a.js index 21617da7a1..6782d6a887 100644 --- a/assets/js/91831590.a38788c8.js +++ b/assets/js/91831590.df9d096a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9121],{50864:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":20}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9121],{50864:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":21}')}}]); \ No newline at end of file diff --git a/assets/js/9450fd8f.5a6e9ed9.js b/assets/js/9450fd8f.0dbef622.js similarity index 75% rename from assets/js/9450fd8f.5a6e9ed9.js rename to assets/js/9450fd8f.0dbef622.js index 822da28ac8..f6aad52e35 100644 --- a/assets/js/9450fd8f.5a6e9ed9.js +++ b/assets/js/9450fd8f.0dbef622.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5410],{9804:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/18","page":18,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/17","nextPage":"/cardano-updates/page/19","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5410],{9804:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/18","page":18,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/17","nextPage":"/cardano-updates/page/19","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/98277053.649871ac.js b/assets/js/98277053.844e9ed0.js similarity index 81% rename from assets/js/98277053.649871ac.js rename to assets/js/98277053.844e9ed0.js index 9678ff21ae..458977fa93 100644 --- a/assets/js/98277053.649871ac.js +++ b/assets/js/98277053.844e9ed0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6602],{16938:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra","page":1,"postsPerPage":5,"totalPages":4,"totalCount":20,"nextPage":"/cardano-updates/tags/hydra/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6602],{16938:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra","page":1,"postsPerPage":5,"totalPages":5,"totalCount":21,"nextPage":"/cardano-updates/tags/hydra/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9a01d9b0.be4db2b0.js b/assets/js/9a01d9b0.bde05a04.js similarity index 74% rename from assets/js/9a01d9b0.be4db2b0.js rename to assets/js/9a01d9b0.bde05a04.js index d09c282d7f..ce5da78610 100644 --- a/assets/js/9a01d9b0.be4db2b0.js +++ b/assets/js/9a01d9b0.bde05a04.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1158],{78905:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/23","page":23,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/22","nextPage":"/cardano-updates/page/24","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1158],{78905:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/23","page":23,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/22","nextPage":"/cardano-updates/page/24","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9e834cf3.eb5a6039.js b/assets/js/9e834cf3.7fd3f048.js similarity index 74% rename from assets/js/9e834cf3.eb5a6039.js rename to assets/js/9e834cf3.7fd3f048.js index 24f3964c4e..3136bacef3 100644 --- a/assets/js/9e834cf3.eb5a6039.js +++ b/assets/js/9e834cf3.7fd3f048.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4941],{36262:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/13","page":13,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/12","nextPage":"/cardano-updates/page/14","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4941],{36262:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/13","page":13,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/12","nextPage":"/cardano-updates/page/14","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a1b4c76a.45267a1e.js b/assets/js/a1b4c76a.0a91b111.js similarity index 74% rename from assets/js/a1b4c76a.45267a1e.js rename to assets/js/a1b4c76a.0a91b111.js index 994a51a757..a317b646f4 100644 --- a/assets/js/a1b4c76a.45267a1e.js +++ b/assets/js/a1b4c76a.0a91b111.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8765],{48796:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/14","page":14,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/13","nextPage":"/cardano-updates/page/15","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8765],{48796:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/14","page":14,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/13","nextPage":"/cardano-updates/page/15","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ac87db6a.11dc3acd.js b/assets/js/ac87db6a.11dc3acd.js new file mode 100644 index 0000000000..6a3e9c5eea --- /dev/null +++ b/assets/js/ac87db6a.11dc3acd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2703],{20637:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/4","page":4,"postsPerPage":5,"totalPages":5,"totalCount":21,"previousPage":"/cardano-updates/tags/hydra/page/3","nextPage":"/cardano-updates/tags/hydra/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ac87db6a.32725b4a.js b/assets/js/ac87db6a.32725b4a.js deleted file mode 100644 index cc4e895869..0000000000 --- a/assets/js/ac87db6a.32725b4a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2703],{20637:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/4","page":4,"postsPerPage":5,"totalPages":4,"totalCount":20,"previousPage":"/cardano-updates/tags/hydra/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/acd2edbe.f0281ab6.js b/assets/js/acd2edbe.8a6c384c.js similarity index 75% rename from assets/js/acd2edbe.f0281ab6.js rename to assets/js/acd2edbe.8a6c384c.js index f441f70637..c6c992fb81 100644 --- a/assets/js/acd2edbe.f0281ab6.js +++ b/assets/js/acd2edbe.8a6c384c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9113],{52701:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/3","page":3,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/2","nextPage":"/cardano-updates/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9113],{52701:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/3","page":3,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/2","nextPage":"/cardano-updates/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b020ac17.5e843aff.js b/assets/js/b020ac17.3c7f728e.js similarity index 74% rename from assets/js/b020ac17.5e843aff.js rename to assets/js/b020ac17.3c7f728e.js index 5d78ae203e..f42798f0e2 100644 --- a/assets/js/b020ac17.5e843aff.js +++ b/assets/js/b020ac17.3c7f728e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3538],{88564:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/22","page":22,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/21","nextPage":"/cardano-updates/page/23","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3538],{88564:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/22","page":22,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/21","nextPage":"/cardano-updates/page/23","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b4645a09.e949681f.js b/assets/js/b4645a09.69f78f77.js similarity index 68% rename from assets/js/b4645a09.e949681f.js rename to assets/js/b4645a09.69f78f77.js index 3630df78c7..5e633861dd 100644 --- a/assets/js/b4645a09.e949681f.js +++ b/assets/js/b4645a09.69f78f77.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4416],{14950:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/","page":1,"postsPerPage":5,"totalPages":24,"totalCount":116,"nextPage":"/cardano-updates/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4416],{14950:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/","page":1,"postsPerPage":5,"totalPages":24,"totalCount":117,"nextPage":"/cardano-updates/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c94f306d.672d668b.js b/assets/js/c94f306d.21f81772.js similarity index 78% rename from assets/js/c94f306d.672d668b.js rename to assets/js/c94f306d.21f81772.js index 9792a38f7a..f0bd25c926 100644 --- a/assets/js/c94f306d.672d668b.js +++ b/assets/js/c94f306d.21f81772.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8727],{29127:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":20}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8727],{29127:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":21}')}}]); \ No newline at end of file diff --git a/assets/js/cc30e037.a71b9bc5.js b/assets/js/cc30e037.76b33845.js similarity index 78% rename from assets/js/cc30e037.a71b9bc5.js rename to assets/js/cc30e037.76b33845.js index 11b02aade0..e4be007467 100644 --- a/assets/js/cc30e037.a71b9bc5.js +++ b/assets/js/cc30e037.76b33845.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1421],{9353:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":20}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1421],{9353:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":21}')}}]); \ No newline at end of file diff --git a/assets/js/cfb82551.331f0fe5.js b/assets/js/cfb82551.d6fc77a1.js similarity index 78% rename from assets/js/cfb82551.331f0fe5.js rename to assets/js/cfb82551.d6fc77a1.js index 9434adf9d2..d2957de948 100644 --- a/assets/js/cfb82551.331f0fe5.js +++ b/assets/js/cfb82551.d6fc77a1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6036],{85146:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":20}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6036],{85146:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/cardano-updates/tags/hydra","allTagsPath":"/cardano-updates/tags","count":21}')}}]); \ No newline at end of file diff --git a/assets/js/cfdb38ee.b797ef75.js b/assets/js/cfdb38ee.3f271980.js similarity index 82% rename from assets/js/cfdb38ee.b797ef75.js rename to assets/js/cfdb38ee.3f271980.js index 42ecc30322..a8f4cf4b44 100644 --- a/assets/js/cfdb38ee.b797ef75.js +++ b/assets/js/cfdb38ee.3f271980.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9736],{91779:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/24","page":24,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/23","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9736],{91779:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/24","page":24,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/23","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d1d47ba3.dc7233d2.js b/assets/js/d1d47ba3.ac82f040.js similarity index 75% rename from assets/js/d1d47ba3.dc7233d2.js rename to assets/js/d1d47ba3.ac82f040.js index b73214c536..a5d381a0ba 100644 --- a/assets/js/d1d47ba3.dc7233d2.js +++ b/assets/js/d1d47ba3.ac82f040.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[746],{62205:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/11","page":11,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/10","nextPage":"/cardano-updates/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[746],{62205:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/11","page":11,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/10","nextPage":"/cardano-updates/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d6b66cf4.a1a0de98.js b/assets/js/d6b66cf4.a1a0de98.js new file mode 100644 index 0000000000..c6cc79fab5 --- /dev/null +++ b/assets/js/d6b66cf4.a1a0de98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5516],{1673:a=>{a.exports=JSON.parse('{"title":"Recent Posts","items":[{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-24-hydra"},{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-03-23-db-sync"},{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"},{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"},{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"},{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"},{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"},{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"},{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"},{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"}]}')}}]); \ No newline at end of file diff --git a/assets/js/d6b66cf4.ab13800d.js b/assets/js/d6b66cf4.ab13800d.js deleted file mode 100644 index dce7fd3949..0000000000 --- a/assets/js/d6b66cf4.ab13800d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5516],{1673:e=>{e.exports=JSON.parse('{"title":"Recent Posts","items":[{"title":"DB-sync Team Update","permalink":"/cardano-updates/2023-03-23-db-sync"},{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-23-mithril"},{"title":"Consensus Team Update","permalink":"/cardano-updates/2023-03-22-consensus"},{"title":"Performance & tracing update","permalink":"/cardano-updates/2023-03-22-performance-and-tracing"},{"title":"Network Team Update","permalink":"/cardano-updates/2023-03-21-network"},{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-17-hydra"},{"title":"Ledger Team Update","permalink":"/cardano-updates/2023-03-17-ledger"},{"title":"Goedel Team Update","permalink":"/cardano-updates/2023-03-16-goedel"},{"title":"Hydra Team Update","permalink":"/cardano-updates/2023-03-10-hydra"},{"title":"Mithril Team Update","permalink":"/cardano-updates/2023-03-09-mithril"}]}')}}]); \ No newline at end of file diff --git a/assets/js/d8668f0c.fb42c13f.js b/assets/js/d8668f0c.a8a472a7.js similarity index 59% rename from assets/js/d8668f0c.fb42c13f.js rename to assets/js/d8668f0c.a8a472a7.js index 41f5144245..27fc7e7401 100644 --- a/assets/js/d8668f0c.fb42c13f.js +++ b/assets/js/d8668f0c.a8a472a7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1821],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/cardano-updates/2023-03-23-db-sync",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/cardano-updates/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},nextItem:{title:"Mithril Team Update",permalink:"/cardano-updates/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1821],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/cardano-updates/2023-03-23-db-sync",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/cardano-updates/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/cardano-updates/2023-03-24-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/cardano-updates/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d957ac34.3a4ac84b.js b/assets/js/d957ac34.3a4ac84b.js new file mode 100644 index 0000000000..fd2a612c65 --- /dev/null +++ b/assets/js/d957ac34.3a4ac84b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7772],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/cardano-updates/2023-03-24-hydra",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/blog/2023-03-24-hydra.md",source:"@site/blog/2023-03-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-24T00:00:00.000Z",formattedDate:"March 24, 2023",tags:[{label:"hydra",permalink:"/cardano-updates/tags/hydra"}],readingTime:.95,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},nextItem:{title:"DB-sync Team Update",permalink:"/cardano-updates/2023-03-23-db-sync"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p};function u(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra had a team workshop and conducted the monthly review\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\nthe hydraw demo application. While this marks an important milestone, they also\nemphasized that more features are still to be added as needed for applications\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\ndiscussions and provide more space for user requests."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392"},"slides"),"/",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c"},"recording"),", full report of March next week",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Opened a head on mainnet with hydraw demonstration"),(0,n.kt)("li",{parentName:"ul"},"Hydra pay updates"))),(0,n.kt)("li",{parentName:"ul"},"Team workshop in Austria",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Hydra presentation at the Cardano Foundation in Zurich"),(0,n.kt)("li",{parentName:"ul"},"In-person grooming session, marked many items as candidates to be rather :idea: dicussions"),(0,n.kt)("li",{parentName:"ul"},"Improved head protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")," and investigated a potential bug in rollback handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Team building and retrospective")))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up on backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Make API more configurable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e5a8e689.018a467d.js b/assets/js/e5a8e689.4efa87d9.js similarity index 74% rename from assets/js/e5a8e689.018a467d.js rename to assets/js/e5a8e689.4efa87d9.js index 6008e4abf2..8cee9646df 100644 --- a/assets/js/e5a8e689.018a467d.js +++ b/assets/js/e5a8e689.4efa87d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5946],{88019:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/16","page":16,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/15","nextPage":"/cardano-updates/page/17","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5946],{88019:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/16","page":16,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/15","nextPage":"/cardano-updates/page/17","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ef2b1d07.b89c2117.js b/assets/js/ef2b1d07.e9725eaa.js similarity index 84% rename from assets/js/ef2b1d07.b89c2117.js rename to assets/js/ef2b1d07.e9725eaa.js index fbc2821add..0ead032c6e 100644 --- a/assets/js/ef2b1d07.b89c2117.js +++ b/assets/js/ef2b1d07.e9725eaa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[729],{91102:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/3","page":3,"postsPerPage":5,"totalPages":4,"totalCount":20,"previousPage":"/cardano-updates/tags/hydra/page/2","nextPage":"/cardano-updates/tags/hydra/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[729],{91102:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/tags/hydra/page/3","page":3,"postsPerPage":5,"totalPages":5,"totalCount":21,"previousPage":"/cardano-updates/tags/hydra/page/2","nextPage":"/cardano-updates/tags/hydra/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f5f103cc.e05e72b7.js b/assets/js/f5f103cc.baacecab.js similarity index 75% rename from assets/js/f5f103cc.e05e72b7.js rename to assets/js/f5f103cc.baacecab.js index ee34155103..63f65d8dea 100644 --- a/assets/js/f5f103cc.e05e72b7.js +++ b/assets/js/f5f103cc.baacecab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7170],{53162:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/5","page":5,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/4","nextPage":"/cardano-updates/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7170],{53162:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/5","page":5,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/4","nextPage":"/cardano-updates/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/fc0eac3b.c79caaf4.js b/assets/js/fc0eac3b.06513615.js similarity index 75% rename from assets/js/fc0eac3b.c79caaf4.js rename to assets/js/fc0eac3b.06513615.js index 574c5a6fc3..8b77871e67 100644 --- a/assets/js/fc0eac3b.c79caaf4.js +++ b/assets/js/fc0eac3b.06513615.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7927],{49063:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/10","page":10,"postsPerPage":5,"totalPages":24,"totalCount":116,"previousPage":"/cardano-updates/page/9","nextPage":"/cardano-updates/page/11","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7927],{49063:a=>{a.exports=JSON.parse('{"permalink":"/cardano-updates/page/10","page":10,"postsPerPage":5,"totalPages":24,"totalCount":117,"previousPage":"/cardano-updates/page/9","nextPage":"/cardano-updates/page/11","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/main.35106439.js b/assets/js/main.35106439.js deleted file mode 100644 index 7aa6a71beb..0000000000 --- a/assets/js/main.35106439.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.35106439.js.LICENSE.txt */ -(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var a=n(67294),r=n(87462),o=n(68356),i=n.n(o),c=n(16887);const l={"0048047b":[()=>n.e(8518).then(n.bind(n,79682)),"@site/blog/2022-12-28-node-cli-api.md?truncated=true",79682],"015be621":[()=>n.e(613).then(n.bind(n,77613)),"@site/blog/2022-09-20-consensus.md",77613],"017cd6b7":[()=>n.e(3649).then(n.bind(n,14286)),"@site/blog/2022-11-18-hydra.md",14286],"019bb279":[()=>n.e(3167).then(n.bind(n,86627)),"@site/blog/2022-08-31-consensus.md?truncated=true",86627],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,91223)),"@theme/BlogTagsListPage",91223],"03d856aa":[()=>n.e(6413).then(n.bind(n,17040)),"@site/blog/2022-11-11-network.md",17040],"042169f6":[()=>n.e(7449).then(n.bind(n,7841)),"@site/blog/2022-12-01-mithril.md",7841],"04326247":[()=>n.e(5759).then(n.bind(n,2327)),"@site/blog/2023-01-25-node-cli-api.md?truncated=true",2327],"06a283ef":[()=>n.e(2307).then(n.bind(n,15889)),"@site/blog/2022-10-04-db-sync.md?truncated=true",15889],"07541956":[()=>n.e(9419).then(n.t.bind(n,95884,19)),"~blog/updates/cardano-updates-page-15-d79.json",95884],"07fdf123":[()=>n.e(9439).then(n.bind(n,86757)),"@site/blog/2023-01-13-release.md?truncated=true",86757],"089154c4":[()=>n.e(2344).then(n.bind(n,83365)),"@site/blog/2022-11-02-node-cli-api.md",83365],"08c82b6d":[()=>n.e(81).then(n.t.bind(n,7232,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-blog/updates/plugin-route-context-module-100.json",7232],"0a44a251":[()=>n.e(3565).then(n.bind(n,51604)),"@site/blog/2022-12-14-node-cli-api.md?truncated=true",51604],"0b1b72af":[()=>n.e(6276).then(n.bind(n,23329)),"@site/blog/2022-12-09-crypto.md?truncated=true",23329],"0c11045c":[()=>n.e(9745).then(n.bind(n,56996)),"@site/blog/2023-02-03-goedel.md?truncated=true",56996],"0c48efb1":[()=>n.e(1794).then(n.bind(n,35468)),"@site/blog/2023-02-17-hydra.md",35468],"0d671897":[()=>n.e(9059).then(n.bind(n,75396)),"@site/blog/2022-11-01-db-sync.md?truncated=true",75396],"0d889cfb":[()=>n.e(7237).then(n.bind(n,30309)),"@site/blog/2023-03-17-hydra.md",30309],"0db650db":[()=>n.e(4607).then(n.bind(n,49165)),"@site/blog/2023-03-22-consensus.md?truncated=true",49165],"0de82e28":[()=>n.e(6743).then(n.t.bind(n,37624,19)),"~docs/default/category-cardano-updatesdocs-defaultsidebar-category-tutorial-extras-741.json",37624],"0dea9a3b":[()=>n.e(4910).then(n.bind(n,96597)),"@site/quarterly/2023-01-13-open-source.md",96597],"0e384e19":[()=>n.e(9671).then(n.bind(n,59881)),"@site/docs/intro.md",59881],"10659ce5":[()=>n.e(400).then(n.bind(n,62471)),"@site/blog/2022-11-16-node-cli-api.md?truncated=true",62471],"1147f4da":[()=>n.e(1463).then(n.bind(n,75148)),"@site/blog/2022-11-03-embedding-quality.md",75148],"120c0b00":[()=>n.e(9955).then(n.bind(n,33276)),"@site/blog/2022-11-30-node-cli-api.md",33276],"126e82e6":[()=>n.e(6871).then(n.bind(n,67870)),"@site/blog/2022-11-02-ledger.md?truncated=true",67870],"1377d1fa":[()=>n.e(9841).then(n.bind(n,92927)),"@site/blog/2022-10-19-node-cli-api.md",92927],"144cf255":[()=>n.e(5553).then(n.bind(n,34167)),"@site/blog/2022-11-04-mithril.md?truncated=true",34167],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,34228)),"@theme/DocCategoryGeneratedIndexPage",34228],"14fc0a72":[()=>n.e(3686).then(n.t.bind(n,52256,19)),"~blog/updates/cardano-updates-tags-performance-tracing-52e-list.json",52256],"15072f11":[()=>n.e(3129).then(n.bind(n,49702)),"@site/quarterly/2022-11-07-ledger.md?truncated=true",49702],"154dea53":[()=>n.e(5542).then(n.t.bind(n,46622,19)),"~blog/updates/cardano-updates-tags-ledger-page-3-db1.json",46622],"15dc596d":[()=>n.e(6962).then(n.bind(n,487)),"@site/blog/2022-11-02-system-test.md?truncated=true",487],"166775fd":[()=>n.e(9847).then(n.t.bind(n,39399,19)),"~blog/updates/cardano-updates-tags-ledger-page-2-c49-list.json",39399],17630979:[()=>n.e(3724).then(n.bind(n,22903)),"@site/blog/2022-11-02-system-test.md",22903],"177280a4":[()=>n.e(5447).then(n.bind(n,67686)),"@site/blog/2022-11-11-hydra.md?truncated=true",67686],17896441:[()=>Promise.all([n.e(532),n.e(210),n.e(7918)]).then(n.bind(n,15154)),"@theme/DocItem",15154],"187056c8":[()=>n.e(430).then(n.bind(n,1377)),"@site/blog/2022-11-11-crypto.md",1377],"18c41134":[()=>n.e(2859).then(n.bind(n,43494)),"@site/docs/tutorial-basics/markdown-features.mdx",43494],"1a21d6a2":[()=>n.e(8694).then(n.t.bind(n,98253,19)),"~blog/updates/cardano-updates-tags-crypto-b1b-list.json",98253],"1a657a20":[()=>n.e(7382).then(n.t.bind(n,26170,19)),"~blog/updates/cardano-updates-tags-cli-api-page-2-8d5.json",26170],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1caacab6":[()=>n.e(5442).then(n.bind(n,89790)),"@site/blog/2023-03-10-hydra.md?truncated=true",89790],"1da92289":[()=>n.e(2954).then(n.bind(n,49363)),"@site/blog/2022-11-03-embedding-quality.md?truncated=true",49363],"1e0f95a7":[()=>n.e(5123).then(n.t.bind(n,85782,19)),"~blog/updates/cardano-updates-page-17-faf.json",85782],"1e24dd00":[()=>n.e(1652).then(n.t.bind(n,42664,19)),"~blog/quarterly/cardano-updates-quarterly-tags-open-source-e7c-list.json",42664],"1e4232ab":[()=>n.e(8818).then(n.bind(n,6193)),"@site/docs/tutorial-basics/create-a-document.md",6193],"1f391b9e":[()=>Promise.all([n.e(532),n.e(210),n.e(3085)]).then(n.bind(n,14247)),"@theme/MDXPage",14247],"2073b851":[()=>Promise.all([n.e(1068),n.e(7704)]).then(n.bind(n,3529)),"@site/blog/2022-09-27-network.md?truncated=true",3529],"21735eff":[()=>n.e(4156).then(n.t.bind(n,60430,19)),"~blog/updates/cardano-updates-tags-network-page-2-514-list.json",60430],"21857c8f":[()=>n.e(5417).then(n.bind(n,7484)),"@site/blog/2022-12-01-system-test.md",7484],"2494f6fc":[()=>n.e(7583).then(n.t.bind(n,4452,19)),"~blog/quarterly/cardano-updates-quarterly-tags-tags-a76.json",4452],"26678b7e":[()=>n.e(7724).then(n.bind(n,32447)),"@site/blog/2022-12-02-hydra.md",32447],"274d7200":[()=>n.e(6565).then(n.bind(n,38189)),"@site/blog/2022-11-11-ledger.md?truncated=true",38189],"27c463c7":[()=>n.e(4327).then(n.t.bind(n,83769,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],28874657:[()=>n.e(8592).then(n.bind(n,68472)),"@site/blog/2023-03-08-consensus.md",68472],"2c045882":[()=>n.e(8777).then(n.t.bind(n,52488,19)),"~blog/updates/cardano-updates-tags-performance-tracing-52e.json",52488],"2d72833d":[()=>n.e(8303).then(n.bind(n,22472)),"@site/blog/2023-02-17-hydra.md?truncated=true",22472],"2e2abe90":[()=>n.e(9467).then(n.bind(n,18367)),"@site/blog/2023-01-19-ledger.md?truncated=true",18367],"2e69cd33":[()=>n.e(5662).then(n.t.bind(n,15238,19)),"~blog/updates/cardano-updates-tags-ledger-cda.json",15238],"2eba0b82":[()=>n.e(3898).then(n.bind(n,92134)),"@site/blog/2023-01-20-sre.md",92134],"2fa57f55":[()=>n.e(7176).then(n.bind(n,52901)),"@site/blog/2022-09-01-ledger.md?truncated=true",52901],"2fd426fa":[()=>n.e(6016).then(n.bind(n,89488)),"@site/blog/2023-01-11-consensus.md",89488],"3143eb67":[()=>n.e(7204).then(n.bind(n,57574)),"@site/blog/2023-01-11-performance-and-tracing.md?truncated=true",57574],"31889a8f":[()=>n.e(6446).then(n.bind(n,59591)),"@site/blog/2022-11-02-consensus.md?truncated=true",59591],"324138c8":[()=>n.e(5613).then(n.bind(n,42554)),"@site/blog/2023-02-22-consensus.md",42554],"32d4ad41":[()=>n.e(2575).then(n.bind(n,17402)),"@site/blog/2022-11-11-hydra.md",17402],"3328a3bf":[()=>n.e(6393).then(n.bind(n,44495)),"@site/blog/2022-10-04-db-sync.md",44495],34012593:[()=>n.e(6809).then(n.bind(n,22555)),"@site/blog/2023-03-03-goedel.md",22555],"347c3e4d":[()=>n.e(3271).then(n.bind(n,43292)),"@site/blog/2022-12-01-db-sync.md",43292],"34c17ec8":[()=>n.e(1902).then(n.t.bind(n,52219,19)),"~blog/quarterly/cardano-updates-quarterly-b07.json",52219],"35785fae":[()=>n.e(7233).then(n.bind(n,56031)),"@site/blog/2023-01-27-hydra.md?truncated=true",56031],"359aa856":[()=>n.e(7317).then(n.t.bind(n,2112,19)),"~blog/updates/cardano-updates-tags-embedding-quality-232-list.json",2112],"35f1ce0d":[()=>n.e(5400).then(n.t.bind(n,80299,19)),"~blog/updates/cardano-updates-tags-crypto-b1b.json",80299],"370c5287":[()=>n.e(2438).then(n.bind(n,24475)),"@site/blog/2022-10-28-network.md",24475],"372219b0":[()=>n.e(4251).then(n.t.bind(n,13598,19)),"~blog/updates/cardano-updates-tags-tags-fe2.json",13598],"391126a1":[()=>n.e(542).then(n.bind(n,71720)),"@site/blog/2023-03-17-ledger.md?truncated=true",71720],"393be207":[()=>n.e(7414).then(n.bind(n,53123)),"@site/src/pages/markdown-page.md",53123],"3ab5f4e0":[()=>n.e(4376).then(n.bind(n,33684)),"@site/blog/2023-03-23-db-sync.md?truncated=true",33684],"3ac14561":[()=>n.e(9765).then(n.t.bind(n,30455,19)),"~blog/updates/cardano-updates-page-12-58d.json",30455],"3ac610ff":[()=>n.e(5091).then(n.bind(n,79647)),"@site/blog/2023-03-16-goedel.md?truncated=true",79647],"3ce290cc":[()=>n.e(8654).then(n.bind(n,64938)),"@site/blog/2023-02-17-goedel.md?truncated=true",64938],"3e93a65d":[()=>n.e(1164).then(n.t.bind(n,35089,19)),"~blog/updates/cardano-updates-page-20-c05.json",35089],"3eae7101":[()=>n.e(9399).then(n.t.bind(n,44659,19)),"~blog/quarterly/cardano-updates-quarterly-tags-network-8e3.json",44659],"3ede3d79":[()=>n.e(2221).then(n.t.bind(n,4562,19)),"~blog/updates/cardano-updates-archive-e9d.json",4562],"40a4cbba":[()=>n.e(6458).then(n.t.bind(n,43602,19)),"~blog/updates/cardano-updates-tags-embedding-quality-232.json",43602],"40e498fa":[()=>n.e(3092).then(n.bind(n,72311)),"@site/blog/2022-11-02-node-cli-api.md?truncated=true",72311],"41244b80":[()=>n.e(2496).then(n.t.bind(n,43985,19)),"~blog/updates/cardano-updates-tags-ledger-cda-list.json",43985],41606842:[()=>n.e(8101).then(n.bind(n,79031)),"@site/blog/2022-12-02-hydra.md?truncated=true",79031],"417fc4b4":[()=>n.e(7271).then(n.bind(n,30336)),"@site/blog/2023-01-20-hydra.md?truncated=true",30336],"41d087d7":[()=>n.e(1972).then(n.bind(n,97898)),"@site/blog/2022-11-18-hydra.md?truncated=true",97898],"437db4bf":[()=>n.e(1587).then(n.bind(n,25180)),"@site/blog/2023-02-03-crypto.md",25180],"439b9a57":[()=>n.e(6121).then(n.bind(n,11519)),"@site/blog/2022-11-02-release.md?truncated=true",11519],"43aa4824":[()=>n.e(8347).then(n.bind(n,13379)),"@site/blog/2023-03-17-ledger.md",13379],"43bbbae7":[()=>n.e(4310).then(n.bind(n,2530)),"@site/blog/2022-10-28-sre.md",2530],"44642b2f":[()=>n.e(3108).then(n.bind(n,10798)),"@site/blog/2023-02-10-hydra.md",10798],"459dd1ef":[()=>n.e(7825).then(n.t.bind(n,41867,19)),"~blog/updates/cardano-updates-tags-consensus-330.json",41867],"46c51ef6":[()=>n.e(8298).then(n.bind(n,88673)),"@site/quarterly/2022-11-09-network.md?truncated=true",88673],"4735cd81":[()=>n.e(5529).then(n.bind(n,68428)),"@site/blog/2023-01-20-network.md?truncated=true",68428],"47cae651":[()=>n.e(8352).then(n.t.bind(n,81765,19)),"~blog/updates/cardano-updates-page-2-aef.json",81765],"485c7377":[()=>n.e(7322).then(n.bind(n,73200)),"@site/blog/2022-11-04-open-source.md",73200],"4aaac366":[()=>n.e(7535).then(n.bind(n,17682)),"@site/blog/2022-11-30-performance-and-tracing.md",17682],"4b62dc40":[()=>n.e(335).then(n.bind(n,91534)),"@site/blog/2023-02-21-db-sync.md",91534],"4be9a3a6":[()=>n.e(5480).then(n.bind(n,47519)),"@site/blog/2023-03-03-ledger.md",47519],"4bed0e48":[()=>n.e(4631).then(n.bind(n,21290)),"@site/blog/2023-02-17-crypto.md",21290],"4c4f8ee1":[()=>n.e(113).then(n.bind(n,10331)),"@site/blog/2022-10-04-node-cli-api.md?truncated=true",10331],"4c91b9ee":[()=>n.e(6705).then(n.t.bind(n,5324,19)),"~blog/updates/cardano-updates-page-6-24a.json",5324],"4ce06e64":[()=>n.e(6318).then(n.bind(n,30792)),"@site/blog/2023-01-27-hydra.md",30792],"4cecd320":[()=>n.e(2311).then(n.t.bind(n,77048,19)),"~blog/updates/cardano-updates-tags-cli-api-4f5.json",77048],"4dc3be72":[()=>n.e(6074).then(n.bind(n,75804)),"@site/blog/2023-01-26-mithril.md?truncated=true",75804],"4df30499":[()=>n.e(1951).then(n.bind(n,6909)),"@site/blog/2023-01-11-performance-and-tracing.md",6909],"4fb1471a":[()=>n.e(2347).then(n.t.bind(n,16186,19)),"~blog/updates/cardano-updates-tags-consensus-page-2-fa9.json",16186],"4fe88e48":[()=>n.e(2214).then(n.t.bind(n,17849,19)),"~blog/updates/cardano-updates-tags-db-sync-39c-list.json",17849],"51cf8946":[()=>n.e(6324).then(n.bind(n,83753)),"@site/blog/2022-11-25-hydra.md",83753],"533a09ca":[()=>n.e(227).then(n.bind(n,95802)),"@site/docs/tutorial-basics/create-a-blog-post.md",95802],"533bb9dc":[()=>n.e(22).then(n.bind(n,44508)),"@site/blog/2022-11-28-network.md?truncated=true",44508],"548ef7ca":[()=>n.e(5578).then(n.t.bind(n,8960,19)),"~blog/updates/cardano-updates-page-21-527.json",8960],"550cdc1d":[()=>n.e(5730).then(n.bind(n,70133)),"@site/blog/2023-02-03-goedel.md",70133],"551db1ac":[()=>n.e(3795).then(n.t.bind(n,62085,19)),"~blog/updates/cardano-updates-tags-mithril-page-2-0fe.json",62085],"55b9667a":[()=>n.e(5506).then(n.bind(n,73833)),"@site/blog/2023-03-02-network.md?truncated=true",73833],"563fcf2e":[()=>n.e(4560).then(n.bind(n,54332)),"@site/blog/2023-01-05-ledger.md?truncated=true",54332],"565f686e":[()=>n.e(3445).then(n.t.bind(n,18618,19)),"~blog/quarterly/cardano-updates-quarterly-tags-consensus-562.json",18618],"5668eccd":[()=>n.e(3918).then(n.bind(n,42)),"@site/blog/2022-12-09-hydra.md",42],"56f35d85":[()=>n.e(5485).then(n.bind(n,98803)),"@site/blog/2023-03-03-ledger.md?truncated=true",98803],"5733c82d":[()=>n.e(4184).then(n.bind(n,97630)),"@site/blog/2022-09-16-ledger.md",97630],57700755:[()=>n.e(3276).then(n.t.bind(n,15745,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"5778ca6b":[()=>n.e(1727).then(n.bind(n,86516)),"@site/quarterly/2022-11-07-nod-api-cli.md",86516],"5889a844":[()=>n.e(8184).then(n.bind(n,69282)),"@site/blog/2022-10-28-hydra.md",69282],"5c868d36":[()=>n.e(5589).then(n.bind(n,90187)),"@site/docs/tutorial-basics/create-a-page.md",90187],"5cf7c214":[()=>n.e(681).then(n.t.bind(n,57654,19)),"~blog/updates/cardano-updates-tags-db-sync-39c.json",57654],"5df8a536":[()=>n.e(374).then(n.t.bind(n,92817,19)),"~blog/updates/cardano-updates-tags-release-0fa-list.json",92817],"5e3dc99b":[()=>n.e(7272).then(n.bind(n,56893)),"@site/blog/2022-12-16-hydra.md",56893],"60c9cc01":[()=>n.e(2744).then(n.t.bind(n,36901,19)),"~blog/updates/cardano-updates-page-4-922.json",36901],"60e1630c":[()=>n.e(1831).then(n.bind(n,48895)),"@site/blog/2023-02-08-node-cli-api.md",48895],"60fae5f4":[()=>n.e(705).then(n.t.bind(n,75293,19)),"~blog/quarterly/cardano-updates-quarterly-tags-ledger-2d0.json",75293],"61d299e1":[()=>n.e(5552).then(n.t.bind(n,88947,19)),"~blog/updates/cardano-updates-tags-release-0fa.json",88947],"61f1e7c8":[()=>n.e(883).then(n.t.bind(n,63732,19)),"~blog/updates/cardano-updates-tags-consensus-page-3-682.json",63732],"6226ba71":[()=>n.e(644).then(n.bind(n,88151)),"@site/blog/2022-11-23-ledger.md?truncated=true",88151],"62422ab6":[()=>n.e(5855).then(n.bind(n,29632)),"@site/blog/2023-02-17-ledger.md?truncated=true",29632],"62dc90a1":[()=>n.e(6003).then(n.t.bind(n,31371,19)),"~blog/updates/cardano-updates-tags-consensus-page-3-682-list.json",31371],"62f46a38":[()=>n.e(2681).then(n.bind(n,14066)),"@site/blog/2023-02-17-goedel.md",14066],"637356df":[()=>n.e(5979).then(n.bind(n,29388)),"@site/blog/2022-09-19-db-sync.md",29388],"63fae4f0":[()=>n.e(9898).then(n.bind(n,5383)),"@site/blog/2023-03-21-network.md",5383],"66326f4e":[()=>n.e(7837).then(n.t.bind(n,16524,19)),"~blog/updates/cardano-updates-page-8-42b.json",16524],"684a796f":[()=>n.e(2871).then(n.t.bind(n,83127,19)),"~blog/updates/cardano-updates-tags-open-source-9d0.json",83127],"6875c492":[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(8610)]).then(n.bind(n,41714)),"@theme/BlogTagsPostsPage",41714],"68fb9d2f":[()=>n.e(48).then(n.bind(n,33281)),"@site/blog/2022-09-16-ledger.md?truncated=true",33281],"691b1ed7":[()=>n.e(4944).then(n.bind(n,18980)),"@site/blog/2023-01-25-consensus.md",18980],"6c658908":[()=>n.e(3875).then(n.t.bind(n,18860,19)),"~blog/updates/cardano-updates-tags-sre-d43-list.json",18860],"6d371395":[()=>n.e(7730).then(n.bind(n,73547)),"@site/blog/2022-09-01-ledger.md",73547],"6d826f51":[()=>n.e(7729).then(n.bind(n,87439)),"@site/blog/2022-10-18-consensus.md",87439],"6da0a796":[()=>n.e(567).then(n.bind(n,41701)),"@site/blog/2022-11-25-crypto.md?truncated=true",41701],"6e743f1b":[()=>n.e(2686).then(n.bind(n,47088)),"@site/blog/2023-01-11-consensus.md?truncated=true",47088],"7030fa2f":[()=>n.e(9640).then(n.bind(n,88752)),"@site/blog/2022-08-31-consensus.md",88752],"71e4641a":[()=>Promise.all([n.e(1068),n.e(3940)]).then(n.bind(n,16528)),"@site/blog/2022-08-12-network.md",16528],"72c81964":[()=>n.e(4590).then(n.bind(n,25418)),"@site/blog/2023-01-26-mithril.md",25418],"733f2214":[()=>n.e(947).then(n.bind(n,67719)),"@site/blog/2022-10-14-hydra.md",67719],"73bbd4d7":[()=>n.e(5590).then(n.bind(n,26293)),"@site/blog/2022-09-20-consensus.md?truncated=true",26293],"74d66224":[()=>n.e(767).then(n.bind(n,4793)),"@site/blog/2022-12-14-consensus.md?truncated=true",4793],"76794a21":[()=>n.e(9071).then(n.bind(n,54861)),"@site/blog/2023-02-23-mithril.md?truncated=true",54861],"76c61a3b":[()=>n.e(1192).then(n.bind(n,6540)),"@site/blog/2022-11-16-performance-and-tracing.md?truncated=true",6540],"77215fb3":[()=>n.e(3680).then(n.bind(n,91002)),"@site/blog/2022-10-21-hydra.md?truncated=true",91002],"78d8ce1d":[()=>n.e(3320).then(n.bind(n,82826)),"@site/blog/2022-11-01-db-sync.md",82826],79239208:[()=>n.e(5748).then(n.t.bind(n,61778,19)),"~blog/updates/cardano-updates-tags-hydra-page-2-af6-list.json",61778],"795480a5":[()=>n.e(8446).then(n.bind(n,14366)),"@site/blog/2023-01-05-ledger.md",14366],79730245:[()=>n.e(1596).then(n.bind(n,57102)),"@site/blog/2023-02-17-network.md?truncated=true",57102],"79d76848":[()=>n.e(5379).then(n.bind(n,71256)),"@site/quarterly/2023-01-13-open-source.md?truncated=true",71256],"7b73b4cd":[()=>n.e(881).then(n.t.bind(n,25184,19)),"~blog/updates/cardano-updates-page-19-308.json",25184],"7c359f4d":[()=>n.e(7696).then(n.bind(n,60515)),"@site/blog/2023-01-13-system-test.md?truncated=true",60515],"7c815b5e":[()=>n.e(9318).then(n.bind(n,97771)),"@site/blog/2022-10-05-consensus.md?truncated=true",97771],"7d4ab4f9":[()=>n.e(4007).then(n.t.bind(n,90958,19)),"~blog/updates/cardano-updates-page-9-6db.json",90958],"7d6aa09c":[()=>n.e(8058).then(n.t.bind(n,18069,19)),"~blog/updates/cardano-updates-tags-goedel-5b9.json",18069],"7e87972d":[()=>n.e(2432).then(n.bind(n,8671)),"@site/blog/2022-11-30-performance-and-tracing.md?truncated=true",8671],"7faccef9":[()=>n.e(5064).then(n.bind(n,37006)),"@site/blog/2022-10-28-performance-and-tracing.md?truncated=true",37006],"80057f85":[()=>n.e(3377).then(n.t.bind(n,13147,19)),"~blog/quarterly/cardano-updates-quarterly-tags-network-8e3-list.json",13147],"805fc822":[()=>n.e(3165).then(n.bind(n,7581)),"@site/blog/2022-12-12-network.md?truncated=true",7581],"81528b00":[()=>n.e(471).then(n.bind(n,67938)),"@site/blog/2022-12-01-mithril.md?truncated=true",67938],"81bb24c9":[()=>n.e(2717).then(n.bind(n,94887)),"@site/blog/2022-11-18-mithril.md",94887],"822bd8ab":[()=>n.e(6504).then(n.bind(n,27428)),"@site/docs/tutorial-basics/congratulations.md",27428],"82ed4471":[()=>n.e(8312).then(n.t.bind(n,9933,19)),"~blog/updates/cardano-updates-page-7-413.json",9933],"82f24945":[()=>n.e(1468).then(n.bind(n,11607)),"@site/blog/2023-01-20-crypto.md?truncated=true",11607],"831d95cb":[()=>n.e(5319).then(n.bind(n,69346)),"@site/blog/2023-01-13-hydra.md",69346],"8395f67d":[()=>n.e(6934).then(n.t.bind(n,55035,19)),"~blog/updates/cardano-updates-tags-crypto-page-2-57e-list.json",55035],"83e7e4db":[()=>n.e(8102).then(n.bind(n,85321)),"@site/quarterly/2022-11-15-consensus.md",85321],"84677cf0":[()=>n.e(4415).then(n.bind(n,70789)),"@site/blog/2022-12-09-hydra.md?truncated=true",70789],"8470e3c7":[()=>n.e(8141).then(n.bind(n,75734)),"@site/blog/2023-01-06-crypto.md?truncated=true",75734],"859b6012":[()=>n.e(5173).then(n.t.bind(n,96249,19)),"~blog/updates/cardano-updates-tags-db-sync-page-2-4f6.json",96249],"86e0423a":[()=>n.e(9778).then(n.t.bind(n,6118,19)),"~blog/updates/cardano-updates-tags-mithril-7d9-list.json",6118],87088759:[()=>n.e(47).then(n.t.bind(n,32425,19)),"~blog/quarterly/blog-post-list-prop-quarterly.json",32425],"8864b77b":[()=>n.e(1908).then(n.bind(n,21318)),"@site/blog/2023-03-08-performance-and-tracing.md?truncated=true",21318],"8914fa7e":[()=>n.e(5347).then(n.bind(n,17177)),"@site/blog/2022-11-16-consensus.md?truncated=true",17177],"8a6fc2ec":[()=>n.e(2154).then(n.bind(n,82391)),"@site/blog/2023-01-19-ledger.md",82391],"8c6dbeca":[()=>n.e(6162).then(n.bind(n,32688)),"@site/blog/2023-02-17-crypto.md?truncated=true",32688],"8c75942c":[()=>n.e(3530).then(n.bind(n,6905)),"@site/blog/2023-02-09-mithril.md",6905],"8ccf5d9f":[()=>n.e(6649).then(n.bind(n,78367)),"@site/blog/2022-10-14-ledger.md",78367],"8cd47ea9":[()=>n.e(8628).then(n.bind(n,31550)),"@site/blog/2022-10-21-hydra.md",31550],"8d209506":[()=>n.e(2936).then(n.bind(n,58373)),"@site/blog/2023-01-20-crypto.md",58373],"8d3da32e":[()=>n.e(4877).then(n.bind(n,92122)),"@site/blog/2022-11-02-release.md",92122],"8e410d22":[()=>n.e(5272).then(n.bind(n,54212)),"@site/blog/2023-03-23-mithril.md",54212],"8f7e10a3":[()=>n.e(2033).then(n.t.bind(n,79573,19)),"~docs/default/category-cardano-updatesdocs-defaultsidebar-category-tutorial-basics-e06.json",79573],"8fea44ca":[()=>n.e(7517).then(n.bind(n,11611)),"@site/blog/2023-01-25-consensus.md?truncated=true",11611],"90f359c5":[()=>n.e(6891).then(n.bind(n,83762)),"@site/blog/2022-10-28-sre.md?truncated=true",83762],"913aac40":[()=>n.e(2846).then(n.bind(n,97344)),"@site/blog/2023-03-23-mithril.md?truncated=true",97344],91831590:[()=>n.e(9121).then(n.t.bind(n,50864,19)),"~blog/updates/cardano-updates-tags-hydra-page-2-af6.json",50864],"91b05c51":[()=>n.e(7490).then(n.bind(n,34691)),"@site/blog/2022-12-12-network.md",34691],"924be064":[()=>n.e(1798).then(n.bind(n,93825)),"@site/blog/2023-01-06-crypto.md",93825],"925feafa":[()=>n.e(9773).then(n.bind(n,67358)),"@site/blog/2023-02-23-mithril.md",67358],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],93729337:[()=>n.e(5845).then(n.bind(n,82597)),"@site/blog/2023-01-14-db-sync.md",82597],"93b15a8c":[()=>n.e(4582).then(n.bind(n,34989)),"@site/blog/2022-10-27-crypto.md",34989],94133299:[()=>n.e(8275).then(n.bind(n,87687)),"@site/blog/2022-09-30-ledger.md",87687],"9440f007":[()=>n.e(8254).then(n.bind(n,59255)),"@site/blog/2022-12-14-consensus.md",59255],"9450fd8f":[()=>n.e(5410).then(n.t.bind(n,9804,19)),"~blog/updates/cardano-updates-page-18-352.json",9804],"94780c38":[()=>n.e(8925).then(n.bind(n,99178)),"@site/blog/2023-01-14-db-sync.md?truncated=true",99178],"94a907c9":[()=>n.e(3941).then(n.bind(n,44751)),"@site/blog/2023-03-03-goedel.md?truncated=true",44751],"94c6d911":[()=>n.e(4501).then(n.bind(n,14130)),"@site/blog/2022-11-16-performance-and-tracing.md",14130],"95f12e12":[()=>n.e(4727).then(n.bind(n,67975)),"@site/quarterly/2023-01-18-consensus.md?truncated=true",67975],"965e9e9a":[()=>n.e(7595).then(n.t.bind(n,27622,19)),"~blog/quarterly/cardano-updates-quarterly-tags-ledger-2d0-list.json",27622],"97daee08":[()=>n.e(2070).then(n.bind(n,43729)),"@site/blog/2023-03-09-mithril.md",43729],98277053:[()=>n.e(6602).then(n.t.bind(n,16938,19)),"~blog/updates/cardano-updates-tags-hydra-18a-list.json",16938],"986e43da":[()=>n.e(6807).then(n.bind(n,61934)),"@site/blog/2023-02-02-ledger.md",61934],"98e6984f":[()=>n.e(9861).then(n.bind(n,80648)),"@site/blog/2022-12-15-mithril.md?truncated=true",80648],"996aa714":[()=>n.e(594).then(n.bind(n,73172)),"@site/blog/2022-12-14-performance-and-tracing.md?truncated=true",73172],"9a01d9b0":[()=>n.e(1158).then(n.t.bind(n,78905,19)),"~blog/updates/cardano-updates-page-23-9f5.json",78905],"9a03c440":[()=>n.e(6959).then(n.bind(n,66401)),"@site/blog/2023-02-23-performance-and-tracing.md",66401],"9a4c05df":[()=>n.e(8077).then(n.t.bind(n,23401,19)),"~blog/updates/cardano-updates-tags-cli-api-page-2-8d5-list.json",23401],"9b6092d7":[()=>n.e(8990).then(n.bind(n,90436)),"@site/blog/2022-12-14-db-sync.md",90436],"9b7a95a2":[()=>n.e(7266).then(n.bind(n,54972)),"@site/blog/2022-10-18-consensus.md?truncated=true",54972],"9c662d1f":[()=>n.e(5773).then(n.t.bind(n,23714,19)),"~blog/updates/cardano-updates-tags-mithril-7d9.json",23714],"9dce568f":[()=>n.e(5029).then(n.t.bind(n,35560,19)),"~blog/updates/cardano-updates-tags-network-5a5-list.json",35560],"9e4087bc":[()=>n.e(3608).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],"9e834cf3":[()=>n.e(4941).then(n.t.bind(n,36262,19)),"~blog/updates/cardano-updates-page-13-7a9.json",36262],"9f70a142":[()=>n.e(6169).then(n.bind(n,4756)),"@site/blog/2022-12-09-crypto.md",4756],"9f7c2154":[()=>n.e(2472).then(n.bind(n,35890)),"@site/blog/2022-12-28-node-cli-api.md",35890],"9fba849d":[()=>n.e(2941).then(n.bind(n,14990)),"@site/blog/2022-11-04-hydra.md?truncated=true",14990],a0d18a99:[()=>n.e(2767).then(n.bind(n,11960)),"@site/quarterly/2022-11-07-ledger.md",11960],a0fc6770:[()=>n.e(9158).then(n.t.bind(n,94032,19)),"~blog/updates/cardano-updates-tags-db-sync-page-2-4f6-list.json",94032],a1597564:[()=>n.e(715).then(n.bind(n,33286)),"@site/blog/2023-02-02-ledger.md?truncated=true",33286],a1ac97eb:[()=>n.e(6463).then(n.bind(n,25274)),"@site/blog/2022-11-30-node-cli-api.md?truncated=true",25274],a1b4c76a:[()=>n.e(8765).then(n.t.bind(n,48796,19)),"~blog/updates/cardano-updates-page-14-0e3.json",48796],a3889346:[()=>n.e(9769).then(n.bind(n,8838)),"@site/blog/2022-09-30-ledger.md?truncated=true",8838],a5bf291f:[()=>n.e(907).then(n.t.bind(n,97577,19)),"~blog/updates/cardano-updates-tags-open-source-9d0-list.json",97577],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(3089)]).then(n.bind(n,80046)),"@theme/BlogListPage",80046],a8723288:[()=>n.e(6673).then(n.t.bind(n,51115,19)),"~blog/updates/cardano-updates-tags-sre-d43.json",51115],a9019578:[()=>n.e(4497).then(n.bind(n,65934)),"@site/blog/2022-10-04-node-cli-api.md",65934],a9347c1b:[()=>n.e(6323).then(n.bind(n,95829)),"@site/blog/2023-02-09-mithril.md?truncated=true",95829],aafd9eaa:[()=>n.e(9083).then(n.t.bind(n,25543,19)),"~blog/updates/cardano-updates-tags-performance-tracing-page-2-43f.json",25543],ac56cb0b:[()=>n.e(9329).then(n.bind(n,7640)),"@site/blog/2022-11-16-consensus.md",7640],ac87db6a:[()=>n.e(2703).then(n.t.bind(n,20637,19)),"~blog/updates/cardano-updates-tags-hydra-page-4-6e8-list.json",20637],ac8a5a87:[()=>n.e(5853).then(n.t.bind(n,33480,19)),"~blog/quarterly/cardano-updates-quarterly-archive-b33.json",33480],acd2edbe:[()=>n.e(9113).then(n.t.bind(n,52701,19)),"~blog/updates/cardano-updates-page-3-c5b.json",52701],add555bf:[()=>n.e(3360).then(n.bind(n,7584)),"@site/blog/2022-11-02-ledger.md",7584],ae2d2424:[()=>n.e(7873).then(n.bind(n,59274)),"@site/blog/2022-10-14-hydra.md?truncated=true",59274],ae455379:[()=>n.e(8672).then(n.t.bind(n,17033,19)),"~blog/quarterly/cardano-updates-quarterly-tags-consensus-562-list.json",17033],b020ac17:[()=>n.e(3538).then(n.t.bind(n,88564,19)),"~blog/updates/cardano-updates-page-22-cfc.json",88564],b03d4a4e:[()=>n.e(2834).then(n.bind(n,44301)),"@site/blog/2022-11-11-ledger.md",44301],b41783a8:[()=>n.e(9104).then(n.t.bind(n,861,19)),"~blog/updates/cardano-updates-tags-goedel-5b9-list.json",861],b4645a09:[()=>n.e(4416).then(n.t.bind(n,14950,19)),"~blog/updates/cardano-updates-f9b.json",14950],b4cc2dd2:[()=>n.e(635).then(n.bind(n,52945)),"@site/blog/2023-03-03-hydra.md",52945],b512dd46:[()=>n.e(7093).then(n.bind(n,5136)),"@site/blog/2022-11-11-network.md?truncated=true",5136],b5164349:[()=>n.e(176).then(n.bind(n,3644)),"@site/blog/2023-03-22-performance-and-tracing.md",3644],b6ef4fcb:[()=>n.e(3516).then(n.bind(n,33340)),"@site/blog/2022-12-16-hydra.md?truncated=true",33340],b78698d9:[()=>n.e(3288).then(n.bind(n,52949)),"@site/blog/2023-01-25-node-cli-api.md",52949],b88c8fa9:[()=>n.e(2190).then(n.bind(n,22750)),"@site/blog/2022-12-14-node-cli-api.md",22750],b8bcf1d1:[()=>n.e(3277).then(n.bind(n,98981)),"@site/blog/2023-02-03-crypto.md?truncated=true",98981],b92c36fd:[()=>n.e(9610).then(n.bind(n,84846)),"@site/blog/2022-10-28-hydra.md?truncated=true",84846],ba0b6dbd:[()=>Promise.all([n.e(1068),n.e(126)]).then(n.bind(n,50065)),"@site/blog/2022-08-12-network.md?truncated=true",50065],bb465a37:[()=>n.e(6246).then(n.bind(n,12332)),"@site/blog/2023-01-13-release.md",12332],bbc31819:[()=>n.e(7330).then(n.t.bind(n,21765,19)),"~blog/quarterly/cardano-updates-quarterly-tags-cli-api-quarterly-1f5.json",21765],bc6b65d9:[()=>n.e(160).then(n.bind(n,45335)),"@site/blog/2023-03-02-network.md",45335],bcf46d9c:[()=>n.e(1617).then(n.bind(n,48880)),"@site/blog/2023-01-20-hydra.md",48880],bda3e1c7:[()=>n.e(7335).then(n.bind(n,19203)),"@site/blog/2023-02-08-node-cli-api.md?truncated=true",19203],c061e3b1:[()=>n.e(4614).then(n.bind(n,99797)),"@site/blog/2023-03-09-mithril.md?truncated=true",99797],c063df1b:[()=>n.e(1562).then(n.bind(n,7314)),"@site/blog/2023-03-03-crypto.md",7314],c0cf6239:[()=>n.e(3482).then(n.bind(n,29025)),"@site/quarterly/2023-01-13-network.md?truncated=true",29025],c1c5c6f5:[()=>n.e(5569).then(n.t.bind(n,9564,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-blog/quarterly/plugin-route-context-module-100.json",9564],c315164d:[()=>n.e(3194).then(n.bind(n,64268)),"@site/blog/2023-01-12-mithril.md?truncated=true",64268],c60581f2:[()=>n.e(7094).then(n.bind(n,84718)),"@site/blog/2023-02-08-consensus.md?truncated=true",84718],c63933b3:[()=>n.e(236).then(n.bind(n,27502)),"@site/blog/2023-03-22-consensus.md",27502],c6ae40c2:[()=>n.e(7693).then(n.bind(n,68680)),"@site/blog/2023-01-20-sre.md?truncated=true",68680],c831575d:[()=>n.e(2677).then(n.bind(n,20519)),"@site/blog/2023-02-21-db-sync.md?truncated=true",20519],c94f306d:[()=>n.e(8727).then(n.t.bind(n,29127,19)),"~blog/updates/cardano-updates-tags-hydra-page-3-3da.json",29127],cc267639:[()=>n.e(1214).then(n.bind(n,27582)),"@site/blog/2023-01-13-system-test.md",27582],cc30e037:[()=>n.e(1421).then(n.t.bind(n,9353,19)),"~blog/updates/cardano-updates-tags-hydra-18a.json",9353],cc5c2602:[()=>n.e(8761).then(n.bind(n,54230)),"@site/quarterly/2023-01-13-network.md",54230],ccc49370:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(6103)]).then(n.bind(n,65203)),"@theme/BlogPostPage",65203],cced6026:[()=>n.e(7796).then(n.bind(n,52869)),"@site/quarterly/2022-11-07-nod-api-cli.md?truncated=true",52869],ce6dcc9e:[()=>n.e(7644).then(n.bind(n,56737)),"@site/blog/2022-09-19-db-sync.md?truncated=true",56737],cfb82551:[()=>n.e(6036).then(n.t.bind(n,85146,19)),"~blog/updates/cardano-updates-tags-hydra-page-4-6e8.json",85146],cfdb38ee:[()=>n.e(9736).then(n.t.bind(n,91779,19)),"~blog/updates/cardano-updates-page-24-2e6.json",91779],d0a351c0:[()=>n.e(1934).then(n.t.bind(n,298,19)),"~blog/updates/cardano-updates-tags-ledger-page-3-db1-list.json",298],d124c703:[()=>n.e(5152).then(n.bind(n,54219)),"@site/blog/2022-11-04-open-source.md?truncated=true",54219],d1d47ba3:[()=>n.e(746).then(n.t.bind(n,62205,19)),"~blog/updates/cardano-updates-page-11-5be.json",62205],d3a595c1:[()=>n.e(1537).then(n.bind(n,698)),"@site/blog/2022-10-19-node-cli-api.md?truncated=true",698],d3f3f546:[()=>n.e(3764).then(n.bind(n,54994)),"@site/blog/2022-11-25-crypto.md",54994],d6a93ba7:[()=>n.e(1349).then(n.bind(n,61256)),"@site/blog/2022-12-01-system-test.md?truncated=true",61256],d6b66cf4:[()=>n.e(5516).then(n.t.bind(n,1673,19)),"~blog/updates/blog-post-list-prop-updates.json",1673],d7899fea:[()=>n.e(7285).then(n.bind(n,59997)),"@site/blog/2022-11-11-crypto.md?truncated=true",59997],d79a4bb7:[()=>n.e(206).then(n.bind(n,25790)),"@site/blog/2022-11-25-hydra.md?truncated=true",25790],d7d2f3e9:[()=>n.e(7363).then(n.t.bind(n,93901,19)),"~blog/quarterly/cardano-updates-quarterly-tags-cli-api-quarterly-1f5-list.json",93901],d863ede2:[()=>n.e(5766).then(n.bind(n,48709)),"@site/blog/2023-02-22-consensus.md?truncated=true",48709],d8668f0c:[()=>n.e(1821).then(n.bind(n,94658)),"@site/blog/2023-03-23-db-sync.md",94658],d92df848:[()=>n.e(2578).then(n.bind(n,61895)),"@site/blog/2023-01-12-mithril.md",61895],d99d594e:[()=>n.e(6521).then(n.bind(n,43933)),"@site/blog/2023-02-23-performance-and-tracing.md?truncated=true",43933],d9ccb35d:[()=>n.e(3136).then(n.bind(n,62438)),"@site/blog/2023-03-21-network.md?truncated=true",62438],da7937f0:[()=>n.e(2083).then(n.bind(n,52445)),"@site/blog/2022-10-05-consensus.md",52445],daace409:[()=>Promise.all([n.e(1068),n.e(9008)]).then(n.bind(n,23947)),"@site/blog/2022-09-27-network.md",23947],db138d7c:[()=>n.e(8634).then(n.bind(n,78238)),"@site/quarterly/2023-01-18-consensus.md",78238],db5663d1:[()=>n.e(4348).then(n.t.bind(n,45422,19)),"~blog/updates/cardano-updates-tags-network-page-2-514.json",45422],dceb6e64:[()=>n.e(8242).then(n.bind(n,22300)),"@site/quarterly/2022-11-15-consensus.md?truncated=true",22300],de5b481b:[()=>n.e(2317).then(n.t.bind(n,12630,19)),"~blog/quarterly/cardano-updates-quarterly-tags-open-source-e7c.json",12630],dfd49ee8:[()=>n.e(247).then(n.bind(n,72396)),"@site/blog/2022-10-28-performance-and-tracing.md",72396],dff1c289:[()=>n.e(3792).then(n.bind(n,30089)),"@site/docs/tutorial-extras/manage-docs-versions.md",30089],dff84d74:[()=>n.e(5421).then(n.bind(n,812)),"@site/blog/2022-11-04-mithril.md",812],e06746c7:[()=>n.e(4410).then(n.t.bind(n,81981,19)),"~blog/updates/cardano-updates-tags-consensus-page-2-fa9-list.json",81981],e0a90ddc:[()=>n.e(4891).then(n.t.bind(n,44348,19)),"~blog/updates/cardano-updates-tags-consensus-330-list.json",44348],e135bd86:[()=>n.e(9791).then(n.bind(n,96223)),"@site/blog/2022-11-30-consensus.md?truncated=true",96223],e2011657:[()=>n.e(849).then(n.bind(n,51505)),"@site/blog/2023-03-17-hydra.md?truncated=true",51505],e2a7c340:[()=>n.e(8622).then(n.bind(n,36391)),"@site/blog/2023-01-13-hydra.md?truncated=true",36391],e2c8baed:[()=>n.e(6721).then(n.t.bind(n,80615,19)),"~blog/updates/cardano-updates-tags-crypto-page-2-57e.json",80615],e356bfd0:[()=>n.e(83).then(n.bind(n,96391)),"@site/blog/2022-10-27-crypto.md?truncated=true",96391],e38c8545:[()=>n.e(1092).then(n.t.bind(n,50047,19)),"~blog/updates/cardano-updates-tags-system-test-b49.json",50047],e3c3ef1c:[()=>n.e(9107).then(n.bind(n,4394)),"@site/blog/2022-11-04-hydra.md",4394],e44a2883:[()=>n.e(6755).then(n.bind(n,80740)),"@site/docs/tutorial-extras/translate-your-site.md",80740],e5a8e689:[()=>n.e(5946).then(n.t.bind(n,88019,19)),"~blog/updates/cardano-updates-page-16-842.json",88019],e5b737ed:[()=>n.e(4750).then(n.t.bind(n,1879,19)),"~blog/updates/cardano-updates-tags-system-test-b49-list.json",1879],e5dd9161:[()=>n.e(7329).then(n.bind(n,16036)),"@site/blog/2023-02-24-hydra.md",16036],e6402687:[()=>n.e(3524).then(n.bind(n,26879)),"@site/blog/2022-11-28-network.md",26879],e70f68c6:[()=>n.e(2815).then(n.bind(n,80684)),"@site/blog/2023-03-16-goedel.md",80684],e7486169:[()=>n.e(5237).then(n.bind(n,74349)),"@site/quarterly/2022-11-09-network.md",74349],e8d4d6c0:[()=>n.e(2818).then(n.bind(n,32340)),"@site/blog/2023-02-17-network.md",32340],e8f5afda:[()=>n.e(5540).then(n.t.bind(n,8990,19)),"~blog/updates/cardano-updates-tags-ledger-page-2-c49.json",8990],e9310706:[()=>n.e(3363).then(n.t.bind(n,90133,19)),"~blog/updates/cardano-updates-tags-performance-tracing-page-2-43f-list.json",90133],ea84a009:[()=>n.e(2501).then(n.bind(n,602)),"@site/blog/2023-03-03-crypto.md?truncated=true",602],eac6bb0a:[()=>n.e(7445).then(n.bind(n,97940)),"@site/blog/2022-11-16-node-cli-api.md",97940],eda7cf83:[()=>n.e(8423).then(n.bind(n,10725)),"@site/blog/2023-02-10-hydra.md?truncated=true",10725],edca0251:[()=>n.e(9066).then(n.bind(n,22704)),"@site/blog/2023-02-08-performance-and-tracing.md?truncated=true",22704],ee94a44f:[()=>n.e(6815).then(n.bind(n,6855)),"@site/blog/2022-12-15-mithril.md",6855],ef2b1d07:[()=>n.e(729).then(n.t.bind(n,91102,19)),"~blog/updates/cardano-updates-tags-hydra-page-3-3da-list.json",91102],ef2b6a3f:[()=>n.e(1338).then(n.bind(n,50818)),"@site/blog/2022-12-14-db-sync.md?truncated=true",50818],ef4801f7:[()=>n.e(5394).then(n.bind(n,45443)),"@site/blog/2023-02-08-performance-and-tracing.md",45443],eff08811:[()=>n.e(5816).then(n.bind(n,72837)),"@site/blog/2023-02-03-hydra.md",72837],f210b4b5:[()=>n.e(4745).then(n.bind(n,68831)),"@site/blog/2022-12-01-db-sync.md?truncated=true",68831],f2423430:[()=>n.e(1321).then(n.bind(n,28149)),"@site/blog/2023-03-22-performance-and-tracing.md?truncated=true",28149],f2b32cff:[()=>n.e(8566).then(n.bind(n,59485)),"@site/blog/2023-02-17-ledger.md",59485],f4cb7e87:[()=>n.e(85).then(n.t.bind(n,76777,19)),"~blog/updates/cardano-updates-tags-mithril-page-2-0fe-list.json",76777],f51bb76d:[()=>n.e(2626).then(n.bind(n,21772)),"@site/blog/2023-03-08-performance-and-tracing.md",21772],f55d3e7a:[()=>n.e(4193).then(n.bind(n,78030)),"@site/docs/tutorial-basics/deploy-your-site.md",78030],f59c978c:[()=>n.e(6545).then(n.bind(n,22053)),"@site/blog/2022-11-30-consensus.md",22053],f5a24224:[()=>n.e(1844).then(n.bind(n,66255)),"@site/blog/2022-10-14-ledger.md?truncated=true",66255],f5e5d1cf:[()=>n.e(1410).then(n.bind(n,45256)),"@site/blog/2022-11-18-mithril.md?truncated=true",45256],f5f103cc:[()=>n.e(7170).then(n.t.bind(n,53162,19)),"~blog/updates/cardano-updates-page-5-d4c.json",53162],f6aa5556:[()=>n.e(376).then(n.bind(n,86936)),"@site/blog/2022-12-09-ledger.md?truncated=true",86936],f850a5f3:[()=>n.e(5403).then(n.bind(n,23498)),"@site/blog/2023-01-20-network.md",23498],f872275a:[()=>n.e(6922).then(n.bind(n,87739)),"@site/blog/2023-03-08-consensus.md?truncated=true",87739],fa57bfdd:[()=>n.e(2149).then(n.t.bind(n,64665,19)),"~blog/updates/cardano-updates-tags-network-5a5.json",64665],faece773:[()=>n.e(2023).then(n.bind(n,58910)),"@site/blog/2023-02-03-hydra.md?truncated=true",58910],fb63aa20:[()=>n.e(8470).then(n.bind(n,62389)),"@site/blog/2022-12-14-performance-and-tracing.md",62389],fb793160:[()=>n.e(7411).then(n.bind(n,48089)),"@site/blog/2023-02-08-consensus.md",48089],fb8d4667:[()=>n.e(7161).then(n.bind(n,31241)),"@site/blog/2022-10-28-network.md?truncated=true",31241],fba052bd:[()=>n.e(6171).then(n.bind(n,54664)),"@site/blog/2022-11-02-consensus.md",54664],fc0eac3b:[()=>n.e(7927).then(n.t.bind(n,49063,19)),"~blog/updates/cardano-updates-page-10-021.json",49063],fce7e268:[()=>n.e(2140).then(n.bind(n,50153)),"@site/blog/2023-03-03-hydra.md?truncated=true",50153],fd6fd4a3:[()=>n.e(7495).then(n.bind(n,66366)),"@site/blog/2022-11-23-ledger.md",66366],fdba8f98:[()=>n.e(9224).then(n.bind(n,1814)),"@site/blog/2023-03-10-hydra.md",1814],fe184e91:[()=>n.e(9967).then(n.t.bind(n,51034,19)),"~blog/updates/cardano-updates-tags-cli-api-4f5-list.json",51034],fee99998:[()=>n.e(1760).then(n.bind(n,49627)),"@site/blog/2023-02-24-hydra.md?truncated=true",49627],ff8cfcf7:[()=>n.e(203).then(n.bind(n,98149)),"@site/blog/2022-12-09-ledger.md",98149]};function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?a.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},a.createElement("p",null,String(t)),a.createElement("div",null,a.createElement("button",{type:"button",onClick:n},"Retry"))):r?a.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},a.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},a.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"8"},a.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(99670),d=n(30226);function p(e,t){if("*"===e)return i()({loading:s,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return a.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},a.createElement(n,t))}});const o=c[`${e}-${t}`],p={},f=[],m=[],g=(0,u.Z)(o);return Object.entries(g).forEach((e=>{let[t,n]=e;const a=l[n];a&&(p[t]=a[0],f.push(a[1]),m.push(a[2]))})),i().Map({loading:s,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,a]=t;const r=a.default;if(!r)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof r&&"function"!=typeof r||Object.keys(a).filter((e=>"default"!==e)).forEach((e=>{r[e]=a[e]}));let o=i;const c=n.split(".");c.slice(0,-1).forEach((e=>{o=o[e]})),o[c[c.length-1]]=r}));const c=i.__comp;delete i.__comp;const l=i.__context;return delete i.__context,a.createElement(d.z,{value:l},a.createElement(c,(0,r.Z)({},i,n)))}})}const f=[{path:"/cardano-updates/2022-08-12-network",component:p("/cardano-updates/2022-08-12-network","e9a"),exact:!0},{path:"/cardano-updates/2022-08-12-sre",component:p("/cardano-updates/2022-08-12-sre","cf2"),exact:!0},{path:"/cardano-updates/2022-08-31-consensus",component:p("/cardano-updates/2022-08-31-consensus","6f9"),exact:!0},{path:"/cardano-updates/2022-09-01-ledger",component:p("/cardano-updates/2022-09-01-ledger","ccc"),exact:!0},{path:"/cardano-updates/2022-09-16-ledger",component:p("/cardano-updates/2022-09-16-ledger","8dd"),exact:!0},{path:"/cardano-updates/2022-09-19-db-sync",component:p("/cardano-updates/2022-09-19-db-sync","a4b"),exact:!0},{path:"/cardano-updates/2022-09-20-consensus",component:p("/cardano-updates/2022-09-20-consensus","b11"),exact:!0},{path:"/cardano-updates/2022-09-27-network",component:p("/cardano-updates/2022-09-27-network","7f3"),exact:!0},{path:"/cardano-updates/2022-09-30-ledger",component:p("/cardano-updates/2022-09-30-ledger","58c"),exact:!0},{path:"/cardano-updates/2022-10-02-consensus",component:p("/cardano-updates/2022-10-02-consensus","758"),exact:!0},{path:"/cardano-updates/2022-10-04-db-sync",component:p("/cardano-updates/2022-10-04-db-sync","114"),exact:!0},{path:"/cardano-updates/2022-10-04-node-cli-api",component:p("/cardano-updates/2022-10-04-node-cli-api","01f"),exact:!0},{path:"/cardano-updates/2022-10-05-consensus",component:p("/cardano-updates/2022-10-05-consensus","020"),exact:!0},{path:"/cardano-updates/2022-10-14-hydra",component:p("/cardano-updates/2022-10-14-hydra","8a0"),exact:!0},{path:"/cardano-updates/2022-10-14-ledger",component:p("/cardano-updates/2022-10-14-ledger","585"),exact:!0},{path:"/cardano-updates/2022-10-18-consensus",component:p("/cardano-updates/2022-10-18-consensus","52a"),exact:!0},{path:"/cardano-updates/2022-10-19-node-cli-api",component:p("/cardano-updates/2022-10-19-node-cli-api","dea"),exact:!0},{path:"/cardano-updates/2022-10-21-hydra",component:p("/cardano-updates/2022-10-21-hydra","577"),exact:!0},{path:"/cardano-updates/2022-10-27-crypto",component:p("/cardano-updates/2022-10-27-crypto","8f1"),exact:!0},{path:"/cardano-updates/2022-10-28-hydra",component:p("/cardano-updates/2022-10-28-hydra","835"),exact:!0},{path:"/cardano-updates/2022-10-28-network",component:p("/cardano-updates/2022-10-28-network","a2a"),exact:!0},{path:"/cardano-updates/2022-10-28-performance-and-tracing",component:p("/cardano-updates/2022-10-28-performance-and-tracing","207"),exact:!0},{path:"/cardano-updates/2022-10-31-open-source",component:p("/cardano-updates/2022-10-31-open-source","374"),exact:!0},{path:"/cardano-updates/2022-11-01-db-sync",component:p("/cardano-updates/2022-11-01-db-sync","aee"),exact:!0},{path:"/cardano-updates/2022-11-02-ledger",component:p("/cardano-updates/2022-11-02-ledger","672"),exact:!0},{path:"/cardano-updates/2022-11-02-node-cli-api",component:p("/cardano-updates/2022-11-02-node-cli-api","a05"),exact:!0},{path:"/cardano-updates/2022-11-02-release",component:p("/cardano-updates/2022-11-02-release","459"),exact:!0},{path:"/cardano-updates/2022-11-02-system-test",component:p("/cardano-updates/2022-11-02-system-test","d6c"),exact:!0},{path:"/cardano-updates/2022-11-03-embedding-quality",component:p("/cardano-updates/2022-11-03-embedding-quality","246"),exact:!0},{path:"/cardano-updates/2022-11-04-hydra",component:p("/cardano-updates/2022-11-04-hydra","f05"),exact:!0},{path:"/cardano-updates/2022-11-04-mithril",component:p("/cardano-updates/2022-11-04-mithril","591"),exact:!0},{path:"/cardano-updates/2022-11-11-crypto",component:p("/cardano-updates/2022-11-11-crypto","1d7"),exact:!0},{path:"/cardano-updates/2022-11-11-hydra",component:p("/cardano-updates/2022-11-11-hydra","83e"),exact:!0},{path:"/cardano-updates/2022-11-11-ledger",component:p("/cardano-updates/2022-11-11-ledger","2f1"),exact:!0},{path:"/cardano-updates/2022-11-11-network",component:p("/cardano-updates/2022-11-11-network","34f"),exact:!0},{path:"/cardano-updates/2022-11-16-consensus",component:p("/cardano-updates/2022-11-16-consensus","a8f"),exact:!0},{path:"/cardano-updates/2022-11-16-node-cli-api",component:p("/cardano-updates/2022-11-16-node-cli-api","bbe"),exact:!0},{path:"/cardano-updates/2022-11-16-performance-and-tracing",component:p("/cardano-updates/2022-11-16-performance-and-tracing","5fa"),exact:!0},{path:"/cardano-updates/2022-11-18-hydra",component:p("/cardano-updates/2022-11-18-hydra","c71"),exact:!0},{path:"/cardano-updates/2022-11-18-mithril",component:p("/cardano-updates/2022-11-18-mithril","0a1"),exact:!0},{path:"/cardano-updates/2022-11-23-ledger",component:p("/cardano-updates/2022-11-23-ledger","53d"),exact:!0},{path:"/cardano-updates/2022-11-25-crypto",component:p("/cardano-updates/2022-11-25-crypto","f67"),exact:!0},{path:"/cardano-updates/2022-11-25-hydra",component:p("/cardano-updates/2022-11-25-hydra","839"),exact:!0},{path:"/cardano-updates/2022-11-28-network",component:p("/cardano-updates/2022-11-28-network","e29"),exact:!0},{path:"/cardano-updates/2022-11-30-consensus",component:p("/cardano-updates/2022-11-30-consensus","e7e"),exact:!0},{path:"/cardano-updates/2022-11-30-node-cli-api",component:p("/cardano-updates/2022-11-30-node-cli-api","e8e"),exact:!0},{path:"/cardano-updates/2022-11-30-performance-and-tracing",component:p("/cardano-updates/2022-11-30-performance-and-tracing","8d0"),exact:!0},{path:"/cardano-updates/2022-12-01-db-sync",component:p("/cardano-updates/2022-12-01-db-sync","ae4"),exact:!0},{path:"/cardano-updates/2022-12-01-mithril",component:p("/cardano-updates/2022-12-01-mithril","543"),exact:!0},{path:"/cardano-updates/2022-12-01-system-test",component:p("/cardano-updates/2022-12-01-system-test","706"),exact:!0},{path:"/cardano-updates/2022-12-02-hydra",component:p("/cardano-updates/2022-12-02-hydra","b24"),exact:!0},{path:"/cardano-updates/2022-12-09-crypto",component:p("/cardano-updates/2022-12-09-crypto","531"),exact:!0},{path:"/cardano-updates/2022-12-09-hydra",component:p("/cardano-updates/2022-12-09-hydra","b00"),exact:!0},{path:"/cardano-updates/2022-12-09-ledger",component:p("/cardano-updates/2022-12-09-ledger","d4c"),exact:!0},{path:"/cardano-updates/2022-12-12-network",component:p("/cardano-updates/2022-12-12-network","550"),exact:!0},{path:"/cardano-updates/2022-12-14-consensus",component:p("/cardano-updates/2022-12-14-consensus","70e"),exact:!0},{path:"/cardano-updates/2022-12-14-db-sync",component:p("/cardano-updates/2022-12-14-db-sync","9c9"),exact:!0},{path:"/cardano-updates/2022-12-14-node-cli-api",component:p("/cardano-updates/2022-12-14-node-cli-api","27e"),exact:!0},{path:"/cardano-updates/2022-12-14-performance-and-tracing",component:p("/cardano-updates/2022-12-14-performance-and-tracing","5c7"),exact:!0},{path:"/cardano-updates/2022-12-15-mithril",component:p("/cardano-updates/2022-12-15-mithril","650"),exact:!0},{path:"/cardano-updates/2022-12-16-hydra",component:p("/cardano-updates/2022-12-16-hydra","d53"),exact:!0},{path:"/cardano-updates/2022-12-28-node-cli-api",component:p("/cardano-updates/2022-12-28-node-cli-api","c05"),exact:!0},{path:"/cardano-updates/2023-01-05-ledger",component:p("/cardano-updates/2023-01-05-ledger","beb"),exact:!0},{path:"/cardano-updates/2023-01-06-crypto",component:p("/cardano-updates/2023-01-06-crypto","4d1"),exact:!0},{path:"/cardano-updates/2023-01-11-consensus",component:p("/cardano-updates/2023-01-11-consensus","632"),exact:!0},{path:"/cardano-updates/2023-01-11-performance-and-tracing",component:p("/cardano-updates/2023-01-11-performance-and-tracing","c8e"),exact:!0},{path:"/cardano-updates/2023-01-12-mithril",component:p("/cardano-updates/2023-01-12-mithril","02f"),exact:!0},{path:"/cardano-updates/2023-01-13-hydra",component:p("/cardano-updates/2023-01-13-hydra","ac6"),exact:!0},{path:"/cardano-updates/2023-01-13-release",component:p("/cardano-updates/2023-01-13-release","f71"),exact:!0},{path:"/cardano-updates/2023-01-13-system-test",component:p("/cardano-updates/2023-01-13-system-test","6c4"),exact:!0},{path:"/cardano-updates/2023-01-14-db-sync",component:p("/cardano-updates/2023-01-14-db-sync","07c"),exact:!0},{path:"/cardano-updates/2023-01-19-ledger",component:p("/cardano-updates/2023-01-19-ledger","2b7"),exact:!0},{path:"/cardano-updates/2023-01-20-crypto",component:p("/cardano-updates/2023-01-20-crypto","985"),exact:!0},{path:"/cardano-updates/2023-01-20-hydra",component:p("/cardano-updates/2023-01-20-hydra","aba"),exact:!0},{path:"/cardano-updates/2023-01-20-network",component:p("/cardano-updates/2023-01-20-network","c85"),exact:!0},{path:"/cardano-updates/2023-01-20-sre",component:p("/cardano-updates/2023-01-20-sre","f1a"),exact:!0},{path:"/cardano-updates/2023-01-25-consensus",component:p("/cardano-updates/2023-01-25-consensus","d6b"),exact:!0},{path:"/cardano-updates/2023-01-25-node-cli-api",component:p("/cardano-updates/2023-01-25-node-cli-api","b8a"),exact:!0},{path:"/cardano-updates/2023-01-26-mithril",component:p("/cardano-updates/2023-01-26-mithril","401"),exact:!0},{path:"/cardano-updates/2023-01-27-hydra",component:p("/cardano-updates/2023-01-27-hydra","2f4"),exact:!0},{path:"/cardano-updates/2023-02-02-ledger",component:p("/cardano-updates/2023-02-02-ledger","7d2"),exact:!0},{path:"/cardano-updates/2023-02-03-crypto",component:p("/cardano-updates/2023-02-03-crypto","ad8"),exact:!0},{path:"/cardano-updates/2023-02-03-goedel",component:p("/cardano-updates/2023-02-03-goedel","2d4"),exact:!0},{path:"/cardano-updates/2023-02-03-hydra",component:p("/cardano-updates/2023-02-03-hydra","45c"),exact:!0},{path:"/cardano-updates/2023-02-08-consensus",component:p("/cardano-updates/2023-02-08-consensus","a91"),exact:!0},{path:"/cardano-updates/2023-02-08-node-cli-api",component:p("/cardano-updates/2023-02-08-node-cli-api","c56"),exact:!0},{path:"/cardano-updates/2023-02-08-performance-and-tracing",component:p("/cardano-updates/2023-02-08-performance-and-tracing","888"),exact:!0},{path:"/cardano-updates/2023-02-09-mithril",component:p("/cardano-updates/2023-02-09-mithril","898"),exact:!0},{path:"/cardano-updates/2023-02-10-hydra",component:p("/cardano-updates/2023-02-10-hydra","fd6"),exact:!0},{path:"/cardano-updates/2023-02-17-crypto",component:p("/cardano-updates/2023-02-17-crypto","933"),exact:!0},{path:"/cardano-updates/2023-02-17-goedel",component:p("/cardano-updates/2023-02-17-goedel","855"),exact:!0},{path:"/cardano-updates/2023-02-17-hydra",component:p("/cardano-updates/2023-02-17-hydra","51e"),exact:!0},{path:"/cardano-updates/2023-02-17-ledger",component:p("/cardano-updates/2023-02-17-ledger","a32"),exact:!0},{path:"/cardano-updates/2023-02-17-network",component:p("/cardano-updates/2023-02-17-network","136"),exact:!0},{path:"/cardano-updates/2023-02-21-db-sync",component:p("/cardano-updates/2023-02-21-db-sync","141"),exact:!0},{path:"/cardano-updates/2023-02-22-consensus",component:p("/cardano-updates/2023-02-22-consensus","6a1"),exact:!0},{path:"/cardano-updates/2023-02-23-mithril",component:p("/cardano-updates/2023-02-23-mithril","f96"),exact:!0},{path:"/cardano-updates/2023-02-23-performance-and-tracing",component:p("/cardano-updates/2023-02-23-performance-and-tracing","570"),exact:!0},{path:"/cardano-updates/2023-02-24-hydra",component:p("/cardano-updates/2023-02-24-hydra","120"),exact:!0},{path:"/cardano-updates/2023-03-02-network",component:p("/cardano-updates/2023-03-02-network","2cf"),exact:!0},{path:"/cardano-updates/2023-03-03-crypto",component:p("/cardano-updates/2023-03-03-crypto","afe"),exact:!0},{path:"/cardano-updates/2023-03-03-goedel",component:p("/cardano-updates/2023-03-03-goedel","6d4"),exact:!0},{path:"/cardano-updates/2023-03-03-hydra",component:p("/cardano-updates/2023-03-03-hydra","b66"),exact:!0},{path:"/cardano-updates/2023-03-03-ledger",component:p("/cardano-updates/2023-03-03-ledger","ad5"),exact:!0},{path:"/cardano-updates/2023-03-08-consensus",component:p("/cardano-updates/2023-03-08-consensus","caa"),exact:!0},{path:"/cardano-updates/2023-03-08-performance-and-tracing",component:p("/cardano-updates/2023-03-08-performance-and-tracing","8bb"),exact:!0},{path:"/cardano-updates/2023-03-09-mithril",component:p("/cardano-updates/2023-03-09-mithril","031"),exact:!0},{path:"/cardano-updates/2023-03-10-hydra",component:p("/cardano-updates/2023-03-10-hydra","7d8"),exact:!0},{path:"/cardano-updates/2023-03-16-goedel",component:p("/cardano-updates/2023-03-16-goedel","2c1"),exact:!0},{path:"/cardano-updates/2023-03-17-hydra",component:p("/cardano-updates/2023-03-17-hydra","531"),exact:!0},{path:"/cardano-updates/2023-03-17-ledger",component:p("/cardano-updates/2023-03-17-ledger","b04"),exact:!0},{path:"/cardano-updates/2023-03-21-network",component:p("/cardano-updates/2023-03-21-network","327"),exact:!0},{path:"/cardano-updates/2023-03-22-consensus",component:p("/cardano-updates/2023-03-22-consensus","a73"),exact:!0},{path:"/cardano-updates/2023-03-22-performance-and-tracing",component:p("/cardano-updates/2023-03-22-performance-and-tracing","665"),exact:!0},{path:"/cardano-updates/2023-03-23-db-sync",component:p("/cardano-updates/2023-03-23-db-sync","68e"),exact:!0},{path:"/cardano-updates/2023-03-23-mithril",component:p("/cardano-updates/2023-03-23-mithril","d40"),exact:!0},{path:"/cardano-updates/archive",component:p("/cardano-updates/archive","f69"),exact:!0},{path:"/cardano-updates/markdown-page",component:p("/cardano-updates/markdown-page","52f"),exact:!0},{path:"/cardano-updates/page/10",component:p("/cardano-updates/page/10","bdd"),exact:!0},{path:"/cardano-updates/page/11",component:p("/cardano-updates/page/11","d86"),exact:!0},{path:"/cardano-updates/page/12",component:p("/cardano-updates/page/12","dbc"),exact:!0},{path:"/cardano-updates/page/13",component:p("/cardano-updates/page/13","8ec"),exact:!0},{path:"/cardano-updates/page/14",component:p("/cardano-updates/page/14","d06"),exact:!0},{path:"/cardano-updates/page/15",component:p("/cardano-updates/page/15","505"),exact:!0},{path:"/cardano-updates/page/16",component:p("/cardano-updates/page/16","1e0"),exact:!0},{path:"/cardano-updates/page/17",component:p("/cardano-updates/page/17","98d"),exact:!0},{path:"/cardano-updates/page/18",component:p("/cardano-updates/page/18","ce5"),exact:!0},{path:"/cardano-updates/page/19",component:p("/cardano-updates/page/19","ddd"),exact:!0},{path:"/cardano-updates/page/2",component:p("/cardano-updates/page/2","e5a"),exact:!0},{path:"/cardano-updates/page/20",component:p("/cardano-updates/page/20","eaa"),exact:!0},{path:"/cardano-updates/page/21",component:p("/cardano-updates/page/21","bfa"),exact:!0},{path:"/cardano-updates/page/22",component:p("/cardano-updates/page/22","1dc"),exact:!0},{path:"/cardano-updates/page/23",component:p("/cardano-updates/page/23","e8c"),exact:!0},{path:"/cardano-updates/page/24",component:p("/cardano-updates/page/24","23a"),exact:!0},{path:"/cardano-updates/page/3",component:p("/cardano-updates/page/3","552"),exact:!0},{path:"/cardano-updates/page/4",component:p("/cardano-updates/page/4","baa"),exact:!0},{path:"/cardano-updates/page/5",component:p("/cardano-updates/page/5","b74"),exact:!0},{path:"/cardano-updates/page/6",component:p("/cardano-updates/page/6","7ed"),exact:!0},{path:"/cardano-updates/page/7",component:p("/cardano-updates/page/7","8e7"),exact:!0},{path:"/cardano-updates/page/8",component:p("/cardano-updates/page/8","14e"),exact:!0},{path:"/cardano-updates/page/9",component:p("/cardano-updates/page/9","e6f"),exact:!0},{path:"/cardano-updates/quarterly",component:p("/cardano-updates/quarterly","445"),exact:!0},{path:"/cardano-updates/quarterly/2022-10-07-node-cli-api",component:p("/cardano-updates/quarterly/2022-10-07-node-cli-api","6ba"),exact:!0},{path:"/cardano-updates/quarterly/2022-11-07-ledger",component:p("/cardano-updates/quarterly/2022-11-07-ledger","bf4"),exact:!0},{path:"/cardano-updates/quarterly/2022-11-09-network",component:p("/cardano-updates/quarterly/2022-11-09-network","8a6"),exact:!0},{path:"/cardano-updates/quarterly/2022-11-15-consensus",component:p("/cardano-updates/quarterly/2022-11-15-consensus","3cf"),exact:!0},{path:"/cardano-updates/quarterly/2023-01-13-network",component:p("/cardano-updates/quarterly/2023-01-13-network","608"),exact:!0},{path:"/cardano-updates/quarterly/2023-01-13-open-source",component:p("/cardano-updates/quarterly/2023-01-13-open-source","ac2"),exact:!0},{path:"/cardano-updates/quarterly/2023-01-18-consensus",component:p("/cardano-updates/quarterly/2023-01-18-consensus","401"),exact:!0},{path:"/cardano-updates/quarterly/archive",component:p("/cardano-updates/quarterly/archive","c41"),exact:!0},{path:"/cardano-updates/quarterly/tags",component:p("/cardano-updates/quarterly/tags","d09"),exact:!0},{path:"/cardano-updates/quarterly/tags/cli-api-quarterly",component:p("/cardano-updates/quarterly/tags/cli-api-quarterly","723"),exact:!0},{path:"/cardano-updates/quarterly/tags/consensus",component:p("/cardano-updates/quarterly/tags/consensus","db4"),exact:!0},{path:"/cardano-updates/quarterly/tags/ledger",component:p("/cardano-updates/quarterly/tags/ledger","bda"),exact:!0},{path:"/cardano-updates/quarterly/tags/network",component:p("/cardano-updates/quarterly/tags/network","f9f"),exact:!0},{path:"/cardano-updates/quarterly/tags/open-source",component:p("/cardano-updates/quarterly/tags/open-source","03a"),exact:!0},{path:"/cardano-updates/tags",component:p("/cardano-updates/tags","3c0"),exact:!0},{path:"/cardano-updates/tags/cli-api",component:p("/cardano-updates/tags/cli-api","6b6"),exact:!0},{path:"/cardano-updates/tags/cli-api/page/2",component:p("/cardano-updates/tags/cli-api/page/2","c23"),exact:!0},{path:"/cardano-updates/tags/consensus",component:p("/cardano-updates/tags/consensus","676"),exact:!0},{path:"/cardano-updates/tags/consensus/page/2",component:p("/cardano-updates/tags/consensus/page/2","2e2"),exact:!0},{path:"/cardano-updates/tags/consensus/page/3",component:p("/cardano-updates/tags/consensus/page/3","9bd"),exact:!0},{path:"/cardano-updates/tags/crypto",component:p("/cardano-updates/tags/crypto","198"),exact:!0},{path:"/cardano-updates/tags/crypto/page/2",component:p("/cardano-updates/tags/crypto/page/2","a0b"),exact:!0},{path:"/cardano-updates/tags/db-sync",component:p("/cardano-updates/tags/db-sync","23a"),exact:!0},{path:"/cardano-updates/tags/db-sync/page/2",component:p("/cardano-updates/tags/db-sync/page/2","3fc"),exact:!0},{path:"/cardano-updates/tags/embedding-quality",component:p("/cardano-updates/tags/embedding-quality","49f"),exact:!0},{path:"/cardano-updates/tags/goedel",component:p("/cardano-updates/tags/goedel","acd"),exact:!0},{path:"/cardano-updates/tags/hydra",component:p("/cardano-updates/tags/hydra","1e3"),exact:!0},{path:"/cardano-updates/tags/hydra/page/2",component:p("/cardano-updates/tags/hydra/page/2","dd4"),exact:!0},{path:"/cardano-updates/tags/hydra/page/3",component:p("/cardano-updates/tags/hydra/page/3","b50"),exact:!0},{path:"/cardano-updates/tags/hydra/page/4",component:p("/cardano-updates/tags/hydra/page/4","8d2"),exact:!0},{path:"/cardano-updates/tags/ledger",component:p("/cardano-updates/tags/ledger","15b"),exact:!0},{path:"/cardano-updates/tags/ledger/page/2",component:p("/cardano-updates/tags/ledger/page/2","e8a"),exact:!0},{path:"/cardano-updates/tags/ledger/page/3",component:p("/cardano-updates/tags/ledger/page/3","10d"),exact:!0},{path:"/cardano-updates/tags/mithril",component:p("/cardano-updates/tags/mithril","38d"),exact:!0},{path:"/cardano-updates/tags/mithril/page/2",component:p("/cardano-updates/tags/mithril/page/2","41b"),exact:!0},{path:"/cardano-updates/tags/network",component:p("/cardano-updates/tags/network","372"),exact:!0},{path:"/cardano-updates/tags/network/page/2",component:p("/cardano-updates/tags/network/page/2","dbe"),exact:!0},{path:"/cardano-updates/tags/open-source",component:p("/cardano-updates/tags/open-source","905"),exact:!0},{path:"/cardano-updates/tags/performance-tracing",component:p("/cardano-updates/tags/performance-tracing","a51"),exact:!0},{path:"/cardano-updates/tags/performance-tracing/page/2",component:p("/cardano-updates/tags/performance-tracing/page/2","8a3"),exact:!0},{path:"/cardano-updates/tags/release",component:p("/cardano-updates/tags/release","2e7"),exact:!0},{path:"/cardano-updates/tags/sre",component:p("/cardano-updates/tags/sre","080"),exact:!0},{path:"/cardano-updates/tags/system-test",component:p("/cardano-updates/tags/system-test","0fe"),exact:!0},{path:"/cardano-updates/docs",component:p("/cardano-updates/docs","49f"),routes:[{path:"/cardano-updates/docs/category/tutorial---basics",component:p("/cardano-updates/docs/category/tutorial---basics","14d"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/category/tutorial---extras",component:p("/cardano-updates/docs/category/tutorial---extras","19d"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/intro",component:p("/cardano-updates/docs/intro","433"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/congratulations",component:p("/cardano-updates/docs/tutorial-basics/congratulations","9cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/create-a-blog-post",component:p("/cardano-updates/docs/tutorial-basics/create-a-blog-post","ca9"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/create-a-document",component:p("/cardano-updates/docs/tutorial-basics/create-a-document","5bb"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/create-a-page",component:p("/cardano-updates/docs/tutorial-basics/create-a-page","8d5"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/deploy-your-site",component:p("/cardano-updates/docs/tutorial-basics/deploy-your-site","c68"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-basics/markdown-features",component:p("/cardano-updates/docs/tutorial-basics/markdown-features","319"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-extras/manage-docs-versions",component:p("/cardano-updates/docs/tutorial-extras/manage-docs-versions","9eb"),exact:!0,sidebar:"defaultSidebar"},{path:"/cardano-updates/docs/tutorial-extras/translate-your-site",component:p("/cardano-updates/docs/tutorial-extras/translate-your-site","0ea"),exact:!0,sidebar:"defaultSidebar"}]},{path:"/cardano-updates/",component:p("/cardano-updates/","50f"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>r,t:()=>o});var a=n(67294);const r=a.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{o(!0)}),[]),a.createElement(r.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var a=n(67294),r=n(73935),o=n(73727),i=n(70405),c=n(10412);const l=[n(32497),n(3310),n(18320),n(52295)];var s=n(723),u=n(16550),d=n(18790);function p(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)}var f=n(87462),m=n(35742),g=n(52263),b=n(44996),h=n(86668),y=n(1944),v=n(94711),w=n(19727),k=n(43320),_=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,g.Z)(),n=(0,v.l)();return a.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:r}]=e;return a.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:r})})),a.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.Z)(),r=function(){const{siteConfig:{url:e}}=(0,g.Z)(),{pathname:t}=(0,u.TH)();return e+(0,b.Z)(t)}(),o=t?`${n}${t}`:r;return a.createElement(m.Z,null,a.createElement("meta",{property:"og:url",content:o}),a.createElement("link",{rel:"canonical",href:o}))}function S(){const{i18n:{currentLocale:e}}=(0,g.Z)(),{metadata:t,image:n}=(0,h.L)();return a.createElement(a.Fragment,null,a.createElement(m.Z,null,a.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),a.createElement("body",{className:w.h})),n&&a.createElement(y.d,{image:n}),a.createElement(x,null),a.createElement(E,null),a.createElement(_.Z,{tag:k.HX,locale:e}),a.createElement(m.Z,null,t.map(((e,t)=>a.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(s.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(98934),L=n(58940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a{var a;const r=(null==(a=t.default)?void 0:a[e])??t[e];return null==r?void 0:r(...n)}));return()=>r.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,a.useLayoutEffect)((()=>{r!==n&&(r&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1)),n=document.getElementById(e);null==n||n.scrollIntoView()}else window.scrollTo(0,0)}(n),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(s.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class O extends a.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=c.Z.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return a.createElement(R,{previousLocation:this.previousLocation,location:t},a.createElement(u.AW,{location:t,render:()=>e}))}}const D=O,I="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
    \n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

    Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

    \n

    We suggest trying baseUrl =

    \n
    \n`}(e)).replace(/{window[j]=!1}),[]),a.createElement(a.Fragment,null,!c.Z.canUseDOM&&a.createElement(m.Z,null,a.createElement("script",null,F(e))),a.createElement("div",{id:I}))}function q(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,g.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?a.createElement(B,null):null}function z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,g.Z)(),i=(0,b.Z)(e),{htmlLang:c,direction:l}=o[r];return a.createElement(m.Z,null,a.createElement("html",{lang:c,dir:l}),a.createElement("title",null,t),a.createElement("meta",{property:"og:title",content:t}),a.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&a.createElement("link",{rel:"icon",href:i}))}var U=n(44763);function $(){const e=(0,d.H)(s.Z),t=(0,u.TH)();return a.createElement(U.Z,null,a.createElement(L.M,null,a.createElement(A.t,null,a.createElement(p,null,a.createElement(z,null),a.createElement(S,null),a.createElement(q,null),a.createElement(D,{location:T(t)},e)))))}var H=n(16887);const G=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var a;if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??(null==(a=document.getElementsByName("script")[0])?void 0:a.parentNode);null==o||o.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const a=new XMLHttpRequest;a.open("GET",e,!0),a.withCredentials=!0,a.onload=()=>{200===a.status?t():n()},a.send(null)}))};var Z=n(99670);const V=new Set,W=new Set,Y=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},K={prefetch(e){if(!(e=>!Y()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(s.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!W.has(e))(e)&&(W.add(e),N(e))},Q=Object.freeze(K);if(c.Z.canUseDOM){window.docusaurus=Q;const e=r.hydrate;N(window.location.pathname).then((()=>{e(a.createElement(i.B6,null,a.createElement(o.VK,null,a.createElement($,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var a=n(67294),r=n(36809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/cardano-updates/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/cardano-updates/docs","mainDocId":"intro","docs":[{"id":"intro","path":"/cardano-updates/docs/intro","sidebar":"defaultSidebar"},{"id":"tutorial-basics/congratulations","path":"/cardano-updates/docs/tutorial-basics/congratulations","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-blog-post","path":"/cardano-updates/docs/tutorial-basics/create-a-blog-post","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-document","path":"/cardano-updates/docs/tutorial-basics/create-a-document","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-page","path":"/cardano-updates/docs/tutorial-basics/create-a-page","sidebar":"defaultSidebar"},{"id":"tutorial-basics/deploy-your-site","path":"/cardano-updates/docs/tutorial-basics/deploy-your-site","sidebar":"defaultSidebar"},{"id":"tutorial-basics/markdown-features","path":"/cardano-updates/docs/tutorial-basics/markdown-features","sidebar":"defaultSidebar"},{"id":"tutorial-extras/manage-docs-versions","path":"/cardano-updates/docs/tutorial-extras/manage-docs-versions","sidebar":"defaultSidebar"},{"id":"tutorial-extras/translate-your-site","path":"/cardano-updates/docs/tutorial-extras/translate-your-site","sidebar":"defaultSidebar"},{"id":"/category/tutorial---basics","path":"/cardano-updates/docs/category/tutorial---basics","sidebar":"defaultSidebar"},{"id":"/category/tutorial---extras","path":"/cardano-updates/docs/category/tutorial---extras","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/cardano-updates/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var c=n(57529);const l=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"}}}'),s={siteConfig:r.Z,siteMetadata:l,globalData:o,i18n:i,codeTranslations:c},u=a.createContext(s);function d(e){let{children:t}=e;return a.createElement(u.Provider,{value:s},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var a=n(67294),r=n(10412),o=n(35742),i=n(93285);function c(e){let{error:t,tryAgain:n}=e;return a.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},a.createElement("h1",null,"This page crashed."),a.createElement("p",null,t.message),a.createElement("button",{type:"button",onClick:n},"Try again"))}function l(e){let{error:t,tryAgain:n}=e;return a.createElement(u,{fallback:()=>a.createElement(c,{error:t,tryAgain:n})},a.createElement(o.Z,null,a.createElement("title",null,"Page Error")),a.createElement(i.Z,null,a.createElement(c,{error:t,tryAgain:n})))}const s=e=>a.createElement(l,e);class u extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){r.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??s)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const a="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,r={canUseDOM:a,canUseEventListeners:a&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:a&&"IntersectionObserver"in window,canUseViewport:a&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(67294),r=n(70405);function o(e){return a.createElement(r.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var a=n(87462),r=n(67294),o=n(73727),i=n(18780),c=n(52263),l=n(13919),s=n(10412);const u=r.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n;let{isNavLink:p,to:f,href:m,activeClassName:g,isActive:b,"data-noBrokenLinkCheck":h,autoAddBaseUrl:y=!0,...v}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,c.Z)(),{withBaseUrl:_}=(0,d.C)(),E=(0,r.useContext)(u),x=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>x.current));const S=f||m;const C=(0,l.Z)(S),T=null==S?void 0:S.replace("pathname://","");let A=void 0!==T?(L=T,y&&(e=>e.startsWith("/"))(L)?_(L):L):void 0;var L;A&&C&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:w,baseUrl:k}));const P=(0,r.useRef)(!1),R=p?o.OL:o.rU,N=s.Z.canUseIntersectionObserver,O=(0,r.useRef)(),D=()=>{P.current||null==A||(window.docusaurus.preload(A),P.current=!0)};(0,r.useEffect)((()=>(!N&&C&&null!=A&&window.docusaurus.prefetch(A),()=>{N&&O.current&&O.current.disconnect()})),[O,A,N,C]);const I=(null==(n=A)?void 0:n.startsWith("#"))??!1,M=!A||!C||I;return M||h||E.collectLink(A),M?r.createElement("a",(0,a.Z)({ref:x,href:A},S&&!C&&{target:"_blank",rel:"noopener noreferrer"},v)):r.createElement(R,(0,a.Z)({},v,{onMouseEnter:D,onTouchStart:D,innerRef:e=>{x.current=e,N&&e&&C&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),O.current.observe(e))},to:A},p&&{isActive:b,activeClassName:g}))}const f=r.forwardRef(p)},11875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=()=>null},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>c});var a=n(67294);function r(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,a.isValidElement)(e)))?n.map(((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function c(e,t){let{message:n,id:a}=e;return r(i({message:n,id:a}),t)}function l(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const c=i({message:t,id:n});return a.createElement(a.Fragment,null,r(c,o))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});const a="default"},13919:(e,t,n)=>{"use strict";function a(e){return/^(?:\w*:|\/\/)/.test(e)}function r(e){return void 0!==e&&!a(e)}n.d(t,{Z:()=>r,b:()=>a})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>i});var a=n(52263),r=n(13919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)();return{withBaseUrl:(n,a)=>function(e,t,n,a){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===a?{}:a;if(!n||n.startsWith("#")||(0,r.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const c=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+c:c}(t,e,n,a)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(67294),r=n(58940);function o(){return(0,a.useContext)(r._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(67294),r=n(98934);function o(){return(0,a.useContext)(r._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[r,o]=n;const i=a?`${a}.${r}`:r;var c;"object"==typeof(c=o)&&c&&Object.keys(c).length>0?e(o,i):t[i]=o}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>r,z:()=>o});var a=n(67294);const r=a.createContext(null);function o(e){let{children:t,value:n}=e;const o=a.useContext(r),i=(0,a.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const a={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:a}}({parent:o,value:n})),[o,n]);return a.createElement(r.Provider,{value:i},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,_r:()=>u,Jo:()=>b,zh:()=>d,yW:()=>m,gB:()=>f});var a=n(16550),r=n(52263),o=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const c=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=c(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,a.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),r=null==n?void 0:n.docs.find((e=>!!(0,a.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:r,alternateDocVersions:r?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((a=>{a.id===t&&(n[e.name]=a)}))})),n}(r.id):{}}}const s={},u=()=>i("docusaurus-plugin-content-docs")??s,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const a=i(e),r=null==a?void 0:a[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,a.TH)();return function(e,t,n){void 0===n&&(n={});const r=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,a.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=r?{pluginId:r[0],pluginData:r[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return c(t)}function g(e){const t=d(e),{pathname:n}=(0,a.TH)();return l(t,n)}function b(e){const t=d(e),{pathname:n}=(0,a.TH)();return function(e,t){const n=c(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var a=n(74865),r=n.n(a);r().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{r().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){r().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var a=n(87410),r=n(36809);!function(e){const{themeConfig:{prism:t}}=r.Z,{additionalLanguages:a}=t;globalThis.Prism=e,a.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(a.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(67294);const r="iconExternalLink_nPIU";function o(e){let{width:t=13.5,height:n=13.5}=e;return a.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r},a.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},93285:(e,t,n)=>{"use strict";n.d(t,{Z:()=>dt});var a=n(67294),r=n(86010),o=n(44763),i=n(1944),c=n(87462),l=n(16550),s=n(95999),u=n(85936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,a.useRef)(null),{action:t}=(0,l.k6)(),n=(0,a.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:a}=n;e.current&&!a.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return a.createElement("div",{ref:n,role:"region","aria-label":m},a.createElement("a",(0,c.Z)({},e,{href:`#${d}`,onClick:r}),t))}var b=n(35281),h=n(19727);const y="skipToContent_fXgn";function v(){return a.createElement(g,{className:y})}var w=n(86668),k=n(59689);function _(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return a.createElement("svg",(0,c.Z)({viewBox:"0 0 15 15",width:t,height:n},l),a.createElement("g",{stroke:r,strokeWidth:o},a.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E="closeButton_CVFx";function x(e){return a.createElement("button",(0,c.Z)({type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,r.Z)("clean-btn close",E,e.className)}),a.createElement(_,{width:14,height:14,strokeWidth:3.1}))}const S="content_knG7";function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return a.createElement("div",(0,c.Z)({},e,{className:(0,r.Z)(S,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T="announcementBar_mb4j",A="announcementBarPlaceholder_vyr4",L="announcementBarClose_gvF7",P="announcementBarContent_xLdY";function R(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:i}=e;return a.createElement("div",{className:T,style:{backgroundColor:r,color:o},role:"banner"},i&&a.createElement("div",{className:A}),a.createElement(C,{className:P}),i&&a.createElement(x,{onClick:n,className:L}))}var N=n(72961),O=n(12466);var D=n(902),I=n(13102);const M=a.createContext(null);function j(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,I.HY)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,D.D9)(o);return(0,a.useEffect)((()=>{o&&!i&&r(!0)}),[o,i]),(0,a.useEffect)((()=>{o?e.shown||r(!0):r(!1)}),[e.shown,o]),(0,a.useMemo)((()=>[n,r]),[n])}();return a.createElement(M.Provider,{value:n},t)}function F(e){if(e.component){const t=e.component;return a.createElement(t,e.props)}}function B(){const e=(0,a.useContext)(M);if(!e)throw new D.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,r=(0,a.useCallback)((()=>n(!1)),[n]),o=(0,I.HY)();return(0,a.useMemo)((()=>({shown:t,hide:r,content:F(o)})),[r,o,t])}function q(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=B();return a.createElement("div",{className:"navbar-sidebar"},t,a.createElement("div",{className:(0,r.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},a.createElement("div",{className:"navbar-sidebar__item menu"},n),a.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var z=n(92949),U=n(72389);function $(e){return a.createElement("svg",(0,c.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("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"}))}function H(e){return a.createElement("svg",(0,c.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("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"}))}const G={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,value:n,onChange:o}=e;const i=(0,U.Z)(),c=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return a.createElement("div",{className:(0,r.Z)(G.toggle,t)},a.createElement("button",{className:(0,r.Z)("clean-btn",G.toggleButton,!i&&G.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:c,"aria-label":c,"aria-live":"polite"},a.createElement($,{className:(0,r.Z)(G.toggleIcon,G.lightToggleIcon)}),a.createElement(H,{className:(0,r.Z)(G.toggleIcon,G.darkToggleIcon)})))}const V=a.memo(Z);function W(e){let{className:t}=e;const n=(0,w.L)().colorMode.disableSwitch,{colorMode:r,setColorMode:o}=(0,z.I)();return n?null:a.createElement(V,{className:t,value:r,onChange:o})}var Y=n(21327);function K(){return a.createElement(Y.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,N.e)();return a.createElement("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},a.createElement(_,{color:"var(--ifm-color-emphasis-600)"}))}function X(){return a.createElement("div",{className:"navbar-sidebar__brand"},a.createElement(K,null),a.createElement(W,{className:"margin-right--md"}),a.createElement(Q,null))}var J=n(39960),ee=n(44996),te=n(13919);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ae=n(39471);function re(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:i,html:l,isDropdownLink:s,prependBaseUrlToHref:u,...d}=e;const p=(0,ee.Z)(r),f=(0,ee.Z)(t),m=(0,ee.Z)(o,{forcePrependBaseUrl:!0}),g=i&&o&&!(0,te.Z)(o),b=l?{dangerouslySetInnerHTML:{__html:l}}:{children:a.createElement(a.Fragment,null,i,g&&a.createElement(ae.Z,s&&{width:12,height:12}))};return o?a.createElement(J.Z,(0,c.Z)({href:u?m:o},d,b)):a.createElement(J.Z,(0,c.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ne(n,t.pathname):t.pathname.startsWith(f)},d,b))}function oe(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=a.createElement(re,(0,c.Z)({className:(0,r.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?a.createElement("li",null,i):i}function ie(e){let{className:t,isDropdownItem:n,...o}=e;return a.createElement("li",{className:"menu__list-item"},a.createElement(re,(0,c.Z)({className:(0,r.Z)("menu__link",t)},o)))}function ce(e){let{mobile:t=!1,position:n,...r}=e;const o=t?ie:oe;return a.createElement(o,(0,c.Z)({},r,{activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var le=n(86043),se=n(48596),ue=n(52263);function de(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function pe(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,a.useRef)(null),[u,d]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[s]),a.createElement("div",{ref:s,className:(0,r.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},a.createElement(re,(0,c.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,r.Z)("navbar__link",o)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),l.children??l.label),a.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>a.createElement(Ce,(0,c.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=s.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function fe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,ue.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=de(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,le.u)({initialState:()=>!d});return(0,a.useEffect)((()=>{d&&m(!d)}),[u,d,m]),a.createElement("li",{className:(0,r.Z)("menu__list-item",{"menu__list-item--collapsed":p})},a.createElement(re,(0,c.Z)({role:"button",className:(0,r.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},s,{onClick:e=>{e.preventDefault(),f()}}),s.children??s.label),a.createElement(le.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>a.createElement(Ce,(0,c.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function me(e){let{mobile:t=!1,...n}=e;const r=t?fe:pe;return a.createElement(r,n)}var ge=n(94711);function be(e){let{width:t=20,height:n=20,...r}=e;return a.createElement("svg",(0,c.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},r),a.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";var ye=n(11875);const ve="searchBox_ZlJk";function we(e){let{children:t,className:n}=e;return a.createElement("div",{className:(0,r.Z)(n,ve)},t)}var ke=n(80143),_e=n(52802);var Ee=n(60373);const xe=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ce,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,ue.Z)(),p=(0,ge.l)(),{search:f,hash:m}=(0,l.TH)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return a.createElement(me,(0,c.Z)({},o,{mobile:t,label:a.createElement(a.Fragment,null,a.createElement(be,{className:he}),b),items:g}))},search:function(e){let{mobile:t,className:n}=e;return t?null:a.createElement(we,{className:n},a.createElement(ye.Z,null))},dropdown:me,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const c=i?"li":"div";return a.createElement(c,{className:(0,r.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:i}=(0,ke.Iw)(r),l=(0,_e.vY)(t,r);return null===l?null:a.createElement(ce,(0,c.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.path)===l.path||!(null==i||!i.sidebar)&&i.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:i}=(0,ke.Iw)(r),l=(0,_e.oz)(t,r).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return a.createElement(ce,(0,c.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.sidebar)===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const i=(0,_e.lO)(r)[0],l=t??i.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return a.createElement(ce,(0,c.Z)({},o,{label:l,to:s}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,l.TH)(),f=(0,ke.Iw)(n),m=(0,ke.gB)(n),{savePreferredVersionName:g}=(0,Ee.J)(n),b=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??xe(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>g(e.name)}})),...i],h=(0,_e.lO)(n)[0],y=t&&b.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,v=t&&b.length>1?void 0:xe(h).path;return b.length<=1?a.createElement(ce,(0,c.Z)({},u,{mobile:t,label:y,to:v,isActive:r?()=>!1:void 0})):a.createElement(me,(0,c.Z)({},u,{mobile:t,label:y,to:v,items:b,isActive:r?()=>!1:void 0}))}};function Ce(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Se[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return a.createElement(o,n)}function Te(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return a.createElement("ul",{className:"menu__list"},t.map(((t,n)=>a.createElement(Ce,(0,c.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ae(e){return a.createElement("button",(0,c.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),a.createElement(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Le(){const e=0===(0,w.L)().navbar.items.length,t=B();return a.createElement(a.Fragment,null,!e&&a.createElement(Ae,{onClick:()=>t.hide()}),t.content)}function Pe(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,a.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?a.createElement(q,{header:a.createElement(X,null),primaryMenu:a.createElement(Te,null),secondaryMenu:a.createElement(Le,null)}):null}const Re="navbarHideable_m1mJ",Ne="navbarHidden_jGov";function Oe(e){return a.createElement("div",(0,c.Z)({role:"presentation"},e,{className:(0,r.Z)("navbar-sidebar__backdrop",e.className)}))}function De(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:c,isNavbarVisible:l}=function(e){const[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,O.RF)(((t,a)=>{let{scrollY:i}=t;if(!e)return;if(i=c?n(!1):i+s{if(!e)return;const a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0)return r.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return a.createElement("nav",{ref:c,className:(0,r.Z)("navbar","navbar--fixed-top",n&&[Re,!l&&Ne],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,a.createElement(Oe,{onClick:i.toggle}),a.createElement(Pe,null))}function Ie(e){let{width:t=30,height:n=30,className:r,...o}=e;return a.createElement("svg",(0,c.Z)({className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),a.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Me(){const{toggle:e,shown:t}=(0,N.e)();return a.createElement("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},a.createElement(Ie,null))}const je="colorModeToggle_DEke";function Fe(e){let{items:t}=e;return a.createElement(a.Fragment,null,t.map(((e,t)=>a.createElement(Ce,(0,c.Z)({},e,{key:t})))))}function Be(e){let{left:t,right:n}=e;return a.createElement("div",{className:"navbar__inner"},a.createElement("div",{className:"navbar__items"},t),a.createElement("div",{className:"navbar__items navbar__items--right"},n))}function qe(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return a.createElement(Be,{left:a.createElement(a.Fragment,null,!e.disabled&&a.createElement(Me,null),a.createElement(K,null),a.createElement(Fe,{items:n})),right:a.createElement(a.Fragment,null,a.createElement(Fe,{items:r}),a.createElement(W,{className:je}),!o&&a.createElement(we,null,a.createElement(ye.Z,null)))})}function ze(){return a.createElement(De,null,a.createElement(qe,null))}function Ue(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:i,...l}=t,s=(0,ee.Z)(n),u=(0,ee.Z)(r,{forcePrependBaseUrl:!0});return a.createElement(J.Z,(0,c.Z)({className:"footer__link-item"},r?{href:i?u:r}:{to:s},l),o,r&&!(0,te.Z)(r)&&a.createElement(ae.Z,null))}function $e(e){let{item:t}=e;return t.html?a.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):a.createElement("li",{key:t.href??t.to,className:"footer__item"},a.createElement(Ue,{item:t}))}function He(e){let{column:t}=e;return a.createElement("div",{className:"col footer__col"},a.createElement("div",{className:"footer__title"},t.title),a.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>a.createElement($e,{key:t,item:e})))))}function Ge(e){let{columns:t}=e;return a.createElement("div",{className:"row footer__links"},t.map(((e,t)=>a.createElement(He,{key:t,column:e}))))}function Ze(){return a.createElement("span",{className:"footer__link-separator"},"\xb7")}function Ve(e){let{item:t}=e;return t.html?a.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):a.createElement(Ue,{item:t})}function We(e){let{links:t}=e;return a.createElement("div",{className:"footer__links text--center"},a.createElement("div",{className:"footer__links"},t.map(((e,n)=>a.createElement(a.Fragment,{key:n},a.createElement(Ve,{item:e}),t.length!==n+1&&a.createElement(Ze,null))))))}function Ye(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?a.createElement(Ge,{columns:t}):a.createElement(We,{links:t})}var Ke=n(50941);const Qe="footerLogoLink_BH7S";function Xe(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ee.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return a.createElement(Ke.Z,{className:(0,r.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Je(e){let{logo:t}=e;return t.href?a.createElement(J.Z,{href:t.href,className:Qe,target:t.target},a.createElement(Xe,{logo:t})):a.createElement(Xe,{logo:t})}function et(e){let{copyright:t}=e;return a.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function tt(e){let{style:t,links:n,logo:o,copyright:i}=e;return a.createElement("footer",{className:(0,r.Z)("footer",{"footer--dark":"dark"===t})},a.createElement("div",{className:"container container-fluid"},n,(o||i)&&a.createElement("div",{className:"footer__bottom text--center"},o&&a.createElement("div",{className:"margin-bottom--sm"},o),i)))}function nt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return a.createElement(tt,{style:o,links:n&&n.length>0&&a.createElement(Ye,{links:n}),logo:r&&a.createElement(Je,{logo:r}),copyright:t&&a.createElement(et,{copyright:t})})}const at=a.memo(nt);var rt=n(50012);const ot="docusaurus.tab.",it=a.createContext(void 0);const ct=(0,D.Qc)([z.S,k.pl,function(e){let{children:t}=e;const n=function(){const[e,t]=(0,a.useState)({}),n=(0,a.useCallback)(((e,t)=>{(0,rt.W)(`docusaurus.tab.${e}`).set(t)}),[]);(0,a.useEffect)((()=>{try{const e={};(0,rt._)().forEach((t=>{if(t.startsWith(ot)){const n=t.substring(ot.length);e[n]=(0,rt.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const r=(0,a.useCallback)(((e,a)=>{t((t=>({...t,[e]:a}))),n(e,a)}),[n]);return(0,a.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:r})),[e,r])}();return a.createElement(it.Provider,{value:n},t)},O.OC,Ee.L5,i.VC,function(e){let{children:t}=e;return a.createElement(I.n2,null,a.createElement(N.M,null,a.createElement(j,null,t)))}]);function lt(e){let{children:t}=e;return a.createElement(ct,null,t)}function st(e){let{error:t,tryAgain:n}=e;return a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),a.createElement("p",null,t.message),a.createElement("div",null,a.createElement("button",{type:"button",onClick:n},a.createElement(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const ut="mainWrapper_z2l0";function dt(e){const{children:t,noFooter:n,wrapperClassName:c,title:l,description:s}=e;return(0,h.t)(),a.createElement(lt,null,a.createElement(i.d,{title:l,description:s}),a.createElement(v,null),a.createElement(R,null),a.createElement(ze,null),a.createElement("div",{id:d,className:(0,r.Z)(b.k.wrapper.main,ut,c)},a.createElement(o.Z,{fallback:e=>a.createElement(st,e)},t)),!n&&a.createElement(at,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(87462),r=n(67294),o=n(39960),i=n(44996),c=n(52263),l=n(86668),s=n(50941);function u(e){let{logo:t,alt:n,imageClassName:a}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},c=r.createElement(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return a?r.createElement("div",{className:a},c):c}function d(e){const{siteConfig:{title:t}}=(0,c.Z)(),{navbar:{title:n,logo:s}}=(0,l.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)((null==s?void 0:s.href)||"/"),g=n?"":t,b=(null==s?void 0:s.alt)??g;return r.createElement(o.Z,(0,a.Z)({to:m},f,(null==s?void 0:s.target)&&{target:s.target}),s&&r.createElement(u,{logo:s,alt:b,imageClassName:d}),null!=n&&r.createElement("b",{className:p},n))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(67294),r=n(35742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return a.createElement(r.Z,null,t&&a.createElement("meta",{name:"docusaurus_locale",content:t}),n&&a.createElement("meta",{name:"docusaurus_version",content:n}),o&&a.createElement("meta",{name:"docusaurus_tag",content:o}),i&&a.createElement("meta",{name:"docsearch:language",content:i}),n&&a.createElement("meta",{name:"docsearch:version",content:n}),o&&a.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(87462),r=n(67294),o=n(86010),i=n(72389),c=n(92949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function s(e){const t=(0,i.Z)(),{colorMode:n}=(0,c.I)(),{sources:s,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return r.createElement(r.Fragment,null,f.map((e=>r.createElement("img",(0,a.Z)({key:e,src:s[e],alt:d,className:(0,o.Z)(l.themedImage,l[`themedImage--${e}`],u)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>m});var a=n(87462),r=n(67294),o=n(10412);function i(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},l={display:"block",overflow:"visible",height:"auto"};function s(e,t){const n=t?c:l;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function u(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=(null==a?void 0:a.duration)??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${(null==a?void 0:a.easing)??"ease-in-out"}`,height:`${t}px`}}function i(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return s(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function d(e){if(!o.Z.canUseDOM)return e?c:l}function p(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:c,disableSSRStyle:l}=e;const p=(0,r.useRef)(null);return u({collapsibleRef:p,collapsed:n,animation:o}),r.createElement(t,{ref:p,style:l?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(s(p.current,n),null==i||i(n))},className:c},a)}function f(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[c,l]=(0,r.useState)(t);return(0,r.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,r.useLayoutEffect)((()=>{o&&l(t)}),[o,t]),o?r.createElement(p,(0,a.Z)({},n,{collapsed:c})):null}function m(e){let{lazy:t,...n}=e;const a=t?f:p;return r.createElement(a,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var a=n(67294),r=n(72389),o=n(50012),i=n(902),c=n(86668);const l=(0,o.W)("docusaurus.announcement.dismiss"),s=(0,o.W)("docusaurus.announcement.id"),u=()=>"true"===l.get(),d=e=>l.set(String(e)),p=a.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,c.L)(),t=(0,r.Z)(),[n,o]=(0,a.useState)((()=>!!t&&u()));(0,a.useEffect)((()=>{o(u())}),[]);const i=(0,a.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,a.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=s.get();"annoucement-bar"===n&&(n="announcement-bar");const a=t!==n;s.set(t),a&&d(!1),!a&&u()||o(!1)}),[e]),(0,a.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return a.createElement(p.Provider,{value:n},t)}function m(){const e=(0,a.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>g});var a=n(67294),r=n(10412),o=n(902),i=n(50012),c=n(86668);const l=a.createContext(void 0),s="theme",u=(0,i.W)(s),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,c.L)(),[o,i]=(0,a.useState)((e=>r.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,a.useEffect)((()=>{t&&u.del()}),[t]);const l=(0,a.useCallback)((function(t,a){void 0===a&&(a={});const{persist:r=!0}=a;t?(i(t),r&&(e=>{u.set(f(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),u.del())}),[n,e]);(0,a.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,a.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==s)return;const t=u.get();null!==t&&l(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,l]);const m=(0,a.useRef)(!1);return(0,a.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:l(null)};return e.addListener(a),()=>e.removeListener(a)}),[l,t,n]),(0,a.useMemo)((()=>({colorMode:o,setColorMode:l,get isDarkTheme(){return o===p},setLightTheme(){l(d)},setDarkTheme(){l(p)}})),[o,l])}function g(e){let{children:t}=e;const n=m();return a.createElement(l.Provider,{value:n},t)}function b(){const e=(0,a.useContext)(l);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>h});var a=n(67294),r=n(80143),o=n(29935),i=n(86668),c=n(52802),l=n(902),s=n(50012);const u=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,s.W)(u(e),{persistence:t}).set(n)},p=(e,t)=>(0,s.W)(u(e),{persistence:t}).get(),f=(e,t)=>{(0,s.W)(u(e),{persistence:t}).del()};const m=a.createContext(null);function g(){const e=(0,r._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,a.useMemo)((()=>Object.keys(e)),[e]),[o,c]=(0,a.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,a.useEffect)((()=>{c(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:a}=e;function r(e){const t=p(e,n);return a[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,r(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,a.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),c((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function b(e){let{children:t}=e;const n=g();return a.createElement(m.Provider,{value:n},t)}function h(e){let{children:t}=e;return c.cE?a.createElement(b,null,t):a.createElement(a.Fragment,null,t)}function y(){const e=(0,a.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,r.zh)(e),[n,i]=y(),{preferredVersionName:c}=n[e];return{preferredVersion:t.versions.find((e=>e.name===c))??null,savePreferredVersionName:(0,a.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>c});var a=n(67294),r=n(902);const o=Symbol("EmptyContext"),i=a.createContext(o);function c(e){let{children:t,name:n,items:r}=e;const o=(0,a.useMemo)((()=>n&&r?{name:n,items:r}:null),[n,r]);return a.createElement(i.Provider,{value:o},t)}function l(){const e=(0,a.useContext)(i);if(e===o)throw new r.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,q:()=>i});var a=n(67294),r=n(902);const o=a.createContext(null);function i(e){let{children:t,version:n}=e;return a.createElement(o.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocsVersionProvider");return e}},72961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var a=n(67294),r=n(13102),o=n(87524),i=n(16550),c=n(902);function l(e){!function(e){const t=(0,i.k6)(),n=(0,c.zX)(e);(0,a.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var s=n(86668);const u=a.createContext(void 0);function d(){const e=function(){const e=(0,r.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,c]=(0,a.useState)(!1);l((()=>{if(i)return c(!1),!1}));const u=(0,a.useCallback)((()=>{c((e=>!e))}),[]);return(0,a.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,a.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=d();return a.createElement(u.Provider,{value:n},t)}function f(){const e=a.useContext(u);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>c,Zo:()=>l,n2:()=>i});var a=n(67294),r=n(902);const o=a.createContext(null);function i(e){let{children:t}=e;const n=(0,a.useState)({component:null,props:null});return a.createElement(o.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(o);if(!e)throw new r.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const i=(0,a.useContext)(o);if(!i)throw new r.i6("NavbarSecondaryMenuContentProvider");const[,c]=i,l=(0,r.Ql)(n);return(0,a.useEffect)((()=>{c({component:t,props:l})}),[c,t,l]),(0,a.useEffect)((()=>()=>c({component:null,props:null})),[c]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>r,t:()=>o});var a=n(67294);const r="navigation-with-keyboard";function o(){(0,a.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(r),"mousedown"===e.type&&document.body.classList.remove(r)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(r),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var a=n(67294),r=n(10412);const o="desktop",i="mobile",c="ssr";function l(){return r.Z.canUseDOM?window.innerWidth>996?o:i:c}function s(){const[e,t]=(0,a.useState)((()=>l()));return(0,a.useEffect)((()=>{function e(){t(l())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>a});const a={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},52802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>x,Wl:()=>m,_F:()=>h,cE:()=>p,jA:()=>g,xz:()=>f,hI:()=>E,lO:()=>w,vY:()=>_,oz:()=>k,s1:()=>v});var a=n(67294),r=n(16550),o=n(18790),i=n(80143),c=n(60373),l=n(74477),s=n(1116);function u(e){return Array.from(new Set(e))}var d=n(48596);const p=!!i._r;function f(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,r.TH)(),t=(0,s.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const b=(e,t)=>void 0!==e&&(0,d.Mg)(e,t);function h(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||((e,t)=>e.some((e=>h(e,t))))(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:a=!1}=e;const r=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return a&&"category"!==o.type||r.unshift(o),!0}return!1}(t),r}function v(){var e;const t=(0,s.V)(),{pathname:n}=(0,r.TH)();return!1!==(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)&&t?y({sidebarItems:t.items,pathname:n}):null}function w(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,c.J)(e),r=(0,i.yW)(e);return(0,a.useMemo)((()=>u([t,n,r].filter(Boolean))),[t,n,r])}function k(e,t){const n=w(t);return(0,a.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),a=t.find((t=>t[0]===e));if(!a)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return a[1]}),[e,n])}function _(e,t){const n=w(t);return(0,a.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),a=t.find((t=>t.id===e));if(!a){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return a}),[e,n])}function E(e){let{route:t,versionMetadata:n}=e;const a=(0,r.TH)(),i=t.routes,c=i.find((e=>(0,r.LX)(a.pathname,e)));if(!c)return null;const l=c.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.H)(i),sidebarName:l,sidebarItems:s}}function x(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var a=n(67294),r=n(86010),o=n(35742),i=n(30226);function c(){const e=a.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(44996),s=n(52263);function u(e){let{title:t,description:n,keywords:r,image:i,children:c}=e;const u=function(e){const{siteConfig:t}=(0,s.Z)(),{title:n,titleDelimiter:a}=t;return null!=e&&e.trim().length?`${e.trim()} ${a} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),p=i?d(i,{absolute:!0}):void 0;return a.createElement(o.Z,null,t&&a.createElement("title",null,u),t&&a.createElement("meta",{property:"og:title",content:u}),n&&a.createElement("meta",{name:"description",content:n}),n&&a.createElement("meta",{property:"og:description",content:n}),r&&a.createElement("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&a.createElement("meta",{property:"og:image",content:p}),p&&a.createElement("meta",{name:"twitter:image",content:p}),c)}const d=a.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=a.useContext(d),c=(0,r.Z)(i,t);return a.createElement(d.Provider,{value:c},a.createElement(o.Z,null,a.createElement("html",{className:c})),n)}function f(e){let{children:t}=e;const n=c(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return a.createElement(p,{className:(0,r.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>s,Ql:()=>l,i6:()=>c,zX:()=>o});var a=n(67294);const r=n(10412).Z.canUseDOM?a.useLayoutEffect:a.useEffect;function o(e){const t=(0,a.useRef)(e);return r((()=>{t.current=e}),[e]),(0,a.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,a.useRef)();return r((()=>{t.current=e})),t.current}class c extends Error{constructor(e,t){var n,a,r;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(a=n.split("\n")[1])||null==(r=a.match(/at (?:\w+\.)?(?\w+)/))?void 0:r.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,a.useMemo)((()=>e),t.flat())}function s(e){return t=>{let{children:n}=t;return a.createElement(a.Fragment,null,e.reduceRight(((e,t)=>a.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>c});var a=n(67294),r=n(723),o=n(52263);function i(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function c(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,a.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function a(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(a)||e(t.filter(r).flatMap((e=>e.routes??[])))}(n)}({routes:r.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>l,RF:()=>d});var a=n(67294),r=n(10412),o=n(72389),i=n(902);const c=a.createContext(void 0);function l(e){let{children:t}=e;const n=function(){const e=(0,a.useRef)(!0);return(0,a.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return a.createElement(c.Provider,{value:n},t)}function s(){const e=(0,a.useContext)(c);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>r.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=s(),r=(0,a.useRef)(u()),o=(0,i.zX)(e);(0,a.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,a.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function a(){const r=document.documentElement.scrollTop;(n&&r>e||!n&&rt&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>a,os:()=>r});n(52263);const a="default";function r(e,t){return`docs-${e}-${t}`}},50012:(e,t,n)=>{"use strict";n.d(t,{W:()=>c,_:()=>l});const a="localStorage";function r(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),o=!0),null}var t}let o=!1;const i={get:()=>null,set:()=>{},del:()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=r(null==t?void 0:t.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(a){console.error(`Docusaurus storage error, can't set ${e}=${t}`,a)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function l(e){void 0===e&&(e=a);const t=r(e);if(!t)return[];const n=[];for(let a=0;a{"use strict";n.d(t,{l:()=>o});var a=n(52263),r=n(16550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,a.Z)(),{pathname:i}=(0,r.TH)(),c=o===n?e:e.replace(`/${o}/`,"/"),l=i.replace(e,"");return{createUrl:function(e){let{locale:a,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===n?`${c}`:`${c}${e}/`}(a)}${l}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var a=n(67294),r=n(16550),o=n(902);function i(e){const t=(0,r.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,a.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>r});var a=n(52263);function r(){return(0,a.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:a}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[r]=e.split(/[#?]/),o="/"===r||r===a?r:(i=r,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(r,o)}},18780:function(e,t,n){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var r=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return a(r).default}})},86010:(e,t,n)=>{"use strict";function a(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;tr});const r=function(){for(var e,t,n=0,r="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var a=n(87462);function r(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,a=n+1,r=e.length;a=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!s)for(;d--;d)i.unshift("..");!s||""===i[0]||i[0]&&r(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var c=n(38776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function s(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,a=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),a&&"#"!==a&&(r+="#"===a.charAt(0)?a:"#"+a),r}function f(e,t,n,r){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",a="",r=t.indexOf("#");-1!==r&&(a=t.substr(r),t=t.substr(0,r));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===a?"":a}}(e),o.state=t):(void 0===(o=(0,a.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(c){throw c instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):c}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,a,r){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof a?a(o,r):r(!0):r(!1!==o)}else r(!0)},appendListener:function(e){var n=!0;function a(){n&&e.apply(void 0,arguments)}return t.push(a),function(){n=!1,t=t.filter((function(e){return e!==a}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),a=0;at?n.splice(t,n.length-t,r):n.push(r),d({action:a,location:r,index:t,entries:n})}}))},replace:function(e,t){var a="REPLACE",r=f(e,t,g(),w.location);u.confirmTransitionTo(r,a,n,(function(e){e&&(w.entries[w.index]=r,d({action:a,location:r}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var a=n(59864),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function l(e){return a.isMemo(e)?i:c[e.$$typeof]||r}c[a.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[a.Memo]=i;var s=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,a){if("string"!=typeof n){if(m){var r=f(n);r&&r!==m&&e(t,r,a)}var i=u(n);d&&(i=i.concat(d(n)));for(var c=l(t),g=l(n),b=0;b{"use strict";e.exports=function(e,t,n,a,r,o,i,c){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,a,r,o,i,c],u=0;(l=new Error(t.replace(/%s/g,(function(){return s[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var a,r;a=function(){var e,t,n={version:"0.2.0"},a=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
    '};function r(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var r;return(r="translate3d"===a.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,r}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,a.minimum,1),n.status=1===e?null:e;var o=n.render(!t),s=o.querySelector(a.barSelector),u=a.speed,d=a.easing;return o.offsetWidth,c((function(t){""===a.positionUsing&&(a.positionUsing=n.getPositioningCSS()),l(s,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),a.trickleSpeed)};return a.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*a.trickleRate)},e=0,t=0,n.promise=function(a){return a&&"resolved"!==a.state()?(0===t&&n.start(),e++,t++,a.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var r,i=t.querySelector(a.barSelector),c=e?"-100":o(n.status||0),s=document.querySelector(a.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),a.showSpinner||(r=t.querySelector(a.spinnerSelector))&&f(r),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var c=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function a(t){var n=document.body.style;if(t in n)return t;for(var a,r=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((a=e[r]+o)in n)return a;return t}function r(e){return e=n(e),t[e]||(t[e]=a(e))}function o(e,t,n){t=r(t),e.style[t]=n}return function(e,t){var n,a,r=arguments;if(2==r.length)for(n in t)void 0!==(a=t[n])&&t.hasOwnProperty(n)&&o(e,n,a);else o(e,r[1],r[2])}}();function s(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),a=n+t;s(n,t)||(e.className=a.substring(1))}function d(e,t){var n,a=p(e);s(e,t)&&(n=a.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(r="function"==typeof a?a.call(t,n,t,e):a)||(e.exports=r)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function r(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach((function(e){a[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(r){return!1}}()?Object.assign:function(e,o){for(var i,c,l=r(e),s=1;s{"use strict";n.d(t,{Z:()=>o});var a=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},a={util:{encode:function e(t){return t instanceof r?new r(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);E+=_.value.length,_=_.next){var x=_.value;if(t.length>e.length)return;if(!(x instanceof r)){var S,C=1;if(y){if(!(S=o(k,E,e,h))||S.index>=e.length)break;var T=S.index,A=S.index+S[0].length,L=E;for(L+=_.value.length;T>=L;)L+=(_=_.next).value.length;if(E=L-=_.value.length,_.value instanceof r)continue;for(var P=_;P!==t.tail&&(Ld.reach&&(d.reach=D);var I=_.prev;if(N&&(I=l(t,I,N),E+=N.length),s(t,I,C),_=l(t,I,new r(p,b?a.tokenize(R,b):R,v,R)),O&&l(t,_,O),C>1){var M={cause:p+","+m,reach:D};i(e,t,n,_.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var a=t.next,r={value:n,prev:t,next:a};return t.next=r,a.prev=r,e.length++,r}function s(e,t,n){for(var a=t.next,r=0;r"+o.content+""},a}(),r=a;a.default=a,r.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var a={"included-cdata":{pattern://i,inside:n}};a["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:a},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=a.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},r.languages.c.string],char:r.languages.c.char,comment:r.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:r.languages.c}}}}),r.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete r.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var a={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:a,number:r,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:a,number:r})}(r),r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(r),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,a="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",r=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return a})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return a}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return a})).replace(/<>/g,(function(){return"(?:"+r+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var a=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,r=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return a})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+r+o+"(?:"+r+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+r+o+")(?:"+r+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(a),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+r+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+r+"$"),inside:{"table-header":{pattern:RegExp(a),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,a=t.length;n",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:r.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var c=p(/^\{$/,/^\}$/);if(-1===c)continue;for(var l=n;l=0&&f(s,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,a=t.inside.interpolation,r=a.inside["interpolation-punctuation"],o=a.pattern.source;function i(t,a){if(e.languages[t])return{pattern:RegExp("((?:"+a+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function c(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,a){var r={code:t,grammar:n,language:a};return e.hooks.run("before-tokenize",r),r.tokens=e.tokenize(r.code,r.grammar),e.hooks.run("after-tokenize",r),r.tokens}function s(t){var n={};n["interpolation-punctuation"]=r;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,a.alias,t)}function u(t,n,a){var r=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=l(r.map((function(e){if("string"==typeof e)return e;for(var n,r=e.content;-1!==t.indexOf(n=c(i++,a)););return u[n]=r,n})).join(""),n,a),p=Object.keys(u);return i=0,function e(t){for(var n=0;n=p.length)return;var a=t[n];if("string"==typeof a||"string"==typeof a.content){var r=p[i],o="string"==typeof a?a:a.content,c=o.indexOf(r);if(-1!==c){++i;var l=o.substring(0,c),d=s(u[r]),f=o.substring(c+r.length),m=[];if(l&&m.push(l),m.push(d),f){var g=[f];e(g),m.push.apply(m,g)}"string"==typeof a?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):a.content=m}}else{var b=a.content;Array.isArray(b)?e(b):e([b])}}}(d),new e.Token(a,d,"language-"+a,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var a=0,r=n.length;a]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],a=0;a*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return a})).replace(//g,(function(){return r})),RegExp(e,t)}r=o(r).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},c=function(t){for(var n=[],a=0;a0&&n[n.length-1].tagName===i(r.content[0].content[1])&&n.pop():"/>"===r.content[r.content.length-1].content||n.push({tagName:i(r.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===r.type&&"{"===r.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===r.type&&"}"===r.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof r)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(r);a0&&("string"==typeof t[a-1]||"plain-text"===t[a-1].type)&&(l=i(t[a-1])+l,t.splice(a-1,1),a--),t[a]=new e.Token("plain-text",l,null,l)}r.content&&"string"!=typeof r.content&&c(r.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||c(e.tokens)}))}(r),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var a=t[n],r=[];/^\w+$/.test(n)||r.push(/\w+/.exec(n)[0]),"diff"===n&&r.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+a+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:r,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(r),r.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},r.languages.go=r.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,a,r,o){if(n.language===a){var i=n.tokenStack=[];n.code=n.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,c=i.length;-1!==n.code.indexOf(r=t(a,c));)++c;return i[c]=e,r})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,a){if(n.language===a&&n.tokenStack){n.grammar=e.languages[a];var r=0,o=Object.keys(n.tokenStack);!function i(c){for(var l=0;l=o.length);l++){var s=c[l];if("string"==typeof s||s.content&&"string"==typeof s.content){var u=o[r],d=n.tokenStack[u],p="string"==typeof s?s:s.content,f=t(a,u),m=p.indexOf(f);if(m>-1){++r;var g=p.substring(0,m),b=new e.Token(a,e.tokenize(d,n.grammar),"language-"+a,d),h=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(b),h&&y.push.apply(y,i([h])),"string"==typeof s?c.splice.apply(c,[l,1].concat(y)):s.content=y}}else s.content&&i(s.content)}return c}(n.tokens)}}}})}(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(r),r.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},r.languages.objectivec=r.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},r.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),r.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete r.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(r),r.languages.scss=r.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),r.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),r.languages.scss.atrule.inside.rest=r.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},a={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};a.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:a}},a.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:a}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:a}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:a}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:a}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:a.interpolation}},rest:a}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:a.interpolation,comment:a.comment,punctuation:/[{},]/}},func:a.func,string:a.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:a.interpolation,punctuation:/[{}()\[\];:.]/}}(r),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(r),r.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=r},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const a=n(29901),r=n(39642),o=new Set;function i(e){void 0===e?e=Object.keys(a.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];r(a,e,t).load((e=>{if(!(e in a.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var a={"./":2885};function r(e){var t=o(e);return n(t)}function o(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=o,e.exports=r,r.id=6726},16500:(e,t,n)=>{var a={"./":2885};function r(e){var t=o(e);return n(t)}function o(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=o,e.exports=r,r.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,a=e.length;n "));var c={},l=e[a];if(l){function s(t){if(!(t in e))throw new Error(a+" depends on an unknown component "+t);if(!(t in c))for(var i in r(t,o),c[t]=!0,n[t])c[i]=!0}t(l.require,s),t(l.optional,s),t(l.modify,s)}n[a]=c,o.pop()}}return function(e){var t=n[e];return t||(r(e,a),t=n[e]),t}}function r(e){for(var t in e)return!0;return!1}return function(o,i,c){var l=function(e){var t={};for(var n in e){var a=e[n];for(var r in a)if("meta"!=r){var o=a[r];t[r]="string"==typeof o?{title:o}:o}}return t}(o),s=function(e){var n;return function(a){if(a in e)return a;if(!n)for(var r in n={},e){var o=e[r];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+r+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+r+" because it is a component.");n[t]=r}))}return n[a]||a}}(l);i=i.map(s),c=(c||[]).map(s);var u=n(i),d=n(c);i.forEach((function e(n){var a=l[n];t(a&&a.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=a(l),m=u;r(m);){for(var g in p={},m){var b=l[g];t(b&&b.modify,(function(e){e in d&&(p[e]=!0)}))}for(var h in d)if(!(h in u))for(var y in f(h))if(y in u){p[h]=!0;break}for(var v in m=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,a,r){var o=r?r.series:void 0,i=r?r.parallel:e,c={},l={};function s(e){if(e in c)return c[e];l[e]=!0;var r,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)r=a(e);else{var p=i(u.map((function(e){var t=s(e);return delete l[e],t})));o?r=o(p,(function(){return a(e)})):a(e)}return c[e]=r}for(var u in n)s(u);var d=[];for(var p in l)d.push(c[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var a=n(50414);function r(){}function o(){}o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,i){if(i!==a){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var a=n(67294),r=n(27418),o=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
    + + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 4d7e64f6ee..0ca5eabeec 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -12,13 +12,13 @@ - - + +

    Markdown page example

    You don't need React to write simple standalone pages.

    - - + + \ No newline at end of file diff --git a/page/10/index.html b/page/10/index.html index e5cebb1e25..3e579ec1d5 100644 --- a/page/10/index.html +++ b/page/10/index.html @@ -12,12 +12,36 @@ - - + +
    -

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP #1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 @@ -40,8 +64,8 @@ This work will not be released in a node version, but will be continued by the current dependency bump in progress.

      We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

      The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

      Completed

      In Progress

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === to - === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    - - + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests
    + + \ No newline at end of file diff --git a/page/11/index.html b/page/11/index.html index 7e23ed3e81..acc71c0ba7 100644 --- a/page/11/index.html +++ b/page/11/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and discussing with the Ledger team the changes that might be required for the next iterations. The pull request that adds the Conway era is waiting for a second @@ -95,8 +95,8 @@ This meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones, reducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to fourmolu. -The reason was to be able to finally have more diff friendly code!

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +The reason was to be able to finally have more diff friendly code!
    + + \ No newline at end of file diff --git a/page/12/index.html b/page/12/index.html index 56b9e0cbe0..9af79f0f4f 100644 --- a/page/12/index.html +++ b/page/12/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the backing store and Mempool on the UTxO-HD branch with important discoveries regarding parallel QSM testing. We also worked with the Ledger team to envisage the modifications that are required in Ledger and Consensus to accommodate the @@ -67,8 +67,8 @@ fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but they also included changes from the first block of the epoch.

  • Deposits Event fix #3212. This pr adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the -number of queries that db-sync does during syncing an make syncing faster.
  • · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +number of queries that db-sync does during syncing an make syncing faster.
    + + \ No newline at end of file diff --git a/page/13/index.html b/page/13/index.html index fbb0f321b9..de9144d0f0 100644 --- a/page/13/index.html +++ b/page/13/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) @@ -25,43 +25,8 @@ OPODIS 2022. We also worked on preparations to publish io-sim and related packages on Hackage (PR #57, PR #60).

      We also started reviewing:

      • ouroboros-network
      • cardano-node
      • cardano-ledger repositories for open-source readiness (PR #4128).

      We prepared a PR which changes how node-to-node and node-to-client protocol -versiones are serialised in cardano-node log (PR #4691).

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly -cardano-ledger-api package! -A GitHub project -will be filled out in the days ahead, -people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using -architectural decision records -to leave a record of important decisions that the team makes. -We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. -We are prioritizing correctness with our first pull request, and will follow up with -performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. -See CPS-0002 -for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it -out and adding much needed documentation. -They have also added doctests! -In the days to come, the Plutus tools team will map out a lot more work for the API and record -it in this -GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made -in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 -for background. -We now have the logic in place to track individual deposits, and a host of property tests -to make sure that the logic is correct. -The current implementation uses more memory than it needs to, and we will address that next, -with our hope being to only use one word (8 bytes) per registered stake credential. -There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use -(there are something like eleven on mainnet), are being deprecated starting at Cardano major -version 9. -CPS-0002 gives the context. -We are disabling them by first preventing transaction outputs containing them -from being serialized by the node at the moment we switch to version 9. -At the hard fork after that, we will translate the existing few pointer addresses -to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never -be exercised. After we have passed the given hardfork, we are able to clean up the code -and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing -a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to -dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the -ledger state to the Plutus script context.
    - - +versiones are serialised in cardano-node log (PR #4691).

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    + + \ No newline at end of file diff --git a/page/14/index.html b/page/14/index.html index e3aed3e89c..48121fceb8 100644 --- a/page/14/index.html +++ b/page/14/index.html @@ -12,12 +12,47 @@ - - + +
    -

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress after last week's summit. They have extended their model-based testing (MBT) approach with transaction creation & observation #410, solved @@ -37,38 +72,8 @@ release and development process, so that it takes into account migrations release process

  • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for docker.

  • · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single -Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic -cursor API that was needed to implement LMDB range reads, which is in turn -required for the implementation of the UTxO HD feature. We added tables to -several tests in for the UTxO HD feature, which increases our confidence in the -correctness of the prototype. The mempool property tests are close to being -completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with -CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a -high-level overview of consensus to the top level documentation of -ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was -needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on -bridging the gap between the lmdb-simple interface and consensus by facilitating -using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep -(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch -(#4184). Every test that used to run with SimpleBlocks now uses -tables. This will enable us to exercise the UTxO HD mempool integration by -leveraging the existing mempool property-tests. The new state-machine -property-tests are still needed for testing the parallel behaviour of the -mempool.

    Our work on the mempool state-machine tests revealed the need for improvements -in the quickcheck-state-machine library. Parallel testing assumed that the -state machine did not have access to mutable references. However, the mempool -tests require the use of such mutable references for mocking the ledger -interface. As a result, our parallel tests were failing with rather obscure -messages. @Jasagredo submitted a pull request (#12) that allows for -new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code -and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact -KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We -are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting -(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level -documentation of -ouroboros-network (#4197). This overview describes the consensus components and adds a -hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    - - +Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
    + + \ No newline at end of file diff --git a/page/15/index.html b/page/15/index.html index 6258825503..820132ae5c 100644 --- a/page/15/index.html +++ b/page/15/index.html @@ -12,12 +12,42 @@ - - + +
    -

    · 2 min read
    Jordan Millar

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

    Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    · 2 min read
    Jordan Millar

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with Robust Optimised Peer Selection also more commonly known as P2P. In the @@ -59,8 +89,8 @@ economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation (as captured by ‘∆Q’) are being used to both frame the necessary notions and provide a basis for assuring the refinement and reification of such systems, -from initial concept to operational infrastructure.

    You can download the slides from here.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    - - +from initial concept to operational infrastructure.

    You can download the slides from here.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    + + \ No newline at end of file diff --git a/page/16/index.html b/page/16/index.html index 6e49c944cd..faea819baf 100644 --- a/page/16/index.html +++ b/page/16/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, our proposal for entering the Voltaire phase. Please come join the discussion, this will be an incredibly exciting transition for Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. @@ -103,8 +103,8 @@ concerned, so we are hoping the work done in caching the computation of the TICKF rule can help alleviating the growing block production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the -networking team, which is intended for use in the adoption of P2P.

    · One min read
    Jordan Millar
    - - +networking team, which is intended for use in the adoption of P2P.

    + + \ No newline at end of file diff --git a/page/17/index.html b/page/17/index.html index db94d711d9..70bdc615cf 100644 --- a/page/17/index.html +++ b/page/17/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +

    · One min read
    Jordan Millar

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET

    · 3 min read
    Jared Corduan

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have had since the Shelley phase. It will take time to properly review it, and we will @@ -50,21 +50,8 @@ See [pull-3135].

  • We did a lot more renaming to bring coherency and consistency to the code base. See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
  • We have added a few things to the ledger repository to make it conform to the Cardano Engineering Handbook -See [pull-3139].
  • · 2 min read
    Marcin Szamotulski

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster -(which consists of 50 nodes). There is a performance regression in the header -notification metric. The P2P cluster is constructed with the same -topology as the non-p2p reference one this indicates some regression which -needs to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P -release for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with -Warning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of -the slot to when a header was received. The y axis is the percentile of nodes -that received a header. We are currently investigating possible causes of the -regression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous -in json format, pull #4127. Such demotions should be investigated by the -pool operator. They can indicate a problem in the deployed system, but also -they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source -contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    - - +See [pull-3139].
    + + \ No newline at end of file diff --git a/page/18/index.html b/page/18/index.html index 50d7efe9c8..0a96d29966 100644 --- a/page/18/index.html +++ b/page/18/index.html @@ -12,12 +12,25 @@ - - + +
    -

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484

    · 2 min read
    Marcin Szamotulski

    High Level Summary

    • We've been working toward publishing Cardano Backlog, currently its in +

      · 2 min read
      Marcin Szamotulski

      High-level summary

      In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

      We also continued to work on peer sharing: pull #4019.

      We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

      We simplified the P2P topology format: issue #4559, pull #3888.

      We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

      Detail description

      Performance regression

      Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

      On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

      New P2P topology form

      The new topology file format is described in this issue #4559.

      Tracing improvements

      • We improved a handshake error reporting, pull #4136
      • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

      Open Source Improvements

      We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

      · One min read
      Sebastian Nagel

      High level summary

      This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

      What did the team achieve this week

      • Complete and merge ADR18 #579
      • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
      • Have first gap of #452 in review.
      • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
      • Engineering meeting to discuss hard forks and protocol parameter updates #195
      • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
      • Drafted project scope for an external audit RFP.

      What are the goals of next week

      • Implement event-sourced persistence #580
      • Answer the internal auditors questions
      • Have a draft RFP ready for a first review internally
      • Close some gaps #452

      · 2 min read
      Iñigo Querejeta Azurmendi

      This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

      Low level overview

      • We have been moving forward on the implementation of the release process #500:
        • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
        • Adapted the CI workflows to work with the new release process #543
        • Publication of an ADR3
        • Publication of a dev blog post about Mithril networks evolution
        • Releasing our first Mithril distribution 2244.0
      • Worked on the API versioning mechanism #565
      • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
      • Prepared a Mithril devnet video demo #526
      • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484

      · 2 min read
      Marcin Szamotulski

      High Level Summary

      • We've been working toward publishing Cardano Backlog, currently its in review by the IOG communication team.
      • We identified a number of libraries which can be published.
      • We setup and enhanced cardano-updates.

      Detailed description

      I am glad to announce that I was given the role of open-source advocate for cardano project. In last few weeks we were making steps towards publishing our backlog. It's currently under review by the communication team, although most @@ -39,60 +52,8 @@ repositories are missing the most: Documentation Adoption You can expect we will improve in these metrics in the coming weeks.

      · One min read
      Dorin Solomon

      High level summary

      We made good progress on most of the Action Items we agreed on Lisbon, like:

      • Cardano System Tests was fully open to public (tools, tests, results) -See cardano-node-tests webpage.
      • We defined an user-facing-functionality template that is used with the cardano-cli team
        • this includes acceptance criteria & user stories, and definition of done
      • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
      • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
      • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features

      · 4 min read
      Damian Nadales

      High-level summary

      During the past two weeks, the consensus team continued its work on testing the -UTxO HD prototype. We completed the era-transition and backing store tests, and -the mempool tests are advancing at a steady pace. Regarding our work in the -Genesis design, we continued our collaboration with the research and networking -teams, and we continue investigating strategies for making the chain-sync -jumping prototype faster.

      High-level status report

      • Finish the UTxO HD prototype: on track.
        • We worked on state-machine tests for the mempool, and spotted potential bugs -in the implementation. Investigation is ongoing.
        • We have a set of property tests for the backing store. We still need to -incorporate the improvements to the LMDB cursor API that these tests -made possible.
        • We merged the era-transition tests PR.
      • Genesis: on track.
        • Design work around Genesis continues in collaboration with researchers and -the networking team.
        • We continued trying to improve the performance of the chain-sync jumping -prototype. We gained additional insight on which parameters to tweak next. -In spite of the baseline still being faster, the current prototype already -achieves a significant speedup when compared to the naive approach of simply -running full chain-sync with all peers.
      • Tech debt: on track.
        • We clarified a common source of confusion around VRF tie-breaking and -cross-era chain selection.

      Workstreams

      Finish the UTxO HD prototype

      We continued working on property-tests for the UTxO HD prototype. In particular -we merged the era-transition tests -PR.

      Backing store property tests

      The backing store property tests -PR has been -reviewed. The next steps are:

      • Improve error handling and command generation.
      • Add coverage testing to check that we are not failing to cover interesting -test cases.

      The monadic cursor API -went through its first review round. The API is in a relatively stable state. -This PR also unifies the cborg and serialise-based interfaces to LMDB -operations. The next steps are:

      • Write -quickcheck-dynamic -state-machine tests for this API.
      • Adapt the changes in the serialisation interface in the backing store property -tests. This will involve adding boilerplate code in consensus to make up for -the removal of the cborg-based interface.

      LSM tree implementation

      We worked on the LSM tree -prototype. In -particular, we focused on tuning the LSM tree design to the different workloads -that consensus has (eg syncing, normal node operation, etc).

      Benchmarking the CSJ prototype

      Work on improving the chain-sync jumping performance is ongoing. In particular -we compared the performance of different jump intervals, which, somewhat -surprisingly, do not make a significant difference. In particular, we are seeing -periodic "plateaus" where the chain-sync tip does not progress, but they are -much longer for the prototype. Our hypothesis is that this seem to be due to a -combination of the garbage collector (GC) pauses, and the actual time it takes -the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo -fragment.

      In the coming weeks we will try to shorten these plateaus via a combination of -tweaking GC options and less synchronisation in the CSJ governor.

      The following plot shows the performance of the chain-sync jumping prototype -using different jumping intervals. It compares the syncing progress by plotting -the slots of adopted blocks against time. The baseline is still faster, however -it is worth noting that the current prototype already achieves a significant -speedup when compared to the naive approach of simply running full chain-sync -with all peers.

      The second plot shows the syncing progress sliced to a chosen ~5min interval, -and includes, in addition to the slots of adopted blocks, the slots of the tip -of the ChainSync fragment. This allows us to see how far ahead of the selected -tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get -stalled. It shows periodic behaviour (due to the forecasting limit), and shows -that the CS fragment tip is not progressing for significant periods -("plateaus").

      Technical debt

      We clarified a -common source of confusion around VRF tie-breaking and cross-era chain -selection. This PR involved correcting potentially misleading names of -VRF-related functions, and providing context for a particular VRF value is -used for tie-breaking.

    - - +See cardano-node-tests webpage.
  • We defined an user-facing-functionality template that is used with the cardano-cli team
    • this includes acceptance criteria & user stories, and definition of done
  • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
  • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
  • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
  • + + \ No newline at end of file diff --git a/page/19/index.html b/page/19/index.html index cb9074cc16..1e16993ec4 100644 --- a/page/19/index.html +++ b/page/19/index.html @@ -12,12 +12,64 @@ - - + +
    -

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the +

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and +the networking team.
      • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

    Backing store property tests

    The backing store property tests +PR has been +reviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting +test cases.

    The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

    • Write +quickcheck-dynamic +state-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

    In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

    Technical debt

    We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the formal ledger repository in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure to the model. In particular, we now have a lot of support for axiomatic set theory. @@ -46,19 +98,8 @@ See [pull-3091].

  • We removed dead code. See [pull-3089].
  • We moved a lot of code from the Shelley specific libraries to the ledger core library. See [pull-3109] and [pull-3110].
  • We've removed more of the awkward legacy template Haskell names. See [pull-3108].
  • · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, -a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, -unique and foreign keys. It also provides a way to fix older values and migrates without the need to -resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing -#1295 -The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and -indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A -conservative number of these will be included in the next release and the rest can be found in -performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also -introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases -#1294

    Release

    The release has been mostly cherry-picked from master -#1294 and its scope can be seen -release view

    - - +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    + + \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index 21e63451ed..370347cb88 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -12,12 +12,29 @@ - - + +
    -

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

    We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

    We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the hydra-node. They added a golden test suite for hydra-plutus scripts, added some detection of hydra-node misconfiguration, established a limit of 100 ADA per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra @@ -49,8 +66,8 @@ Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved the test suite of the hydra-plutus scripts. The specification is constantly getting improved upon reviewer feedback on overleaf - this week the graphical -notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    - - +notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution
    + + \ No newline at end of file diff --git a/page/20/index.html b/page/20/index.html index 3f9acc0fa9..1b6831789a 100644 --- a/page/20/index.html +++ b/page/20/index.html @@ -12,12 +12,23 @@ - - + +
    -

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the +

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

    Release

    The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the hydra-tui and hydra-node, and delivered a first version of persisted head states by publishing release version 0.8.0. @@ -80,12 +91,8 @@ Spongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related -to token rotation.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to -meeting the acceptance criteria in cardano-base, -which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and -we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, -but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    - - +to token rotation.
    + + \ No newline at end of file diff --git a/page/21/index.html b/page/21/index.html index 855bdb78fb..e9d7419319 100644 --- a/page/21/index.html +++ b/page/21/index.html @@ -12,12 +12,16 @@ - - + +
    -

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the +

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the new HeadV1 specification, completing a list the of identified gaps between specification and implementation while doing so. In the wake of the recent demonstration of SundaeSwap running their DEX in a Hydra Head, they met with @@ -62,37 +66,8 @@ This results in era-specific behavior (speed is like the prototype in Byron, but like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and continuing a good part into Shelley (with the dashed line indicating the -Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing -technical -debt. -We now have the infrastructure for versioning our serialization schemes, -which we continue to put into action. -We have made first steps towards getting proper support for the -formal ledger repository -(in particular, we've added nix builds and -continuous integration support). -We are wrapping up an investigation of the performance of a critical -function used by the consensus layer for leader checks. -Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of -our code lives in the cardano-ledger-shelley package, though with hindsight we can say that -much of it should live in cardano-ledger-core. -We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. -The inability to do this has caused us a lot difficulties, -such as [issue-3003], [issue-2965] and [issue-2444]. -We are still in the process of switching to the versioned serialization scheme -(such as [pull-3078]), -but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for -CHaP -to all the cardano-node repositories. -We have been helping out with this effort.
    • A separate team continues working on upgrading all the -cardano-node repositories to work with ghc 9.2.4. -We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review -that we are working on.

    • In an on-going attempt to build out a more user-friendly API, -we continue to remove HasField instances in place of using micro-lenses. -The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance -of the TICKF transition. We have some improvements to the computatation -as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]
    - - +Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    + + \ No newline at end of file diff --git a/page/22/index.html b/page/22/index.html index 1af4750fe4..3bb1dd6ab4 100644 --- a/page/22/index.html +++ b/page/22/index.html @@ -12,12 +12,41 @@ - - + +
    -

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the +

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
    • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review +that we are working on.

    • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the performance of the ChainSync jumping logic, which is needed for Genesis. We also rewrote the implementation of the mempool in the UTxO HD prototype which solved the issues that prevented us from running system level benchmarks. Also on the @@ -90,39 +119,8 @@ cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.

  • The nix scripts used to build our new formal ledger model do not work consistently for everyone, and we have been working on fixing these issues.
  • [issue-3014] We are still working on adding a versioning scheme to all of the ledger -serializers.
  • · 3 min read
    Marcin Szamotulski

    Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during -intiialisation. This was fixed in -PR input-output-hk/ouroboros-network#4015 -As part of this pull request we also changed that all exceptions rethrown by -the connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options -where not set for sockets passed through socket activation). -PR input-output-hk/cardano-node#3979 -This fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath, -runtimeDir, databasePath, traceSocketPathAccept, -traceSocketPathConnect and stateDir options. -PR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU -(block validation). This is interesting to check that we're not overloading -the CPU block validation capacity, or network link capacity. Or alternatively -to observe the behaviour in an overload situation if we set the block -generation rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of -links are being used at any one time, and shows that once the system "warms -up" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple -charts, titles etc on screen at once and scale them to whatever screen or -video resolution we like without having to tweak numbers (this example is -scaled to fit 1080HD video resolution).

    - - +serializers.
    + + \ No newline at end of file diff --git a/page/23/index.html b/page/23/index.html index a6df2421fb..2442b54017 100644 --- a/page/23/index.html +++ b/page/23/index.html @@ -12,12 +12,43 @@ - - + +
    -

    · 4 min read
    Damian Nadales
    • We proposed a fix for the performance degradation observed when running +

      · 3 min read
      Marcin Szamotulski

      Network Update

      Ouroboros Network

      Ouroboros Consensus

      • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

      Some older items, which were not announced

      • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

      Cardano Node

      • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

      IO-Sim

      We resolved a number of issues before release of io-sim on hackage:

      See PR #24.

      We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

      Typed Protocols

      Input Endorsers Simulation

      New features include:

      • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

      • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

      • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

      · 4 min read
      Damian Nadales
      • We proposed a fix for the performance degradation observed when running distributed multi-node benchmarks in the UTxO HD feature branch. While this fixed the problems observed when running local benchmarks, it broke the ThreadNet tests due to concurrency issues. Therefore, we think it is wise to @@ -136,93 +167,8 @@ them can be used.
      • We made our generators so that they now produce a much richer set of valid serializations. There is room within CBOR to serialize the same data structure in multiple ways, and it is helpful to have the generators -use a wide variety.
      • We have begun re-organizing our test suites.

      · 9 min read
      Damian Nadales

      Executive summary

      • We did most of the heavy lifting required to integrate the Conway era.
      • We have property tests for the UTxO HD backing store API implementations. A -possible bug was identified. Work is ongoing to make sure the property-tests -cover all the relevant cases.
      • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO -HD functionality. Results show a rough speedup of 4x to 5.5x across -several scenarios. Note that: "Data reported by tasty-bench is only of -indicative and comparative significance.". -We are investigating additional performance improvements. The "anti-diff" -prototype and benchmarks are still pending code review.
      • We elaborated a draft specification for the Genesis implementation and -ChainSync jumping optimization.

      Workstreams

      Conway

      • Integration PR of the minimal Conway era (Issue #3963, PR -#3971).
      • Discussions with Ledger revealed possible sources of confusion about which -data should be changed in the Conway era. As a result, a new technical debt -issue was raised, which does not block the integration of the Conway era -(Issue #3976).

      UTxO HD

      • Issue #3954, branch: The functionality of a -backing store, which is the interface to the on-disk part of ledger state in -UTxO-HD, is tested at a high level through the OnDisk tests. However, some -functionalities remain untested, e.g., reads of ranges of keys. As such, we -have implemented quickcheck-state-machine tests that exercise backing stores -directly. The tests are reusable for different backing store implementations -because the tests are implementation-agnostic: Any backing store that conforms -to the backing store interface can be plugged into the tests. Work is still -ongoing to label/monitor the tests, such that we can verify that interesting -cases are being tested. Furthermore, a possible bug has been identified in the -LMDB backing store with respect to range reads, though the bug has not been -resolved yet.

      • Issue #3946, branch, PR #3882: The -"anti-diff" prototype proposes an alternative approach to keeping track of -sequences (more specifically, FingerTrees) of diffs. These diff sequences -are a component of the in-memory parts of the ledger state in UTxO-HD. Since -the consensus code often requires the cumulative diff of a sequence of diffs, -the current implementation "caches" cumulative diffs of each subtree in the -diff sequence. This caching allows relatively fast reconstruction of the total -cumulative diff, but this caching proved to incur a non-negligible cost: when -we manipulate diff sequences through splits and appends, we force re-computing -a logarithmic number of caches. This is problematic, since we often split and -append in consensus: we split when we flush diffs to a backing store or when -we roll back blocks, and we append when pushing blocks. The new approach -should reduce the overhead of this caching.

        We implemented micro-benchmarks for the "anti-diff" prototype: we -first generate a sequence of commands (Forward, Push, Flush, or -Rollback) through a simulation, after which we measure the performance of -applying the commands to a diff sequence. In this context, Forward means -forwarding of values through a diff, whereas Rollback means switching to -a different fork by rolling back diffs/blocks and pushing new ones. -Moreover, we compare the performance for the two implementations: the -"legacy" approach, and the anti-diff approach.

        Some preliminary results were positive, but we needed to revisit the -benchmark's configuration to obtain more definitive results. After a -discussion with @dcoutts and the consensus team about this configuration -(e.g., number of commands generated, choice of the security parameter k), -the benchmarks should now be closer to the realistic setting. The following -configuration specifies the default configuration that is used in the -benchmarking code:

        • Number of commands generated: 10_000
        • Security parameter k: 2160
        • Number of initial backing values: 100
        • Number of key-value pairs deleted by a push: 50
        • Number of key-value pairs inserted by a push: 50
        • Number of key-value pairs forwarded by a forward: 50
        • Probability of a large (in the range [1000, 2000]) rollback: 0.05
        • Probability of a small (in the range [1, 10]) rollback: 0.95
        • Order of commands:
          • An equal number of forward and pushes.
          • 1 flush every 10 pushes.
          • 1 rollback every 100 pushes

        Moreover, we run four benchmark scenarios:

        • Default configuration
        • Without rollbacks
        • With only small rollbacks
        • Without rollbacks, larger flushes (1 flush every 100 pushes)

        How to read results

        Note: this section uses documentation from the -tasty-bench package to -explain how to read the results of running our benchmarks.

        Running a benchmark scenario gives us the following (curated) output:

        ...
        AntiDiff: OK (18.27s)
        2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
        LegacyDiff: OK (32.73s)
        10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
        ...

        The output says that the first benchmark, which exercises the anti-diff -prototype, was repeatedly executed for 18.27 seconds (wall-clock time), -its predicted mean CPU time was 2.527 seconds and means of individual -samples do not often diverge from it further than ± 47 milliseconds -(double standard deviation). We also configure the RTS to collect GC -statistics, which enables tasty-bench to estimate and report memory usage. -This data is reported as per RTSStats fields: allocated_bytes, -copied_bytes and max_mem_in_use_bytes. So, the output of the first -benchmark says that a total of 2.1 GB of memory was allocated, that a -total of 544 MB of memory were copied, and that the peak memory in usage -was 2.2 GB. We read the output for the second benchmark in the same way.

        Furthermore, the benchmark compares the mean CPU times for -both the anti-diff and legacy approaches: In this case, the mean CPU time -for the anti-diff approach is ~0.23x the mean CPU time for the legacy -approach. Conversely, the mean CPU time for the legacy approach is -1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will -call 0.23x the improvement factor. We will call 4.35x the speedup.

        Note that these improvement factors (and reported results) are subject to -noise, randomness, the specific configuration parameters, and the whims -of statistics. Data reported by tasty-bench is only of indicative and -comparative significance.

        Results

        For each of the 4 scenarios, we list the results of running the anti-diff and -legacy approaches 5 times. We run the benchmarks 5 times to get an indication -of whether the results are similar across multiple runs. Furthermore, we -calculate the accompanying ranges (if applicable) of improvement factors and -speedups.

        Note also the decrease in total bytes allocated and total bytes copied for -the anti-diff approach compared to the legacy approach.

        Default configuration

        NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
        Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
        Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
        Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
        Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
        Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
        Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
        Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
        Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
        Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
        Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
        • Improvement factor: [0.22, 0.23]
        • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

        No rollbacks

        NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
        Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
        Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
        Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
        Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
        Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
        Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
        Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
        Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
        Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
        Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
        • Improvement factor: 0.19
        • Speedup : 1 / 0.19 ~= 5.25

      Only small rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
      Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
      Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
      Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
      Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
      Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
      Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
      • Improvement factor: [0.18, 0.19]

      • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

        No rollbacks, larger flushes (every 100 pushes)

        NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
        Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
        Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
        Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
        Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
        Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
        Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
        Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
        Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
        Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
        Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
      • Improvement factor: 0.25

      • Speedup : 1 / 0.25 ~= 4

      Genesis

      • We elaborated a draft of the specification of the Genesis implementation and -the ChainSync Jumping optimization. In particular, this includes a proof -sketch that the latter preserves liveness and safety in all cases (Issue -3964).
        • @nfrisby's main realization during this sprint was that he had been -focusing so far on the case where the selected chain is an extension of -the intersection of our peers' ChainSync candidates.
        • This is the main case, ie an "absorbing" state, but it's not the only -case.
        • The new proof sketch begins by case splitting on that predicate, and -that made the sketch quite a bit easier to follow.
      • We continued working on the "happy path" ChainSync Jumping prototype (Issue -3960).

      Technical debt

      • We started working on the issues required to re-enable nightly CI runs.. -Nightly CI runs have far more lax time constraints, which gives the option to -run significantly more property tests than in our regular CI. To this end, we -merged a PR to easily adapt the number of tests globally (PR -#3947).
    - - +use a wide variety.
  • We have begun re-organizing our test suites.
  • + + \ No newline at end of file diff --git a/page/24/index.html b/page/24/index.html index 40d4c6839c..ccbdea7e33 100644 --- a/page/24/index.html +++ b/page/24/index.html @@ -12,12 +12,97 @@ - - + +
    -

    · One min read
    Marcin Szamotulski

    The networking team took an active part in the project iteration (PI) planning +

    · 9 min read
    Damian Nadales

    Executive summary

    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
    • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
    • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

    • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

      We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

      Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
      • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
      • This is the main case, ie an "absorbing" state, but it's not the only +case.
      • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
    • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).

    · One min read
    Marcin Szamotulski

    The networking team took an active part in the project iteration (PI) planning session, see cardano-node backlog for detailed outcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which sets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the @@ -31,7 +116,7 @@ identify and fix a bug in the simulator. The simulation contains 50 nodes. Dashed lines indicate and established connection, while solid lines indicate a TCP connection with fully open TCP window.

    - - + + \ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html index f6788068a3..4973aa50dc 100644 --- a/page/3/index.html +++ b/page/3/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD prototype, and introducing improvements to the lmdb related packages. In particular we identified an opportunity to gain performance by handling locks in a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and @@ -61,17 +61,8 @@ multiple timescales

  • Preparing sections on the communication language and idempontency laws for draft paper about verifying design refinements for distributed system design

  • Studying Cardano chain sync protocol

  • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin -Protocol" has been accepted for publication at IEEE ICBC 2023

  • · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version -0.9.0 - a version -of the hydra-node with fully specified behavior of on-chain scripts and -off-chain head-logic, decreased costs for opening/closing a Head and scalable -contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly -report of the Hydra project -and conducted a review meeting with an increasingly wider audience. The team -plans to extend invitations through the new Hydra -#announcements discord channel for the next -months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution
    - - +Protocol" has been accepted for publication at IEEE ICBC 2023

    + + \ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html index 59de145765..5f2272af41 100644 --- a/page/4/index.html +++ b/page/4/index.html @@ -12,12 +12,21 @@ - - + +
    -

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing support for the main ledger properties. @@ -61,8 +70,8 @@ LINK

  • Made hydra-node work for macos #746 and added support for building on aarch64 -#673
  • Met with a potential customer of Hydra for Payments
  • What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    - - +#673
  • Met with a potential customer of Hydra for Payments
  • What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    + + \ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html index 2e83133c36..7ac13995c0 100644 --- a/page/5/index.html +++ b/page/5/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks +

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks for UTxO HD. They showed a substantial performance regression, so we spent some time analyzing the results. We found out the frequency at which ledger snapshots were taken was too high, so we requested the benchmarking team a new run with a @@ -70,12 +70,8 @@ on performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning paper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for draft paper about verifying design refinements for distributed -system design

    • Consulting on performance design with Marlowe team

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests -during the contestation period. These will now always push out the deadline and -hence contestation periods are easier to pick (depending on the network a Head -runs on). Furthermore, they added an important acceptance test and completed -internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    - - +system design

  • Consulting on performance design with Marlowe team

  • + + \ No newline at end of file diff --git a/page/6/index.html b/page/6/index.html index af2809ad55..e3ef35e0cc 100644 --- a/page/6/index.html +++ b/page/6/index.html @@ -12,12 +12,16 @@ - - + +
    -

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base and ouroboros-network repositories. The vast majority of the effort involved all the changes to the ledger serialization libraries (and the interplay with cardano-base) which now support proper versioning. @@ -55,26 +59,8 @@ profiling toolchain was evaluated and set up for future improvements on Hydra on-chain performance. In discussions with researchers and internal auditors, they also uncovered next steps on further securing the Head protocl using a -"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level -benchmarks. We have created a new repository that contains the anti-diff -packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to -audit the implementation design, and we continued working on basic tests and -simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR -encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for -the system level benchmarks to confirm if the performance of the prototype is -satisfactory.

    We also set up a repository for the anti-diff package, which -required us to refactor the code, write documentation, and prepare a release to -CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of -Genesis. We also introduced further robustness and simplifications in the -Genesis Density governor. Finally, we developed a presentation to engage again -with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus -documentation site, which we will use a the entry point for Consensus related -documentation. The first version will not be complete, but we plan on -systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows -to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via -BlockFetch and ChainSync. This tool can help in assisting our local benchmarking -efforts (for instance Genesis' ChainSync jumping prototype).

    - - +"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    + + \ No newline at end of file diff --git a/page/7/index.html b/page/7/index.html index 3026ede1b1..b02228acec 100644 --- a/page/7/index.html +++ b/page/7/index.html @@ -12,26 +12,37 @@ - - + +
    -

    · 2 min read
    Jordan Millar

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

    We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

    · 2 min read
    Jordan Millar

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC 2023 conference
    • Finished preparing and submitted a paper on performance engineering to an ACM workshop
    • Preparing a draft paper for future submission about verifying design -refinements for distributed system design
    • Consulting on performance design of other IO projects

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about -rollbacks and updated graphs -(#448). In a next step, -the specification will be made more approachable and an open standard. They -improved their hydra-cluster tool to launch a local --devnet sandbox -environment and continued aligning the hydra-plutus scripts with the -specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs -#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    - - +refinements for distributed system design
  • Consulting on performance design of other IO projects
  • + + \ No newline at end of file diff --git a/page/8/index.html b/page/8/index.html index f458e29526..e31e85177f 100644 --- a/page/8/index.html +++ b/page/8/index.html @@ -12,12 +12,19 @@ - - + +
    -

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, +

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, cleaning up and debugging some serialization issues, adding tests, and work on large projects that are still ongoing. We also released a CIP this week that aims to make the ledger @@ -65,8 +72,8 @@ work for Genesis. We also continued benchmarking the chain-sync-jumping happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull -request to facilitate compiling consensus.

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - - +request to facilitate compiling consensus.

    + + \ No newline at end of file diff --git a/page/9/index.html b/page/9/index.html index 88c2ab8cb1..2d7fd4c50a 100644 --- a/page/9/index.html +++ b/page/9/index.html @@ -12,12 +12,12 @@ - - + +
    -

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 specification. Of which a first version has been aggregated and is currently under review. They aligned the on-chain scripts of reimbursing funds on abort like defined in the specification, improved the mutation test framework to have @@ -35,32 +35,8 @@ its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes reviewing two PRs: PR #57 and PR #60 as well as writing an announcement blog post.

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing -support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 -(restructuring the ledger state), -fixed the PDF hosting problem (mostly the formal specs), -built out more of the new user-friendly ledger API, -finished a proof of concept for constraint-based generators for property tests -(with the hopes of being able to replace our trace generators one day), -and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, -as described in CIP-1694. -In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. -In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. -We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag -with a specific form, cardano-ledger-spec-YYYY-MM-DD. -The action creates a GitHub release containing the PDFs. -The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, -and replaced them with lenses. -This is probably the last major restructuring that the ledger team will do on the code base -for the API for a while -(the Plutus tools team will be working on it next, see here). -We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks -which span several epochs, mimicking a real network. -These tests are, in theory, excellent for checking properties. -They are, however, very difficult to maintain and are not as random as we would like -(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative -of not just an initial state, generate a single random valid block, and then test our properties. -The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    - - +support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds
    + + \ No newline at end of file diff --git a/quarterly/2022-10-07-node-cli-api/index.html b/quarterly/2022-10-07-node-cli-api/index.html index df3a556ae7..9449d21a34 100644 --- a/quarterly/2022-10-07-node-cli-api/index.html +++ b/quarterly/2022-10-07-node-cli-api/index.html @@ -12,13 +12,13 @@ - - + +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    - - + + \ No newline at end of file diff --git a/quarterly/2022-11-07-ledger/index.html b/quarterly/2022-11-07-ledger/index.html index 603d683af4..75b0b298a4 100644 --- a/quarterly/2022-11-07-ledger/index.html +++ b/quarterly/2022-11-07-ledger/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -21,7 +21,7 @@ This will be re-purposed our upcoming work.
  • We have the humble beginnings of a proper ledger API.
  • We improved the problematic cost model serialization (recall the song and dance about updating the cost model one epoch after the hard fork).
  • We have added benchmarks for problematic areas.
  • Massive repository restructure and cleanup.
    • Unified and consistent variable name schemes (not completely finished, but nearly there).
    • Massive reduction in type constraints, which causes a lot of developer friction, in our code and also downstream.
    • More organized module structures.
    • Improved generators for our property tests.
    • We removed our dependency on cardano-prelude.
  • The formal ledger model has come a long way.
    • We created a fork of Agda that provides some meta-programming support for the ledger rules.
    • We have a large amount of the basic UTxO support in the model.
    • We can generate a good looking PDF from the model.
    • We can produce Haskell from the model.
    • We have a nice finite set theory library that we can use for many of the ledger rules.
    • We have nix support for the model.
  • Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    - - + + \ No newline at end of file diff --git a/quarterly/2022-11-09-network/index.html b/quarterly/2022-11-09-network/index.html index 1f04ee6a76..228efc474d 100644 --- a/quarterly/2022-11-09-network/index.html +++ b/quarterly/2022-11-09-network/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -60,7 +60,7 @@ improvement for SPOs, exchanges and other users of the system.

  • We worked on input endorsers simulation which gives both animated and quantified live feedback on network operation, using a simplified model of a TCP/IP network.

  • Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    - - + + \ No newline at end of file diff --git a/quarterly/2022-11-15-consensus/index.html b/quarterly/2022-11-15-consensus/index.html index 1467aaabdb..45c86c2fd6 100644 --- a/quarterly/2022-11-15-consensus/index.html +++ b/quarterly/2022-11-15-consensus/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -57,7 +57,7 @@ ChainSync jumping prototype, and try to mitigate it. In particular, we might need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested in the Galois gap analysis.
    • Try to hire a new team member.
    - - + + \ No newline at end of file diff --git a/quarterly/2023-01-13-network/index.html b/quarterly/2023-01-13-network/index.html index 0c92e37779..767c69b1a8 100644 --- a/quarterly/2023-01-13-network/index.html +++ b/quarterly/2023-01-13-network/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -41,7 +41,7 @@ and is safe on 32-bit systems (issue #59);
  • added monad transformers instances for classes defined in io-classes (issue #58);
  • created io-classes-mtl package which includes (experimental) instances for monad transformers;
  • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
  • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
  • added support for js_HOST_ARCH (the new GHC JS backend)
  • Note the pr #57 contains almost 40 commits, and was a major step forward for io-sim ecosystem. We also prepared a draft pr #4281 which updates ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.
    - - + + \ No newline at end of file diff --git a/quarterly/2023-01-13-open-source/index.html b/quarterly/2023-01-13-open-source/index.html index 7bd230bd15..63fbfb1034 100644 --- a/quarterly/2023-01-13-open-source/index.html +++ b/quarterly/2023-01-13-open-source/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -47,7 +47,7 @@ The list contains 21 packages, 2 of which (hedgehog-extras and quickcheck-dynamic) are already published on Hackage and another 5 (from the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    - - + + \ No newline at end of file diff --git a/quarterly/2023-01-18-consensus/index.html b/quarterly/2023-01-18-consensus/index.html index c96b260fab..74c3d93e08 100644 --- a/quarterly/2023-01-18-consensus/index.html +++ b/quarterly/2023-01-18-consensus/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -53,7 +53,7 @@ we need to clearly communicate that this is necessary to ensure that as the blockchain size grows, the node can operate within reasonable memory constraints.
    - - + + \ No newline at end of file diff --git a/quarterly/archive/index.html b/quarterly/archive/index.html index 9c30a1bcc8..d56dcf0071 100644 --- a/quarterly/archive/index.html +++ b/quarterly/archive/index.html @@ -12,13 +12,13 @@ - - + + - - + + \ No newline at end of file diff --git a/quarterly/index.html b/quarterly/index.html index 413a877fc6..ee68c1bc06 100644 --- a/quarterly/index.html +++ b/quarterly/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -189,7 +189,7 @@ This will be re-purposed our upcoming work.
  • We have the humble beginnings of a proper ledger API.
  • We improved the problematic cost model serialization (recall the song and dance about updating the cost model one epoch after the hard fork).
  • We have added benchmarks for problematic areas.
  • Massive repository restructure and cleanup.
    • Unified and consistent variable name schemes (not completely finished, but nearly there).
    • Massive reduction in type constraints, which causes a lot of developer friction, in our code and also downstream.
    • More organized module structures.
    • Improved generators for our property tests.
    • We removed our dependency on cardano-prelude.
  • The formal ledger model has come a long way.
    • We created a fork of Agda that provides some meta-programming support for the ledger rules.
    • We have a large amount of the basic UTxO support in the model.
    • We can generate a good looking PDF from the model.
    • We can produce Haskell from the model.
    • We have a nice finite set theory library that we can use for many of the ledger rules.
    • We have nix support for the model.
  • Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    - - + + \ No newline at end of file diff --git a/quarterly/tags/cli-api-quarterly/index.html b/quarterly/tags/cli-api-quarterly/index.html index 9611a50b77..68dbf9b399 100644 --- a/quarterly/tags/cli-api-quarterly/index.html +++ b/quarterly/tags/cli-api-quarterly/index.html @@ -12,13 +12,13 @@ - - + +

    One post tagged with "cli-api-quarterly"

    View All Tags

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    - - + + \ No newline at end of file diff --git a/quarterly/tags/consensus/index.html b/quarterly/tags/consensus/index.html index 349c559e96..bedf14c354 100644 --- a/quarterly/tags/consensus/index.html +++ b/quarterly/tags/consensus/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -92,7 +92,7 @@ ChainSync jumping prototype, and try to mitigate it. In particular, we might need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested in the Galois gap analysis.
    • Try to hire a new team member.
    - - + + \ No newline at end of file diff --git a/quarterly/tags/index.html b/quarterly/tags/index.html index 4386421a2b..2d7f3722d8 100644 --- a/quarterly/tags/index.html +++ b/quarterly/tags/index.html @@ -12,13 +12,13 @@ - - + + - - + + \ No newline at end of file diff --git a/quarterly/tags/ledger/index.html b/quarterly/tags/ledger/index.html index c36af1682c..cfcb3e4ccf 100644 --- a/quarterly/tags/ledger/index.html +++ b/quarterly/tags/ledger/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -21,7 +21,7 @@ This will be re-purposed our upcoming work.
  • We have the humble beginnings of a proper ledger API.
  • We improved the problematic cost model serialization (recall the song and dance about updating the cost model one epoch after the hard fork).
  • We have added benchmarks for problematic areas.
  • Massive repository restructure and cleanup.
    • Unified and consistent variable name schemes (not completely finished, but nearly there).
    • Massive reduction in type constraints, which causes a lot of developer friction, in our code and also downstream.
    • More organized module structures.
    • Improved generators for our property tests.
    • We removed our dependency on cardano-prelude.
  • The formal ledger model has come a long way.
    • We created a fork of Agda that provides some meta-programming support for the ledger rules.
    • We have a large amount of the basic UTxO support in the model.
    • We can generate a good looking PDF from the model.
    • We can produce Haskell from the model.
    • We have a nice finite set theory library that we can use for many of the ledger rules.
    • We have nix support for the model.
  • Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    - - + + \ No newline at end of file diff --git a/quarterly/tags/network/index.html b/quarterly/tags/network/index.html index 8a6185cbdd..53af4e4147 100644 --- a/quarterly/tags/network/index.html +++ b/quarterly/tags/network/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -83,7 +83,7 @@ improvement for SPOs, exchanges and other users of the system.

  • We worked on input endorsers simulation which gives both animated and quantified live feedback on network operation, using a simplified model of a TCP/IP network.

  • Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    - - + + \ No newline at end of file diff --git a/quarterly/tags/open-source/index.html b/quarterly/tags/open-source/index.html index 93303eb400..e6edeee180 100644 --- a/quarterly/tags/open-source/index.html +++ b/quarterly/tags/open-source/index.html @@ -12,8 +12,8 @@ - - + +
    @@ -47,7 +47,7 @@ The list contains 21 packages, 2 of which (hedgehog-extras and quickcheck-dynamic) are already published on Hackage and another 5 (from the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    - - + + \ No newline at end of file diff --git a/rss.xml b/rss.xml index 39c7456144..d0bd066ca9 100644 --- a/rss.xml +++ b/rss.xml @@ -4,10 +4,24 @@ Cardano Updates Feed https://input-output-hk.github.io/cardano-updates/ Regular updates from Cardano Development Teams - Thu, 23 Mar 2023 00:00:00 GMT + Fri, 24 Mar 2023 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en + + <![CDATA[Hydra Team Update]]> + https://input-output-hk.github.io/cardano-updates/2023-03-24-hydra + 2023-03-24-hydra + Fri, 24 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693
    ]]>
    + hydra +
    <![CDATA[DB-sync Team Update]]> https://input-output-hk.github.io/cardano-updates/2023-03-23-db-sync diff --git a/sitemap.xml b/sitemap.xml index 01002aca60..e363d33484 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://input-output-hk.github.io/cardano-updates/2022-08-12-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-08-12-sreweekly0.5https://input-output-hk.github.io/cardano-updates/2022-08-31-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-01-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-16-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-19-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-20-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-27-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-30-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-02-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-04-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-04-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-05-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-14-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-14-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-18-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-19-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-21-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-27-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-31-open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-01-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-releaseweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-03-embedding-qualityweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-04-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-04-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-18-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-18-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-23-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-25-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-25-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-28-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-02-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-12-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-15-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-16-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-28-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-05-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-06-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-11-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-11-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-12-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-releaseweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-14-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-19-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-sreweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-25-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-25-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-26-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-27-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-02-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-09-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-10-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-21-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-22-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-23-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-23-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-24-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-02-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-08-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-08-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-09-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-10-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-16-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-17-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-17-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-21-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-22-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-22-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-23-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-23-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/archiveweekly0.5https://input-output-hk.github.io/cardano-updates/markdown-pageweekly0.5https://input-output-hk.github.io/cardano-updates/page/10weekly0.5https://input-output-hk.github.io/cardano-updates/page/11weekly0.5https://input-output-hk.github.io/cardano-updates/page/12weekly0.5https://input-output-hk.github.io/cardano-updates/page/13weekly0.5https://input-output-hk.github.io/cardano-updates/page/14weekly0.5https://input-output-hk.github.io/cardano-updates/page/15weekly0.5https://input-output-hk.github.io/cardano-updates/page/16weekly0.5https://input-output-hk.github.io/cardano-updates/page/17weekly0.5https://input-output-hk.github.io/cardano-updates/page/18weekly0.5https://input-output-hk.github.io/cardano-updates/page/19weekly0.5https://input-output-hk.github.io/cardano-updates/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/page/20weekly0.5https://input-output-hk.github.io/cardano-updates/page/21weekly0.5https://input-output-hk.github.io/cardano-updates/page/22weekly0.5https://input-output-hk.github.io/cardano-updates/page/23weekly0.5https://input-output-hk.github.io/cardano-updates/page/24weekly0.5https://input-output-hk.github.io/cardano-updates/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/page/4weekly0.5https://input-output-hk.github.io/cardano-updates/page/5weekly0.5https://input-output-hk.github.io/cardano-updates/page/6weekly0.5https://input-output-hk.github.io/cardano-updates/page/7weekly0.5https://input-output-hk.github.io/cardano-updates/page/8weekly0.5https://input-output-hk.github.io/cardano-updates/page/9weekly0.5https://input-output-hk.github.io/cardano-updates/quarterlyweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-10-07-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-07-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-09-networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-15-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-13-networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-13-open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-18-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/archiveweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tagsweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/cli-api-quarterlyweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/tagsweekly0.5https://input-output-hk.github.io/cardano-updates/tags/cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/tags/cli-api/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensusweekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensus/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensus/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/tags/crypto/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/tags/db-sync/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/embedding-qualityweekly0.5https://input-output-hk.github.io/cardano-updates/tags/goedelweekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydraweekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/4weekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledger/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledger/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/tags/mithril/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/networkweekly0.5https://input-output-hk.github.io/cardano-updates/tags/network/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/tags/performance-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/tags/performance-tracing/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/releaseweekly0.5https://input-output-hk.github.io/cardano-updates/tags/sreweekly0.5https://input-output-hk.github.io/cardano-updates/tags/system-testweekly0.5https://input-output-hk.github.io/cardano-updates/docs/category/tutorial---basicsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/category/tutorial---extrasweekly0.5https://input-output-hk.github.io/cardano-updates/docs/introweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/congratulationsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-blog-postweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-documentweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-pageweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/deploy-your-siteweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/markdown-featuresweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-extras/manage-docs-versionsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-extras/translate-your-siteweekly0.5https://input-output-hk.github.io/cardano-updates/weekly0.5 \ No newline at end of file +https://input-output-hk.github.io/cardano-updates/2022-08-12-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-08-12-sreweekly0.5https://input-output-hk.github.io/cardano-updates/2022-08-31-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-01-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-16-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-19-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-20-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-27-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-09-30-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-02-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-04-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-04-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-05-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-14-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-14-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-18-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-19-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-21-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-27-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-28-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-10-31-open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-01-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-releaseweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-02-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-03-embedding-qualityweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-04-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-04-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-11-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-16-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-18-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-18-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-23-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-25-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-25-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-28-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-11-30-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-01-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-02-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-09-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-12-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-15-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-16-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2022-12-28-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-05-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-06-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-11-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-11-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-12-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-releaseweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-13-system-testweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-14-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-19-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-20-sreweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-25-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-25-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-26-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-01-27-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-02-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-03-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-08-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-09-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-10-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-17-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-21-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-22-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-23-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-23-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-02-24-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-02-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-03-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-08-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-08-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-09-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-10-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-16-goedelweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-17-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-17-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-21-networkweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-22-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-22-performance-and-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-23-db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-23-mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/2023-03-24-hydraweekly0.5https://input-output-hk.github.io/cardano-updates/archiveweekly0.5https://input-output-hk.github.io/cardano-updates/markdown-pageweekly0.5https://input-output-hk.github.io/cardano-updates/page/10weekly0.5https://input-output-hk.github.io/cardano-updates/page/11weekly0.5https://input-output-hk.github.io/cardano-updates/page/12weekly0.5https://input-output-hk.github.io/cardano-updates/page/13weekly0.5https://input-output-hk.github.io/cardano-updates/page/14weekly0.5https://input-output-hk.github.io/cardano-updates/page/15weekly0.5https://input-output-hk.github.io/cardano-updates/page/16weekly0.5https://input-output-hk.github.io/cardano-updates/page/17weekly0.5https://input-output-hk.github.io/cardano-updates/page/18weekly0.5https://input-output-hk.github.io/cardano-updates/page/19weekly0.5https://input-output-hk.github.io/cardano-updates/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/page/20weekly0.5https://input-output-hk.github.io/cardano-updates/page/21weekly0.5https://input-output-hk.github.io/cardano-updates/page/22weekly0.5https://input-output-hk.github.io/cardano-updates/page/23weekly0.5https://input-output-hk.github.io/cardano-updates/page/24weekly0.5https://input-output-hk.github.io/cardano-updates/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/page/4weekly0.5https://input-output-hk.github.io/cardano-updates/page/5weekly0.5https://input-output-hk.github.io/cardano-updates/page/6weekly0.5https://input-output-hk.github.io/cardano-updates/page/7weekly0.5https://input-output-hk.github.io/cardano-updates/page/8weekly0.5https://input-output-hk.github.io/cardano-updates/page/9weekly0.5https://input-output-hk.github.io/cardano-updates/quarterlyweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-10-07-node-cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-07-ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-09-networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2022-11-15-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-13-networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-13-open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/2023-01-18-consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/archiveweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tagsweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/cli-api-quarterlyweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/consensusweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/networkweekly0.5https://input-output-hk.github.io/cardano-updates/quarterly/tags/open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/tagsweekly0.5https://input-output-hk.github.io/cardano-updates/tags/cli-apiweekly0.5https://input-output-hk.github.io/cardano-updates/tags/cli-api/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensusweekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensus/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/consensus/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/cryptoweekly0.5https://input-output-hk.github.io/cardano-updates/tags/crypto/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/db-syncweekly0.5https://input-output-hk.github.io/cardano-updates/tags/db-sync/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/embedding-qualityweekly0.5https://input-output-hk.github.io/cardano-updates/tags/goedelweekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydraweekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/4weekly0.5https://input-output-hk.github.io/cardano-updates/tags/hydra/page/5weekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledgerweekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledger/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/ledger/page/3weekly0.5https://input-output-hk.github.io/cardano-updates/tags/mithrilweekly0.5https://input-output-hk.github.io/cardano-updates/tags/mithril/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/networkweekly0.5https://input-output-hk.github.io/cardano-updates/tags/network/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/open-sourceweekly0.5https://input-output-hk.github.io/cardano-updates/tags/performance-tracingweekly0.5https://input-output-hk.github.io/cardano-updates/tags/performance-tracing/page/2weekly0.5https://input-output-hk.github.io/cardano-updates/tags/releaseweekly0.5https://input-output-hk.github.io/cardano-updates/tags/sreweekly0.5https://input-output-hk.github.io/cardano-updates/tags/system-testweekly0.5https://input-output-hk.github.io/cardano-updates/docs/category/tutorial---basicsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/category/tutorial---extrasweekly0.5https://input-output-hk.github.io/cardano-updates/docs/introweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/congratulationsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-blog-postweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-documentweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/create-a-pageweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/deploy-your-siteweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-basics/markdown-featuresweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-extras/manage-docs-versionsweekly0.5https://input-output-hk.github.io/cardano-updates/docs/tutorial-extras/translate-your-siteweekly0.5https://input-output-hk.github.io/cardano-updates/weekly0.5 \ No newline at end of file diff --git a/tags/cli-api/index.html b/tags/cli-api/index.html index d122cc4e65..b8f91c0f37 100644 --- a/tags/cli-api/index.html +++ b/tags/cli-api/index.html @@ -12,13 +12,13 @@ - - + +
    -

    9 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar
    - - +

    9 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar
    + + \ No newline at end of file diff --git a/tags/cli-api/page/2/index.html b/tags/cli-api/page/2/index.html index 4285e2d334..77600a07ce 100644 --- a/tags/cli-api/page/2/index.html +++ b/tags/cli-api/page/2/index.html @@ -12,13 +12,13 @@ - - + +
    -

    9 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    - - +

    9 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + \ No newline at end of file diff --git a/tags/consensus/index.html b/tags/consensus/index.html index 1f485eb518..9d84623e98 100644 --- a/tags/consensus/index.html +++ b/tags/consensus/index.html @@ -12,12 +12,12 @@ - - + +
    -

    14 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +

    14 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD prototype, and design and testing of Genesis. We also extracted the fs-sim package, which provides a file-system abstraction layer that can be used for testing and simulation. This makes the Consensus code base smaller, while @@ -135,7 +135,7 @@ happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull request to facilitate compiling consensus.

    - - + + \ No newline at end of file diff --git a/tags/consensus/page/2/index.html b/tags/consensus/page/2/index.html index 64f5fa7ff8..22586faeb9 100644 --- a/tags/consensus/page/2/index.html +++ b/tags/consensus/page/2/index.html @@ -12,12 +12,12 @@ - - + +
    -

    14 posts tagged with "consensus"

    View All Tags

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During +

    14 posts tagged with "consensus"

    View All Tags

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and discussing with the Ledger team the changes that might be required for the next iterations. The pull request that adds the Conway era is waiting for a second @@ -230,7 +230,7 @@ selection. This PR involved correcting potentially misleading names of VRF-related functions, and providing context for a particular VRF value is used for tie-breaking.

    - - + + \ No newline at end of file diff --git a/tags/consensus/page/3/index.html b/tags/consensus/page/3/index.html index 946db0bf47..0892da1844 100644 --- a/tags/consensus/page/3/index.html +++ b/tags/consensus/page/3/index.html @@ -12,12 +12,12 @@ - - + +
    -

    14 posts tagged with "consensus"

    View All Tags

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for +

    14 posts tagged with "consensus"

    View All Tags

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for different aspects of the UTxO HD prototype: era transitions, mempool, and backing store. Thanks to these tests we were able to uncover a bug in the prototype. On the Genesis front, we benchmarked a different version of the @@ -224,7 +224,7 @@ run significantly more property tests than in our regular CI. To this end, we merged a PR to easily adapt the number of tests globally (PR #3947).

    - - + + \ No newline at end of file diff --git a/tags/crypto/index.html b/tags/crypto/index.html index bc4cfe249c..f7fa668afb 100644 --- a/tags/crypto/index.html +++ b/tags/crypto/index.html @@ -12,13 +12,13 @@ - - + +
    -

    8 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    - - +

    8 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    + + \ No newline at end of file diff --git a/tags/crypto/page/2/index.html b/tags/crypto/page/2/index.html index 52a4b36628..e48a1df385 100644 --- a/tags/crypto/page/2/index.html +++ b/tags/crypto/page/2/index.html @@ -12,17 +12,17 @@ - - + +
    -

    8 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +

    8 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to meeting the acceptance criteria in cardano-base, which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    - - + + \ No newline at end of file diff --git a/tags/db-sync/index.html b/tags/db-sync/index.html index 5bfb71b829..1e7e4667db 100644 --- a/tags/db-sync/index.html +++ b/tags/db-sync/index.html @@ -12,12 +12,12 @@ - - + +
    -

    8 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +

    8 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an epoch, but also the first epoch of the last epoch. #1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values @@ -64,7 +64,7 @@ release and development process, so that it takes into account migrations release process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for docker.

    - - + + \ No newline at end of file diff --git a/tags/db-sync/page/2/index.html b/tags/db-sync/page/2/index.html index cb554257c5..ed7fb9b630 100644 --- a/tags/db-sync/page/2/index.html +++ b/tags/db-sync/page/2/index.html @@ -12,12 +12,12 @@ - - + +
    -

    8 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +

    8 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, unique and foreign keys. It also provides a way to fix older values and migrates without the need to resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing #1295 @@ -67,7 +67,7 @@ This allows db-sync to restart much faster, without the need to delete data and reinsert them. In the future it can also facilitate migrations in cases where the ledger snapshots have a breaking change, without the need to resync everything from genesis.

    - - + + \ No newline at end of file diff --git a/tags/embedding-quality/index.html b/tags/embedding-quality/index.html index 2462585db7..63362d8c5e 100644 --- a/tags/embedding-quality/index.html +++ b/tags/embedding-quality/index.html @@ -12,14 +12,14 @@ - - + +
    -

    One post tagged with "embedding-quality"

    View All Tags

    · One min read
    Dorin Solomon

    High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    - - + + \ No newline at end of file diff --git a/tags/goedel/index.html b/tags/goedel/index.html index a172c48a24..51e536154a 100644 --- a/tags/goedel/index.html +++ b/tags/goedel/index.html @@ -12,12 +12,12 @@ - - + +
    -

    4 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +

    4 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers improving the deltaQ tutorial, consulting on performance design, and @@ -48,7 +48,7 @@ 2023 conference

  • Finished preparing and submitted a paper on performance engineering to an ACM workshop
  • Preparing a draft paper for future submission about verifying design refinements for distributed system design
  • Consulting on performance design of other IO projects
  • - - + + \ No newline at end of file diff --git a/tags/hydra/index.html b/tags/hydra/index.html index e843e21183..880b3c5903 100644 --- a/tags/hydra/index.html +++ b/tags/hydra/index.html @@ -3,7 +3,7 @@ -20 posts tagged with "hydra" | Cardano Development Updates +21 posts tagged with "hydra" | Cardano Development Updates @@ -12,12 +12,17 @@ - - + +
    -

    20 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +

    21 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the hydra-node. They added a golden test suite for hydra-plutus scripts, added some detection of hydra-node misconfiguration, established a limit of 100 ADA per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra @@ -55,12 +60,8 @@ LINK

  • Made hydra-node work for macos #746 and added support for building on aarch64 -#673
  • Met with a potential customer of Hydra for Payments
  • What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests -during the contestation period. These will now always push out the deadline and -hence contestation periods are easier to pick (depending on the network a Head -runs on). Furthermore, they added an important acceptance test and completed -internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    - - +#673
  • Met with a potential customer of Hydra for Payments
  • What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification
    + + \ No newline at end of file diff --git a/tags/hydra/page/2/index.html b/tags/hydra/page/2/index.html index 9c22198aeb..df37c59346 100644 --- a/tags/hydra/page/2/index.html +++ b/tags/hydra/page/2/index.html @@ -3,7 +3,7 @@ -20 posts tagged with "hydra" | Cardano Development Updates +21 posts tagged with "hydra" | Cardano Development Updates @@ -12,12 +12,16 @@ - - + +
    -

    20 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +

    21 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts implementation further with the specification. This also resulted in a slight improvement on Hydra script size and costs. They consequently analysed the asymptotic complexity of collect and fanout and how they relate. Also plutus-tx @@ -46,21 +50,8 @@ more control when testing plutus scripts. The added HeadId in the API and the TUI example client make hydra-node easier to use and a first experiment of a Hydra Head explorer was showing the utility of this - see what Heads exist on -the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the -technical specification, closed gaps in hydra-plutus scripts, made the unique -headId available to Hydra clients through the API, allow the hydra-node to -explicitly synchronize from genesis (if configured), and fixed smaller log and -build issues reported by new users.

    Besides this, a retrospective blog -post -was published by Matthias Benkort (CF) on Hydra, summarizing our progress made -in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had -some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra -website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog -post -by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also -an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest -version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.
    - - +the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)
    + + \ No newline at end of file diff --git a/tags/hydra/page/3/index.html b/tags/hydra/page/3/index.html index 998cb1f207..f8f711f85a 100644 --- a/tags/hydra/page/3/index.html +++ b/tags/hydra/page/3/index.html @@ -3,7 +3,7 @@ -20 posts tagged with "hydra" | Cardano Development Updates +21 posts tagged with "hydra" | Cardano Development Updates @@ -12,20 +12,33 @@ - - + +
    -

    20 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +

    21 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

    Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra +website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress after last week's summit. They have extended their model-based testing (MBT) approach with transaction creation & observation #410, solved AcquirePointTooOld problems of the hydra-node with by changing the wallet initialization #439. Also, the Hydra researchers updated the security proofs of the Coordinated Hydra -Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    - - +Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    + + \ No newline at end of file diff --git a/tags/hydra/page/4/index.html b/tags/hydra/page/4/index.html index 7088656eb1..5ef50d9e56 100644 --- a/tags/hydra/page/4/index.html +++ b/tags/hydra/page/4/index.html @@ -3,7 +3,7 @@ -20 posts tagged with "hydra" | Cardano Development Updates +21 posts tagged with "hydra" | Cardano Development Updates @@ -12,12 +12,12 @@ - - + +
    -

    20 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +

    21 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the hydra-tui and hydra-node, and delivered a first version of persisted head states by publishing release version @@ -28,8 +28,8 @@ specification and implementation while doing so. In the wake of the recent demonstration of SundaeSwap running their DEX in a Hydra Head, they met with them to capture feature ideas & incorporate their feedback on the roadmap, as -well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    - - +well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts
    + + \ No newline at end of file diff --git a/tags/hydra/page/5/index.html b/tags/hydra/page/5/index.html new file mode 100644 index 0000000000..ace3eac234 --- /dev/null +++ b/tags/hydra/page/5/index.html @@ -0,0 +1,24 @@ + + + + + +21 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + +
    +

    21 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    + + + + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 615488114f..f9702facff 100644 --- a/tags/index.html +++ b/tags/index.html @@ -12,13 +12,13 @@ - - + + - - +
    + + \ No newline at end of file diff --git a/tags/ledger/index.html b/tags/ledger/index.html index 716b4e292b..7eb34031da 100644 --- a/tags/ledger/index.html +++ b/tags/ledger/index.html @@ -12,12 +12,12 @@ - - + +
    -

    15 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. +

    15 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. In particular, we expanded the ledger API significantly, including lots of governance features. We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. @@ -96,7 +96,7 @@ (a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative of not just an initial state, generate a single random valid block, and then test our properties. The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    - - + + \ No newline at end of file diff --git a/tags/ledger/page/2/index.html b/tags/ledger/page/2/index.html index d44045d202..96dcf0e5a3 100644 --- a/tags/ledger/page/2/index.html +++ b/tags/ledger/page/2/index.html @@ -12,12 +12,12 @@ - - + +
    -

    15 posts tagged with "ledger"

    View All Tags

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, +

    15 posts tagged with "ledger"

    View All Tags

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, built out the new Conway era transaction body (in line with CIP-1694), greatly reduce some problematically large calculations on the epoch boundary, and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. @@ -158,7 +158,7 @@ See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].

  • We have added a few things to the ledger repository to make it conform to the Cardano Engineering Handbook See [pull-3139].
  • - - + + \ No newline at end of file diff --git a/tags/ledger/page/3/index.html b/tags/ledger/page/3/index.html index 68e29de1af..964cff9457 100644 --- a/tags/ledger/page/3/index.html +++ b/tags/ledger/page/3/index.html @@ -12,12 +12,12 @@ - - + +
    -

    15 posts tagged with "ledger"

    View All Tags

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the +

    15 posts tagged with "ledger"

    View All Tags

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the formal ledger repository in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure to the model. In particular, we now have a lot of support for axiomatic set theory. @@ -148,7 +148,7 @@ valid serializations. There is room within CBOR to serialize the same data structure in multiple ways, and it is helpful to have the generators use a wide variety.

  • We have begun re-organizing our test suites.
  • - - + + \ No newline at end of file diff --git a/tags/mithril/index.html b/tags/mithril/index.html index da1d32fb92..066512f1c2 100644 --- a/tags/mithril/index.html +++ b/tags/mithril/index.html @@ -12,13 +12,13 @@ - - + +
    -

    10 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    - - +

    10 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    + + \ No newline at end of file diff --git a/tags/mithril/page/2/index.html b/tags/mithril/page/2/index.html index 25468f665c..1341cd89c5 100644 --- a/tags/mithril/page/2/index.html +++ b/tags/mithril/page/2/index.html @@ -12,13 +12,13 @@ - - + +
    -

    10 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    - - +

    10 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    + + \ No newline at end of file diff --git a/tags/network/index.html b/tags/network/index.html index e269cd5aae..12c9455e3a 100644 --- a/tags/network/index.html +++ b/tags/network/index.html @@ -12,12 +12,12 @@ - - + +
    -

    10 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +

    10 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P functionality.

    We received reports from some SPOs who encountered problems with their non P2P block producing nodes not being able to connect to their P2P relay. Karl Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a @@ -77,7 +77,7 @@ packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol versiones are serialised in cardano-node log (PR #4691).

    - - + + \ No newline at end of file diff --git a/tags/network/page/2/index.html b/tags/network/page/2/index.html index adba9e96bb..9313bc61dc 100644 --- a/tags/network/page/2/index.html +++ b/tags/network/page/2/index.html @@ -12,12 +12,12 @@ - - + +
    -

    10 posts tagged with "network"

    View All Tags

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +

    10 posts tagged with "network"

    View All Tags

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with Robust Optimised Peer Selection also more commonly known as P2P. In the last update, we informed about a performance regression, but it turns out it only affects block producers, and thus we highly advise against running it on @@ -151,7 +151,7 @@ identify and fix a bug in the simulator. The simulation contains 50 nodes. Dashed lines indicate and established connection, while solid lines indicate a TCP connection with fully open TCP window.

    - - + + \ No newline at end of file diff --git a/tags/open-source/index.html b/tags/open-source/index.html index bd2f06dbbc..96914fdbc8 100644 --- a/tags/open-source/index.html +++ b/tags/open-source/index.html @@ -12,12 +12,12 @@ - - + +
    -

    One post tagged with "open-source"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High Level Summary

    - - + + \ No newline at end of file diff --git a/tags/performance-tracing/index.html b/tags/performance-tracing/index.html index ecb4d673a6..2081dc1a47 100644 --- a/tags/performance-tracing/index.html +++ b/tags/performance-tracing/index.html @@ -12,12 +12,12 @@ - - + +
    -

    9 posts tagged with "performance-tracing"

    View All Tags

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +

    9 posts tagged with "performance-tracing"

    View All Tags

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points @@ -31,7 +31,7 @@ the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    · 2 min read
    Serge Kosyrev

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    - - + + \ No newline at end of file diff --git a/tags/performance-tracing/page/2/index.html b/tags/performance-tracing/page/2/index.html index 5501a0bd49..00b5d00692 100644 --- a/tags/performance-tracing/page/2/index.html +++ b/tags/performance-tracing/page/2/index.html @@ -12,19 +12,19 @@ - - + +
    -

    9 posts tagged with "performance-tracing"

    View All Tags

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +

    9 posts tagged with "performance-tracing"

    View All Tags

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Serge Kosyrev

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    - - + + \ No newline at end of file diff --git a/tags/release/index.html b/tags/release/index.html index fa1c5a6e95..170ea0150b 100644 --- a/tags/release/index.html +++ b/tags/release/index.html @@ -12,12 +12,12 @@ - - + +
    -

    5 posts tagged with "release"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +

    5 posts tagged with "release"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking teams gave a green light for the release, and we made decent progress with some CI problem which we encountered on the way (PR #4612). We are also working on peer sharing, making improvements in our testing infrastructure, reducing @@ -75,7 +75,7 @@ provide a basis for assuring the refinement and reification of such systems, from initial concept to operational infrastructure.

    You can download the slides from here.

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    - - + + \ No newline at end of file diff --git a/tags/sre/index.html b/tags/sre/index.html index 1255168fc0..b76953b9c1 100644 --- a/tags/sre/index.html +++ b/tags/sre/index.html @@ -12,12 +12,12 @@ - - + +
    -

    2 posts tagged with "sre"

    View All Tags

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +

    2 posts tagged with "sre"

    View All Tags

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds

    · 4 min read
    Michael Fellinger

    High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra with Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers, we're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte @@ -41,7 +41,7 @@ to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related to token rotation.
    - - + + \ No newline at end of file diff --git a/tags/system-test/index.html b/tags/system-test/index.html index 0f6c20b9f7..01eb54e37b 100644 --- a/tags/system-test/index.html +++ b/tags/system-test/index.html @@ -12,17 +12,17 @@ - - + +
    -

    3 posts tagged with "system-test"

    View All Tags

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +

    3 posts tagged with "system-test"

    View All Tags

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === to === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    - - + + \ No newline at end of file