diff --git a/2022-08-12-network/index.html b/2022-08-12-network/index.html index 79d9b64667d..53d1fa2e7b0 100644 --- a/2022-08-12-network/index.html +++ b/2022-08-12-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 ff18c50fe16..558687ba5f9 100644 --- a/2022-08-12-sre/index.html +++ b/2022-08-12-sre/index.html @@ -12,7 +12,7 @@ - + @@ -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 e2d3bbcfc90..a1d640188ae 100644 --- a/2022-08-31-consensus/index.html +++ b/2022-08-31-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -103,7 +103,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/2022-09-01-ledger/index.html b/2022-09-01-ledger/index.html index 0e33ef3ed90..60a05847c1c 100644 --- a/2022-09-01-ledger/index.html +++ b/2022-09-01-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 0f9facd5873..d5d06ca2910 100644 --- a/2022-09-16-ledger/index.html +++ b/2022-09-16-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -43,7 +43,7 @@ See 3030.
  • We addressed a small issue that came up when integrating the conway era downstream, namely the lack of some serialization instances. See 3022.
  • - + \ 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 26e45299915..5ef8996750f 100644 --- a/2022-09-19-db-sync/index.html +++ b/2022-09-19-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 60ffe283629..deb0be02e88 100644 --- a/2022-09-20-consensus/index.html +++ b/2022-09-20-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -71,7 +71,7 @@ 3k/f)

  • Red: baseline (1.35.3), one peer in topology file

  • Blue: Preliminary version of our prototype, with 10 peers.

    It is slower by about ~30%, but it is not the latest version of the prototype, and the jump interval is very small, making CSJ more of a bottleneck.

  • Technical debt

    - + \ No newline at end of file diff --git a/2022-09-27-network/index.html b/2022-09-27-network/index.html index bc8a9e83db5..e50da316047 100644 --- a/2022-09-27-network/index.html +++ b/2022-09-27-network/index.html @@ -12,7 +12,7 @@ - + @@ -49,7 +49,7 @@ 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).

    - + \ No newline at end of file diff --git a/2022-09-30-ledger/index.html b/2022-09-30-ledger/index.html index 06fcd186ece..227463cc82b 100644 --- a/2022-09-30-ledger/index.html +++ b/2022-09-30-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 b55245c1377..d82e3d90acd 100644 --- a/2022-10-02-consensus/index.html +++ b/2022-10-02-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 9773c1d564a..0278f5ed53b 100644 --- a/2022-10-04-db-sync/index.html +++ b/2022-10-04-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 77004f31d72..e12f68eae0f 100644 --- a/2022-10-04-node-cli-api/index.html +++ b/2022-10-04-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a5442316525..45d53724125 100644 --- a/2022-10-05-consensus/index.html +++ b/2022-10-05-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 ee1d926ed9a..e40d9c8ddec 100644 --- a/2022-10-14-hydra/index.html +++ b/2022-10-14-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 6dda49e819e..8dff5b21b7e 100644 --- a/2022-10-14-ledger/index.html +++ b/2022-10-14-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 9339a7ff6cd..f53a3bdef55 100644 --- a/2022-10-18-consensus/index.html +++ b/2022-10-18-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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).

    - + \ 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 9a9f2d5234c..c44b2f7bf56 100644 --- a/2022-10-19-node-cli-api/index.html +++ b/2022-10-19-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 8e3dfbad5e5..963646460b1 100644 --- a/2022-10-21-hydra/index.html +++ b/2022-10-21-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ 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

    - + \ No newline at end of file diff --git a/2022-10-27-crypto/index.html b/2022-10-27-crypto/index.html index 67010562c34..48db5abf442 100644 --- a/2022-10-27-crypto/index.html +++ b/2022-10-27-crypto/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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

    KES agent

    - + \ No newline at end of file diff --git a/2022-10-28-hydra/index.html b/2022-10-28-hydra/index.html index 57f2476b79b..bf7c15531c8 100644 --- a/2022-10-28-hydra/index.html +++ b/2022-10-28-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ 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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2022-10-28-network/index.html b/2022-10-28-network/index.html index df58f0c3da8..f165f985c3f 100644 --- a/2022-10-28-network/index.html +++ b/2022-10-28-network/index.html @@ -12,7 +12,7 @@ - + @@ -54,7 +54,7 @@ accept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate mithril to cardano-node and take advantage of the ouroboros-network diffusion layer.

    - + \ 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 251038535cd..b3aa39c6af4 100644 --- a/2022-10-28-performance-and-tracing/index.html +++ b/2022-10-28-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 6a2ad458ca4..2bddbe4e3ce 100644 --- a/2022-10-31-open-source/index.html +++ b/2022-10-31-open-source/index.html @@ -12,7 +12,7 @@ - + @@ -39,7 +39,7 @@ repositories are missing the most: Documentation Adoption You can expect we will improve in these metrics in the coming weeks.

    - + \ 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 ecf768a971f..820398bd98e 100644 --- a/2022-11-01-db-sync/index.html +++ b/2022-11-01-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 355d83b509e..92e105baf93 100644 --- a/2022-11-02-ledger/index.html +++ b/2022-11-02-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 56224aea242..78c139ba3c6 100644 --- a/2022-11-02-node-cli-api/index.html +++ b/2022-11-02-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 49c88edfe81..16c22aa5e26 100644 --- a/2022-11-02-release/index.html +++ b/2022-11-02-release/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    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 285160cc9f5..885d4a13413 100644 --- a/2022-11-02-system-test/index.html +++ b/2022-11-02-system-test/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a169d241ebc..3699fe1e1f9 100644 --- a/2022-11-03-embedding-quality/index.html +++ b/2022-11-03-embedding-quality/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    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:

    • 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
    - + \ No newline at end of file diff --git a/2022-11-04-hydra/index.html b/2022-11-04-hydra/index.html index cb1181e1151..4aadbb385ca 100644 --- a/2022-11-04-hydra/index.html +++ b/2022-11-04-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 c0b3998ef64..a3e077b85bf 100644 --- a/2022-11-04-mithril/index.html +++ b/2022-11-04-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a7de7323448..843448b09a5 100644 --- a/2022-11-11-crypto/index.html +++ b/2022-11-11-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 80c58772c81..19fc2cad8ad 100644 --- a/2022-11-11-hydra/index.html +++ b/2022-11-11-hydra/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    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 74ae5a25408..307bf548706 100644 --- a/2022-11-11-ledger/index.html +++ b/2022-11-11-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 85cd97a3224..c6f391b9c13 100644 --- a/2022-11-11-network/index.html +++ b/2022-11-11-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 818a5afb5fe..d3d2413f0ed 100644 --- a/2022-11-16-consensus/index.html +++ b/2022-11-16-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 b7289b69dae..bb81ef73098 100644 --- a/2022-11-16-node-cli-api/index.html +++ b/2022-11-16-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content
    - + \ 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 79e8e04cc49..1835c27fadd 100644 --- a/2022-11-16-performance-and-tracing/index.html +++ b/2022-11-16-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 4709ed12542..9282d7b15a1 100644 --- a/2022-11-18-hydra/index.html +++ b/2022-11-18-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 5ec6218ca60..8f0b5005778 100644 --- a/2022-11-18-mithril/index.html +++ b/2022-11-18-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 62c131c87ed..2bd37e27520 100644 --- a/2022-11-23-ledger/index.html +++ b/2022-11-23-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 414e69c8880..19ccc9b88b2 100644 --- a/2022-11-25-crypto/index.html +++ b/2022-11-25-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 afa72fa53ee..6044d00dcfc 100644 --- a/2022-11-25-hydra/index.html +++ b/2022-11-25-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 9d202c9ebc8..7f052d70727 100644 --- a/2022-11-28-network/index.html +++ b/2022-11-28-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 e50e20494f5..7a0b86b561c 100644 --- a/2022-11-30-consensus/index.html +++ b/2022-11-30-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 6d817920627..230ffcae57a 100644 --- a/2022-11-30-node-cli-api/index.html +++ b/2022-11-30-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 0d4b0f62f32..d5d5c74359d 100644 --- a/2022-11-30-performance-and-tracing/index.html +++ b/2022-11-30-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    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 5fcc9fe8b40..1ec106ba2a5 100644 --- a/2022-12-01-db-sync/index.html +++ b/2022-12-01-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 39db0d9cc8f..a9186fdc6a5 100644 --- a/2022-12-01-mithril/index.html +++ b/2022-12-01-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 613647aa0b4..06e8c611d69 100644 --- a/2022-12-01-system-test/index.html +++ b/2022-12-01-system-test/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    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 0c9e8a72fc8..92b2390c576 100644 --- a/2022-12-02-hydra/index.html +++ b/2022-12-02-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2022-12-09-crypto/index.html b/2022-12-09-crypto/index.html index 7e52bef51d2..9fae312febb 100644 --- a/2022-12-09-crypto/index.html +++ b/2022-12-09-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 90a9052440b..79114aca5a2 100644 --- a/2022-12-09-hydra/index.html +++ b/2022-12-09-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a8039d6b83f..6f7fab6ad15 100644 --- a/2022-12-09-ledger/index.html +++ b/2022-12-09-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 9f3901d3fd6..93111c6d3ad 100644 --- a/2022-12-12-network/index.html +++ b/2022-12-12-network/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    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 e117e33bfe7..786ad7a83c2 100644 --- a/2022-12-14-consensus/index.html +++ b/2022-12-14-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 29ded010c89..f72bd1ec703 100644 --- a/2022-12-14-db-sync/index.html +++ b/2022-12-14-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 7d5e5c96833..522886ee5f4 100644 --- a/2022-12-14-node-cli-api/index.html +++ b/2022-12-14-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 7724169c511..5f0caff1daa 100644 --- a/2022-12-14-performance-and-tracing/index.html +++ b/2022-12-14-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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:

    - + \ No newline at end of file diff --git a/2022-12-15-mithril/index.html b/2022-12-15-mithril/index.html index 964804a57af..5a72660696d 100644 --- a/2022-12-15-mithril/index.html +++ b/2022-12-15-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 dc708627655..9b38cb61e44 100644 --- a/2022-12-16-hydra/index.html +++ b/2022-12-16-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 58590ac3f37..b4c8794fc78 100644 --- a/2022-12-28-node-cli-api/index.html +++ b/2022-12-28-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 208bdabee54..78851409ba1 100644 --- a/2023-01-05-ledger/index.html +++ b/2023-01-05-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 8ecfae1af17..64e6801cf23 100644 --- a/2023-01-06-crypto/index.html +++ b/2023-01-06-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 dd89b0839cb..b75e29a101a 100644 --- a/2023-01-11-consensus/index.html +++ b/2023-01-11-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 c665f049c6c..4c5fa6bafc5 100644 --- a/2023-01-11-performance-and-tracing/index.html +++ b/2023-01-11-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    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 e80d01074f2..5e195bdf26f 100644 --- a/2023-01-12-mithril/index.html +++ b/2023-01-12-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 fedc1741828..d68bc40f4f2 100644 --- a/2023-01-13-hydra/index.html +++ b/2023-01-13-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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
  • Fixed JSON for some logs and smaller build issues reported by new users.
  • What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-01-13-release/index.html b/2023-01-13-release/index.html index f856770f42a..7e161c0ad8e 100644 --- a/2023-01-13-release/index.html +++ b/2023-01-13-release/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    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 c5c2a9c6b0c..7a2e062953b 100644 --- a/2023-01-13-system-test/index.html +++ b/2023-01-13-system-test/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ 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:

    === 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:

    DB-Sync:

    - + \ 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 4d4b6323a88..4a07dd75aca 100644 --- a/2023-01-14-db-sync/index.html +++ b/2023-01-14-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ #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 67ee960be01..0df20f0c650 100644 --- a/2023-01-19-ledger/index.html +++ b/2023-01-19-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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

    - + \ No newline at end of file diff --git a/2023-01-20-crypto/index.html b/2023-01-20-crypto/index.html index 7e84c4511ed..c17b9c2a7a6 100644 --- a/2023-01-20-crypto/index.html +++ b/2023-01-20-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a01fda5d220..38d6f86fa0e 100644 --- a/2023-01-20-hydra/index.html +++ b/2023-01-20-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-01-20-network/index.html b/2023-01-20-network/index.html index 80fc9f020d7..ae6588a7b8a 100644 --- a/2023-01-20-network/index.html +++ b/2023-01-20-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 50795ce3691..f49eee9920d 100644 --- a/2023-01-20-sre/index.html +++ b/2023-01-20-sre/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    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 bb232af1434..887b52e4c04 100644 --- a/2023-01-25-consensus/index.html +++ b/2023-01-25-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 37f2f604757..3bf4c1c1003 100644 --- a/2023-01-25-node-cli-api/index.html +++ b/2023-01-25-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 a8c33b5a4ce..b55767f8722 100644 --- a/2023-01-26-mithril/index.html +++ b/2023-01-26-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 be4efcfe7c7..8b657b04c49 100644 --- a/2023-01-27-hydra/index.html +++ b/2023-01-27-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ information on every PR and also on the website now.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-02-02-ledger/index.html b/2023-02-02-ledger/index.html index a202492c2b9..3021344effc 100644 --- a/2023-02-02-ledger/index.html +++ b/2023-02-02-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 ae5ecdf89a9..4142a06398c 100644 --- a/2023-02-03-crypto/index.html +++ b/2023-02-03-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 6cb1dc93caa..7890bfcc836 100644 --- a/2023-02-03-goedel/index.html +++ b/2023-02-03-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,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/2023-02-03-hydra/index.html b/2023-02-03-hydra/index.html index dd2c46dec54..3b90f88d4e9 100644 --- a/2023-02-03-hydra/index.html +++ b/2023-02-03-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-02-08-consensus/index.html b/2023-02-08-consensus/index.html index dae09130fb8..74f2aa644db 100644 --- a/2023-02-08-consensus/index.html +++ b/2023-02-08-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 0824d6ebd7d..cf0751db3b1 100644 --- a/2023-02-08-node-cli-api/index.html +++ b/2023-02-08-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 e9361ef17f1..2ceb6d6b000 100644 --- a/2023-02-08-performance-and-tracing/index.html +++ b/2023-02-08-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 492420eb9f9..c7b91f47db9 100644 --- a/2023-02-09-mithril/index.html +++ b/2023-02-09-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 af7bf5b9ef5..81d579d5fe5 100644 --- a/2023-02-10-hydra/index.html +++ b/2023-02-10-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-02-17-crypto/index.html b/2023-02-17-crypto/index.html index b68446e4073..32c79aac421 100644 --- a/2023-02-17-crypto/index.html +++ b/2023-02-17-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 934e04e45a0..66206b135db 100644 --- a/2023-02-17-goedel/index.html +++ b/2023-02-17-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -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 5aac0e72248..5f2bdc86fec 100644 --- a/2023-02-17-hydra/index.html +++ b/2023-02-17-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-02-17-ledger/index.html b/2023-02-17-ledger/index.html index c6b262940e0..03f264545da 100644 --- a/2023-02-17-ledger/index.html +++ b/2023-02-17-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 5805110c067..310b497ca90 100644 --- a/2023-02-17-network/index.html +++ b/2023-02-17-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 294579df227..a6ed6d2f5c3 100644 --- a/2023-02-21-db-sync/index.html +++ b/2023-02-21-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -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 c9d717ec71f..ba0fc3d00d5 100644 --- a/2023-02-22-consensus/index.html +++ b/2023-02-22-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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-22-node-cli-api/index.html b/2023-02-22-node-cli-api/index.html index 95ea432e238..18a14b2998b 100644 --- a/2023-02-22-node-cli-api/index.html +++ b/2023-02-22-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ No newline at end of file diff --git a/2023-02-23-mithril/index.html b/2023-02-23-mithril/index.html index f345b024581..6da70e28aa0 100644 --- a/2023-02-23-mithril/index.html +++ b/2023-02-23-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 7930158b1ab..f50acef234c 100644 --- a/2023-02-23-performance-and-tracing/index.html +++ b/2023-02-23-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 5b7ed9b1053..d76fc69689a 100644 --- a/2023-02-24-hydra/index.html +++ b/2023-02-24-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    - + \ No newline at end of file diff --git a/2023-03-02-network/index.html b/2023-03-02-network/index.html index 351f9d24aea..00134e66f00 100644 --- a/2023-03-02-network/index.html +++ b/2023-03-02-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 1704550a016..35ee370d294 100644 --- a/2023-03-03-crypto/index.html +++ b/2023-03-03-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 990793c6255..1c66c0e2ed4 100644 --- a/2023-03-03-goedel/index.html +++ b/2023-03-03-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -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 c9b422cd7e4..9552619d913 100644 --- a/2023-03-03-hydra/index.html +++ b/2023-03-03-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-03-03-ledger/index.html b/2023-03-03-ledger/index.html index 5f7fd98b0c3..b37a7bed98a 100644 --- a/2023-03-03-ledger/index.html +++ b/2023-03-03-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 e0da764e0cf..a5e3a245e2c 100644 --- a/2023-03-08-consensus/index.html +++ b/2023-03-08-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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-node-cli-api/index.html b/2023-03-08-node-cli-api/index.html index 207f52e9fa2..5e0831db257 100644 --- a/2023-03-08-node-cli-api/index.html +++ b/2023-03-08-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Node API & CLI Team Update

    · One min read
    Jordan Millar

    2023-03-08 - 2023-03-21

    High level summary

    General bug fixes and some refactoring

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ 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 ff360b17288..a05ae975aef 100644 --- a/2023-03-08-performance-and-tracing/index.html +++ b/2023-03-08-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ 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 b09adef5a6b..b6d71b50356 100644 --- a/2023-03-09-mithril/index.html +++ b/2023-03-09-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 042ee3ac20d..d53bc6e5846 100644 --- a/2023-03-10-hydra/index.html +++ b/2023-03-10-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-03-16-goedel/index.html b/2023-03-16-goedel/index.html index e58f5d294e6..c87d3caf2a6 100644 --- a/2023-03-16-goedel/index.html +++ b/2023-03-16-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -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-crypto/index.html b/2023-03-17-crypto/index.html index 8a75570f635..e8db2a98151 100644 --- a/2023-03-17-crypto/index.html +++ b/2023-03-17-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready
    - + \ No newline at end of file diff --git a/2023-03-17-hydra/index.html b/2023-03-17-hydra/index.html index ed6000dbec4..cd311e52f5f 100644 --- a/2023-03-17-hydra/index.html +++ b/2023-03-17-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -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

    - + \ No newline at end of file diff --git a/2023-03-17-ledger/index.html b/2023-03-17-ledger/index.html index 2d5ba4e011e..5482d5dc798 100644 --- a/2023-03-17-ledger/index.html +++ b/2023-03-17-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 06cf1ab4615..a9c69dccfb6 100644 --- a/2023-03-21-network/index.html +++ b/2023-03-21-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 58f0593f531..b53d089e86f 100644 --- a/2023-03-22-consensus/index.html +++ b/2023-03-22-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ 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-node-cli-api/index.html b/2023-03-22-node-cli-api/index.html index f45092b56ce..35cbeeb7db7 100644 --- a/2023-03-22-node-cli-api/index.html +++ b/2023-03-22-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content
    - + \ 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 11670c0d09a..eb12c0bb2e1 100644 --- a/2023-03-22-performance-and-tracing/index.html +++ b/2023-03-22-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ 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 dc47986d922..6c917de225b 100644 --- a/2023-03-23-db-sync/index.html +++ b/2023-03-23-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -27,7 +27,7 @@ disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync mainnet in hours. #1379
    - + \ No newline at end of file diff --git a/2023-03-23-mithril/index.html b/2023-03-23-mithril/index.html index 70469fdd052..465a43d0165 100644 --- a/2023-03-23-mithril/index.html +++ b/2023-03-23-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 index 503f5b3f6ae..8fea345c58f 100644 --- a/2023-03-24-hydra/index.html +++ b/2023-03-24-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ 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

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-03-27-system-test/index.html b/2023-03-27-system-test/index.html index eb0566baa4b..2d0ed5654ed 100644 --- a/2023-03-27-system-test/index.html +++ b/2023-03-27-system-test/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    System Test Team Update

    · One min read
    Martin Kourim

    High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    - + \ No newline at end of file diff --git a/2023-03-31-crypto/index.html b/2023-03-31-crypto/index.html index 07c8c7581e4..42ce4610536 100644 --- a/2023-03-31-crypto/index.html +++ b/2023-03-31-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#
    - + \ No newline at end of file diff --git a/2023-03-31-goedel/index.html b/2023-03-31-goedel/index.html index 57abc1bc6e0..747f081368d 100644 --- a/2023-03-31-goedel/index.html +++ b/2023-03-31-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ for internal review and planning next steps of analysis of consensus design refiniments.

    Details

    - + \ No newline at end of file diff --git a/2023-03-31-hydra/index.html b/2023-03-31-hydra/index.html index 2f06cbd01e4..3c477fb241b 100644 --- a/2023-03-31-hydra/index.html +++ b/2023-03-31-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ Head protocol more robust. Besides development, they met with interested people from the community who want to get started collaborating on communication and marketing materials.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-03-31-ledger/index.html b/2023-03-31-ledger/index.html index a6f0607d933..7022c137c6b 100644 --- a/2023-03-31-ledger/index.html +++ b/2023-03-31-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -31,7 +31,7 @@ the new incremental computations. We have two draft PRs up for possibles solution. See pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    - + \ No newline at end of file diff --git a/2023-04-05-consensus/index.html b/2023-04-05-consensus/index.html index 80d2f09ed36..f39cf9f0b3e 100644 --- a/2023-04-05-consensus/index.html +++ b/2023-04-05-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -27,7 +27,7 @@ reviewed.

    On the support front, we got a new Consensus version that can use different fundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was discovered by our QuickCheck property tests.

    - + \ No newline at end of file diff --git a/2023-04-05-node-cli-api/index.html b/2023-04-05-node-cli-api/index.html index 3b2c7d645c8..884ace4a00d 100644 --- a/2023-04-05-node-cli-api/index.html +++ b/2023-04-05-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ No newline at end of file diff --git a/2023-04-05-performance-and-tracing/index.html b/2023-04-05-performance-and-tracing/index.html index ec2877cb8bc..e6890c5272d 100644 --- a/2023-04-05-performance-and-tracing/index.html +++ b/2023-04-05-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is being improved to minimize any friction for the backend user.

    - + \ No newline at end of file diff --git a/2023-04-06-mithril/index.html b/2023-04-06-mithril/index.html index af9003928e3..0e44f6763f8 100644 --- a/2023-04-06-mithril/index.html +++ b/2023-04-06-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843
    - + \ No newline at end of file diff --git a/2023-04-07-hydra/index.html b/2023-04-07-hydra/index.html index e8ad263bfa7..86e9aa9664a 100644 --- a/2023-04-07-hydra/index.html +++ b/2023-04-07-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ the repository, implement a short-term fix for the Rollbacks issue, and draft a Query API ADR.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-04-14-goedel/index.html b/2023-04-14-goedel/index.html index b9f6faa961e..bc76936c3d0 100644 --- a/2023-04-14-goedel/index.html +++ b/2023-04-14-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried out consultancy with other teams and has an opening for an intern.

    Details

    - + \ No newline at end of file diff --git a/2023-04-14-hydra/index.html b/2023-04-14-hydra/index.html index 0e81cb7179d..849d2ccbb83 100644 --- a/2023-04-14-hydra/index.html +++ b/2023-04-14-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ implement a dirt road fix for the rollbacks bug, and explore adding Hydra support to kupo.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-04-17-ledger/index.html b/2023-04-17-ledger/index.html index 0e8bf7ab877..ed74cef0a02 100644 --- a/2023-04-17-ledger/index.html +++ b/2023-04-17-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    - + \ No newline at end of file diff --git a/2023-04-19-consensus/index.html b/2023-04-19-consensus/index.html index bd4f4a334a4..57c67babb92 100644 --- a/2023-04-19-consensus/index.html +++ b/2023-04-19-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -29,7 +29,7 @@ performed an analysis on the number of file descriptors that consensus use. This information can be used by the node operators to check if the number of file descriptors they want to support are enough.

    - + \ No newline at end of file diff --git a/2023-04-19-performance-and-tracing/index.html b/2023-04-19-performance-and-tracing/index.html index 1f88e7641e9..1b5c9e4467e 100644 --- a/2023-04-19-performance-and-tracing/index.html +++ b/2023-04-19-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -31,7 +31,7 @@ profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already been merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    - + \ No newline at end of file diff --git a/2023-04-20-mithril/index.html b/2023-04-20-mithril/index.html index 20a560aa6c4..7b22b1fad6c 100644 --- a/2023-04-20-mithril/index.html +++ b/2023-04-20-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851
    - + \ No newline at end of file diff --git a/2023-04-20-node-cli-api/index.html b/2023-04-20-node-cli-api/index.html index 959a9c808c9..e9496269ae0 100644 --- a/2023-04-20-node-cli-api/index.html +++ b/2023-04-20-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content
    - + \ No newline at end of file diff --git a/2023-04-21-hydra/index.html b/2023-04-21-hydra/index.html index dfbd369381c..b1b402b5d9a 100644 --- a/2023-04-21-hydra/index.html +++ b/2023-04-21-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ forward, the team plans to hold the next monthly review meeting, address a user issue, prepare for the 0.10.0 release, and work on a dirt road fix for the rollbacks issue with proper test coverage.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-04-21-ledger/index.html b/2023-04-21-ledger/index.html index 2d9a60f4e13..86f99fffac0 100644 --- a/2023-04-21-ledger/index.html +++ b/2023-04-21-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ In particular, the conway era now supports Plutus V3. Finally, we made small improvements to the ledger API and now host our Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    - + \ No newline at end of file diff --git a/2023-04-27-hydra/index.html b/2023-04-27-hydra/index.html index 1b1bc8f2307..0199639f1d7 100644 --- a/2023-04-27-hydra/index.html +++ b/2023-04-27-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ #693 and published on the website
  • Groom and addressed user issue #823
  • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
  • Fixed the TUI peer list
  • Updated dependencies to match cardano-node master
  • Conducted a twitter space on Auctions use cases
  • What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-04-28-crypto/index.html b/2023-04-28-crypto/index.html index 11de484d0b0..a7c091b7369 100644 --- a/2023-04-28-crypto/index.html +++ b/2023-04-28-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo
    - + \ No newline at end of file diff --git a/2023-04-28-goedel/index.html b/2023-04-28-goedel/index.html index 24ba89b45a7..cb1517da7b5 100644 --- a/2023-04-28-goedel/index.html +++ b/2023-04-28-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros Praos to a newer foundation.

    Details

    - + \ No newline at end of file diff --git a/2023-04-28-network/index.html b/2023-04-28-network/index.html index 28f19f93be8..c44ccc66a0c 100644 --- a/2023-04-28-network/index.html +++ b/2023-04-28-network/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ support), 1.1.0.0 (documentation fix).
  • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, io-sim#82, io-sim#86, io-sim#87.
  • Renamed a module: io-sim#88.
  • Fixed a failing registerDelayCancellable test: [io-sim#80].
  • Use GitHub merge queue in io-sim repository.
  • CI: download stylish-haskell: io-sim#83.
  • Typed Protocols

    - + \ No newline at end of file diff --git a/2023-05-01-db-sync/index.html b/2023-05-01-db-sync/index.html index d24345ec171..6e8e9e3cf7b 100644 --- a/2023-05-01-db-sync/index.html +++ b/2023-05-01-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ #1380
  • Evaluated risks related to UTXO-HD integration
  • Worked on a feauture request to split the tx_out to an address table #1396
  • Worked on another feauture request to prune the consumed entries from the tx_out table #1398
  • Prepared for CIP-1694 integration
  • - + \ No newline at end of file diff --git a/2023-05-03-consensus/index.html b/2023-05-03-consensus/index.html index de66d1acaff..c64ad1a808e 100644 --- a/2023-05-03-consensus/index.html +++ b/2023-05-03-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -44,7 +44,7 @@ explanation of a question that we had to explain many times about the exact behavior of the hardfork combinator forecast horizon.

    - + \ No newline at end of file diff --git a/2023-05-03-performance-and-tracing/index.html b/2023-05-03-performance-and-tracing/index.html index 1995727c43a..a21a3bc9cb5 100644 --- a/2023-05-03-performance-and-tracing/index.html +++ b/2023-05-03-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along with various quality-of-life improvements, has been merged to master.

    - + \ No newline at end of file diff --git a/2023-05-04-mithril/index.html b/2023-05-04-mithril/index.html index cc2b5fd5d0b..b82be2f2ce6 100644 --- a/2023-05-04-mithril/index.html +++ b/2023-05-04-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
    - + \ No newline at end of file diff --git a/2023-05-05-ledger/index.html b/2023-05-05-ledger/index.html index ab210e938e6..bd30b6491fa 100644 --- a/2023-05-05-ledger/index.html +++ b/2023-05-05-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -30,7 +30,7 @@ but instead generate ledger states and transactions based on constraints. We hit a milestone this week, namely the ability to generate a balanced transaction in the context of a ledger state, all based on our ever growing constaint language.

    Integration work

    Technical debt

    - + \ No newline at end of file diff --git a/2023-05-05-node-cli-api/index.html b/2023-05-05-node-cli-api/index.html index fe6ef659b51..4384a3b4ead 100644 --- a/2023-05-05-node-cli-api/index.html +++ b/2023-05-05-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ No newline at end of file diff --git a/2023-05-12-crypto/index.html b/2023-05-12-crypto/index.html index 6b3b5cf54c2..217b25a2f65 100644 --- a/2023-05-12-crypto/index.html +++ b/2023-05-12-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Crypto Team Update

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10
    - + \ No newline at end of file diff --git a/2023-05-12-goedel/index.html b/2023-05-12-goedel/index.html index 60bd65eea75..4af21c78997 100644 --- a/2023-05-12-goedel/index.html +++ b/2023-05-12-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ and beyond.

    High level summary

    This sprint the team had two paper accepted for ICE 2023 (https://www.discotec.org/2023/ice). The event will be held in Lisbon on 19th June 2023. The papers will be published in EPTCS.

    Details

    - + \ No newline at end of file diff --git a/2023-05-12-hydra/index.html b/2023-05-12-hydra/index.html index ee84f3275d0..2afa4a3f176 100644 --- a/2023-05-12-hydra/index.html +++ b/2023-05-12-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -27,7 +27,7 @@ observation, refining the Hydra explorer ticket, writing ops instructions and troubleshooting, and implementing the first end-to-end journey for external commits.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-05-12-network/index.html b/2023-05-12-network/index.html index 4956fcc9f27..c6d89e78341 100644 --- a/2023-05-12-network/index.html +++ b/2023-05-12-network/index.html @@ -12,7 +12,7 @@ - + @@ -35,7 +35,7 @@ #4542.

    We renamed the consensus startup tracer and make sure it doesn't log ExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    - + \ No newline at end of file diff --git a/2023-05-17-consensus/index.html b/2023-05-17-consensus/index.html index ca7ea07df8e..c335f13aa94 100644 --- a/2023-05-17-consensus/index.html +++ b/2023-05-17-consensus/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    - + \ No newline at end of file diff --git a/2023-05-17-mithril/index.html b/2023-05-17-mithril/index.html index 577f7d2c376..fd03550891d 100644 --- a/2023-05-17-mithril/index.html +++ b/2023-05-17-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920
    - + \ No newline at end of file diff --git a/2023-05-17-performance-and-tracing/index.html b/2023-05-17-performance-and-tracing/index.html index bcff6bcdcea..fb1cfc30ca0 100644 --- a/2023-05-17-performance-and-tracing/index.html +++ b/2023-05-17-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -31,7 +31,7 @@ days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. Also, it was a great opportunity to finally meet in person.

    Offboarding

    Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

    - + \ No newline at end of file diff --git a/2023-05-19-hydra/index.html b/2023-05-19-hydra/index.html index 0b137b6aee4..03710844b0a 100644 --- a/2023-05-19-hydra/index.html +++ b/2023-05-19-hydra/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Hydra Team Update

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing "Option A" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.
    - + \ No newline at end of file diff --git a/2023-05-24-node-cli-api/index.html b/2023-05-24-node-cli-api/index.html index 75346f19e57..a2f3ef91c16 100644 --- a/2023-05-24-node-cli-api/index.html +++ b/2023-05-24-node-cli-api/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Node API & CLI Team Update

    · One min read
    Jordan Millar

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ No newline at end of file diff --git a/2023-05-26-goedel/index.html b/2023-05-26-goedel/index.html index 1ce51aebd51..dcdfcb4789a 100644 --- a/2023-05-26-goedel/index.html +++ b/2023-05-26-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has been working on final revisions for the pre-proceedings versions of two ICE 2023 papers.

    Details

    - + \ No newline at end of file diff --git a/2023-05-26-hydra/index.html b/2023-05-26-hydra/index.html index 00b625d0e2c..01c520d8c86 100644 --- a/2023-05-26-hydra/index.html +++ b/2023-05-26-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ hydra-node's version reporting. Last but not least, they implemented the ability to commit multiple UTxOs to a head at once.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-05-26-ledger/index.html b/2023-05-26-ledger/index.html index fb6c696ad30..8c376cc798e 100644 --- a/2023-05-26-ledger/index.html +++ b/2023-05-26-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ to be able to support DReps, we cleaned up the serialization format, and renamed things to make clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    Improve testing

    Integration work

    Technical debt

    - + \ No newline at end of file diff --git a/2023-05-26-network/index.html b/2023-05-26-network/index.html index fec48e543a2..0c99b657ed3 100644 --- a/2023-05-26-network/index.html +++ b/2023-05-26-network/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ blog post about P2P. We released a new version of packages for cardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks if CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    - + \ No newline at end of file diff --git a/2023-05-31-consensus/index.html b/2023-05-31-consensus/index.html index 8d05dc3cdfa..a74da675421 100644 --- a/2023-05-31-consensus/index.html +++ b/2023-05-31-consensus/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Consensus Team Update

    · One min read
    Damian Nadales

    High level summary

    During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

    On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

    UTxO-HD

    • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

    Support

    • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
    • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.
    - + \ No newline at end of file diff --git a/2023-05-31-performance-and-tracing/index.html b/2023-05-31-performance-and-tracing/index.html index e0fc8315bc2..3e2b75c8e0c 100644 --- a/2023-05-31-performance-and-tracing/index.html +++ b/2023-05-31-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -29,7 +29,7 @@ benchmarking run required us to fine-tune communications with the nomad server.

    Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

    - + \ No newline at end of file diff --git a/2023-06-01-mithril/index.html b/2023-06-01-mithril/index.html index 7c9af8a6a1d..be15f817edd 100644 --- a/2023-06-01-mithril/index.html +++ b/2023-06-01-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512
    - + \ No newline at end of file diff --git a/2023-06-02-hydra/index.html b/2023-06-02-hydra/index.html index 5f1a5c3e87f..50a3fa824fb 100644 --- a/2023-06-02-hydra/index.html +++ b/2023-06-02-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -27,7 +27,7 @@ errors when a transition requirement fails, and to reduce duplication on effets logged content. Last but not least, the team is exploring formal methods and attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-06-08-db-sync/index.html b/2023-06-08-db-sync/index.html index 1ab3f2f7909..98a372c5110 100644 --- a/2023-06-08-db-sync/index.html +++ b/2023-06-08-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4
  • Added a process which fixes in place scripts with wrong CBOR serialisation. https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17
  • Prepared a tag 13.1.1.2 which is tested and ready to release. It contains many of the above.
  • - + \ No newline at end of file diff --git a/2023-06-08-goedel/index.html b/2023-06-08-goedel/index.html index 9bc69d288db..e8341caa46a 100644 --- a/2023-06-08-goedel/index.html +++ b/2023-06-08-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ pre-proceedings versions of two ICE 2023 papers.

    Details

    - + \ No newline at end of file diff --git a/2023-06-08-sre/index.html b/2023-06-08-sre/index.html index 82b62c567a7..4f14982f6e3 100644 --- a/2023-06-08-sre/index.html +++ b/2023-06-08-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

    Lower level summary

    Bitte

    • Equinix bare metal capability was added to bitte: bitte-pull-194
    • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

    Bitte-cells

    Cardano-graphql

    Cardano-node

    Cardano-ops

    Cardano-world

    Ci-ops

    • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

    Ci-world

    Cicero

    • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

    Iohk-nix

    Openziti

    - + \ No newline at end of file diff --git a/2023-06-08-system-test/index.html b/2023-06-08-system-test/index.html index 06552d44cf7..44e54993d7e 100644 --- a/2023-06-08-system-test/index.html +++ b/2023-06-08-system-test/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    System Test Team Update

    · 2 min read
    Martin Kourim

    High level summary

    Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

    Workstreams

    Full list of closed PRs

    Framework improvements:

    • Make cardano-submit-api REST API service available and run corresponding regression tests by default
    • Update cabal build testing for 8.0.0
    • Add support for testing governance SPO poll
    • Use Poetry for Python dependency management
    • Check status of known GH issues during tests runtime and finish the test accordingly
    • Generate topology files with both IP addresses and DNS names
    • Log issues like failure to start a cluster instance and report errors during tests runtime

    Testing improvements

    • Add rollback testing:
      1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
      2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
    • Add tests to governance SPO poll commands

    Node:

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    - + \ No newline at end of file diff --git a/2023-06-09-crypto/index.html b/2023-06-09-crypto/index.html index 53dbc3c71d9..e191e5a9425 100644 --- a/2023-06-09-crypto/index.html +++ b/2023-06-09-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Crypto Team Update

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)
    - + \ No newline at end of file diff --git a/2023-06-09-developer-experience/index.html b/2023-06-09-developer-experience/index.html index 25e729ab735..a25875b1051 100644 --- a/2023-06-09-developer-experience/index.html +++ b/2023-06-09-developer-experience/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Developer Experience Update

    · 3 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    - + \ No newline at end of file diff --git a/2023-06-09-hydra/index.html b/2023-06-09-hydra/index.html index c6d9b3e16d4..996eec991e3 100644 --- a/2023-06-09-hydra/index.html +++ b/2023-06-09-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ performance on their benchmarks.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-06-12-network/index.html b/2023-06-12-network/index.html index 1b511445afb..ddf9e319cd1 100644 --- a/2023-06-12-network/index.html +++ b/2023-06-12-network/index.html @@ -12,7 +12,7 @@ - + @@ -37,7 +37,7 @@ package description file, #101 .

    We also helped to debug a deadlock when using named pipes on Windows in the new RawBearer API. The API is being used to store secret keys only in memory. The PR #4395 is under review.

    We also have two more PRs which are under review:

    - + \ No newline at end of file diff --git a/2023-06-14-consensus/index.html b/2023-06-14-consensus/index.html index d1a98486ff0..86e2a781069 100644 --- a/2023-06-14-consensus/index.html +++ b/2023-06-14-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

    On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. We managed to run a node again with UTxO-HD enabled. We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

    Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

    - + \ No newline at end of file diff --git a/2023-06-14-performance-and-tracing/index.html b/2023-06-14-performance-and-tracing/index.html index 4a18b9d4dbb..d957b33b3eb 100644 --- a/2023-06-14-performance-and-tracing/index.html +++ b/2023-06-14-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new infrastructure to the existing ones, including determining reproducibility and variance.

    - + \ No newline at end of file diff --git a/2023-06-15-mithril/index.html b/2023-06-15-mithril/index.html index a1abb27edc6..0cfa8ce0f3c 100644 --- a/2023-06-15-mithril/index.html +++ b/2023-06-15-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979
    - + \ No newline at end of file diff --git a/2023-06-16-hydra/index.html b/2023-06-16-hydra/index.html index 524d6a42999..663b30a9de9 100644 --- a/2023-06-16-hydra/index.html +++ b/2023-06-16-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ experiment operating a head on mainnet. They collected several bugs and issues and worked on fixing them. Now the team is soon to release a new version, 0.11.0, which comes with a lot of improvements and bug fixes.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-06-23-goedel/index.html b/2023-06-23-goedel/index.html index d774184b16d..93ab90ccbba 100644 --- a/2023-06-23-goedel/index.html +++ b/2023-06-23-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    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 teams presented two papers at ICE 2023.

    Details

    - + \ No newline at end of file diff --git a/2023-06-23-hydra/index.html b/2023-06-23-hydra/index.html index 634f95f4049..addcde44c95 100644 --- a/2023-06-23-hydra/index.html +++ b/2023-06-23-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ is now evolved into fully addressing #728
  • Fuel marking is now optional as one can now commit from an external wallet #924
  • Add flag option to display node version on tui #934
  • What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-06-23-network/index.html b/2023-06-23-network/index.html index 80e69d61aaa..6be3ac56981 100644 --- a/2023-06-23-network/index.html +++ b/2023-06-23-network/index.html @@ -12,7 +12,7 @@ - + @@ -37,7 +37,7 @@ peers DNS names are resolved concurrently, and at most 2 local root peer DNS names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the consensus team, see #4608.

    - + \ No newline at end of file diff --git a/2023-06-23-sre/index.html b/2023-06-23-sre/index.html index 662e7a4a688..b8738ba90c0 100644 --- a/2023-06-23-sre/index.html +++ b/2023-06-23-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

    • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
    • Cardano Sanchonet environment was stood up to test Conway era functionality
    • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
    • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

    Lower level summary

    Cardano-node

    • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

    Cardano-ops

    Cardano-world

    Ci-ops

    Ci-world

    • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

    Devx-ci

    • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

    Iohk-nix

    - + \ No newline at end of file diff --git a/2023-06-28-consensus/index.html b/2023-06-28-consensus/index.html index 66ac31393e7..13826238415 100644 --- a/2023-06-28-consensus/index.html +++ b/2023-06-28-consensus/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

    The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

    Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

    Genesis

    • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

    • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

    UTxO-HD

    • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
    • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
    • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
    - + \ No newline at end of file diff --git a/2023-06-28-performance-and-tracing/index.html b/2023-06-28-performance-and-tracing/index.html index 0157b790c36..1760571f806 100644 --- a/2023-06-28-performance-and-tracing/index.html +++ b/2023-06-28-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Performance & tracing update

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
    • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
    • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
    • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

    Low level overview

    Benchmarking

    The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

    Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

    Infrastructure

    The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

    Tracing

    The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

    Nomad backend

    With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

    Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

    - + \ No newline at end of file diff --git a/2023-06-29-mithril/index.html b/2023-06-29-mithril/index.html index 714075c93fd..ed989d5d954 100644 --- a/2023-06-29-mithril/index.html +++ b/2023-06-29-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 3 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973
    - + \ No newline at end of file diff --git a/2023-06-30-hydra/index.html b/2023-06-30-hydra/index.html index 7cc82c2c82a..1eb643a3bf3 100644 --- a/2023-06-30-hydra/index.html +++ b/2023-06-30-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ the path forward for L2 protocol improvements and explored an alternative CI approach using cabal instead of nix. Additionally, they released version 0.11.0, marking another milestone in the projects development.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-07-04-db-sync/index.html b/2023-07-04-db-sync/index.html index 15ea72fce8f..31740b4d687 100644 --- a/2023-07-04-db-sync/index.html +++ b/2023-07-04-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ This fixes many other issues and simplifies the logic in db-sync #1447
  • A number of fixes and improvements in ci, docker, devx, docs #1436#1442#1448#1452
  • - + \ No newline at end of file diff --git a/2023-07-07-crypto/index.html b/2023-07-07-crypto/index.html index abddb0003de..7a54c52da1c 100644 --- a/2023-07-07-crypto/index.html +++ b/2023-07-07-crypto/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    Crypto Team Update

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939. Included benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.
    - + \ No newline at end of file diff --git a/2023-07-07-goedel/index.html b/2023-07-07-goedel/index.html index 4d379cadd4f..38f169472d7 100644 --- a/2023-07-07-goedel/index.html +++ b/2023-07-07-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ and beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers for publication in EPTCS, formalising concensus, and investigating chain sync.

    Details

    - + \ No newline at end of file diff --git a/2023-07-07-hydra/index.html b/2023-07-07-hydra/index.html index b637fc075c0..f06ae006290 100644 --- a/2023-07-07-hydra/index.html +++ b/2023-07-07-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark publishing on the website.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-07-07-sre/index.html b/2023-07-07-sre/index.html index c71c1f01fda..c1ad38bc29b 100644 --- a/2023-07-07-sre/index.html +++ b/2023-07-07-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    - + \ No newline at end of file diff --git a/2023-07-12-consensus/index.html b/2023-07-12-consensus/index.html index 7bc1558a952..8f6ebc0c3f1 100644 --- a/2023-07-12-consensus/index.html +++ b/2023-07-12-consensus/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Consensus Team Update

    · One min read
    Damian Nadales

    High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    - + \ No newline at end of file diff --git a/2023-07-12-performance-and-tracing/index.html b/2023-07-12-performance-and-tracing/index.html index eddaadb4339..df5dc678200 100644 --- a/2023-07-12-performance-and-tracing/index.html +++ b/2023-07-12-performance-and-tracing/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Performance & tracing update

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    - + \ No newline at end of file diff --git a/2023-07-13-mithril/index.html b/2023-07-13-mithril/index.html index 39155a6c14f..4f0e28a3e04 100644 --- a/2023-07-13-mithril/index.html +++ b/2023-07-13-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023
    - + \ No newline at end of file diff --git a/2023-07-14-hydra/index.html b/2023-07-14-hydra/index.html index 86124182a9c..1d752ab2b7f 100644 --- a/2023-07-14-hydra/index.html +++ b/2023-07-14-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ light of new changes. They also took the time to revisit their goals and product plans for the next quarter as well as doing some security fixes related to multisignatures.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-07-20-goedel/index.html b/2023-07-20-goedel/index.html index 3707490b175..d561b7446cf 100644 --- a/2023-07-20-goedel/index.html +++ b/2023-07-20-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ thorn calculus

  • Final pre-publication steps for ICE 2023 papers

  • Developing approach for specification and verification of mini-protocols

  • Started work on porting the DeltaQ framework to a new, more concrete backend based on piecewise-polynomials

  • - + \ No newline at end of file diff --git a/2023-07-21-hydra/index.html b/2023-07-21-hydra/index.html index 3ec4d3c376c..c5e52af8e3c 100644 --- a/2023-07-21-hydra/index.html +++ b/2023-07-21-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ slightly smaller plutus scripts.

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-07-21-ledger/index.html b/2023-07-21-ledger/index.html index 1ed27509c43..3d88a967a2d 100644 --- a/2023-07-21-ledger/index.html +++ b/2023-07-21-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

    What we achieved

    What is currently in progress

    - + \ No newline at end of file diff --git a/2023-07-21-sre/index.html b/2023-07-21-sre/index.html index 0212218224c..5bc33b5725e 100644 --- a/2023-07-21-sre/index.html +++ b/2023-07-21-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    - + \ No newline at end of file diff --git a/2023-07-26-consensus/index.html b/2023-07-26-consensus/index.html index eaf3f288d30..3839baf6b52 100644 --- a/2023-07-26-consensus/index.html +++ b/2023-07-26-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    Consensus Team Update

    · One min read
    Damian Nadales

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. We also focused on completing tracing support for UTxO-HD in cardano-node. Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    - + \ No newline at end of file diff --git a/2023-07-27-mithril/index.html b/2023-07-27-mithril/index.html index 44186436cc5..f2785df2d3f 100644 --- a/2023-07-27-mithril/index.html +++ b/2023-07-27-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
    - + \ No newline at end of file diff --git a/2023-07-28-hydra/index.html b/2023-07-28-hydra/index.html index 1be23d9376c..b7fb8c03751 100644 --- a/2023-07-28-hydra/index.html +++ b/2023-07-28-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ Furthermore, the team added the ability to read protocol parameters via the API and fixed the CI workflows to support pull requests from forks of external contributors, streamlining the development process for community involvement.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-07-31-network/index.html b/2023-07-31-network/index.html index 23ed7f0d212..e6c1ab32cfe 100644 --- a/2023-07-31-network/index.html +++ b/2023-07-31-network/index.html @@ -12,7 +12,7 @@ - + @@ -32,7 +32,7 @@ The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. See ouroboros-network#4575, cardano-node#5409.

    - + \ No newline at end of file diff --git a/2023-08-04-crypto/index.html b/2023-08-04-crypto/index.html index 3d9a027c083..f0fab6f348e 100644 --- a/2023-08-04-crypto/index.html +++ b/2023-08-04-crypto/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    Crypto Team Update

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
    - + \ No newline at end of file diff --git a/2023-08-04-goedel/index.html b/2023-08-04-goedel/index.html index 18fdf2f2cb7..d4f56f9e284 100644 --- a/2023-08-04-goedel/index.html +++ b/2023-08-04-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ performance modelling prototype.

    Details

    - + \ No newline at end of file diff --git a/2023-08-04-hydra/index.html b/2023-08-04-hydra/index.html index acfa15c4c30..a7435f28b0f 100644 --- a/2023-08-04-hydra/index.html +++ b/2023-08-04-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ submit-transaction endpoint to the API.

    In addition to project-related progress, the team actively engaged in community reviews for several catalyst proposals related to Hydra and Mithril, contributing to the wider Cardano ecosystem.

    Finally, the full report for the month of July was also published here.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-08-04-ledger/index.html b/2023-08-04-ledger/index.html index 13749ff9f71..247b353403d 100644 --- a/2023-08-04-ledger/index.html +++ b/2023-08-04-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ particular, the main focus was directed towards solidifying transaction related types and their binary representation. We also directed some effort into unblocking Plutus team with respect to PlutusV3 integration.

    Low level summary

    Conway progress

    Testing

    Bugfixes

    Plutus integration

    Improvements and releasing

    - + \ No newline at end of file diff --git a/2023-08-04-network/index.html b/2023-08-04-network/index.html index 1e947f26322..7070c2d8509 100644 --- a/2023-08-04-network/index.html +++ b/2023-08-04-network/index.html @@ -12,7 +12,7 @@ - + @@ -38,7 +38,7 @@ see cardano-node#5421.

    I didn't mention that in the previous update, so here it goes: in the previous sprint we released ouroboros-network-0.8.2.0 and ouroboros-network-framework-0.7.0.0.

    - + \ No newline at end of file diff --git a/2023-08-04-performance-and-tracing/index.html b/2023-08-04-performance-and-tracing/index.html index 1766dbd92d2..82c9e5d04e8 100644 --- a/2023-08-04-performance-and-tracing/index.html +++ b/2023-08-04-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -25,7 +25,7 @@ versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the nomad backend - which will be a big step towards production use.

    - + \ No newline at end of file diff --git a/2023-08-04-sre/index.html b/2023-08-04-sre/index.html index 561da6bb82a..f4c9e34b1ae 100644 --- a/2023-08-04-sre/index.html +++ b/2023-08-04-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    - + \ No newline at end of file diff --git a/2023-08-09-consensus/index.html b/2023-08-09-consensus/index.html index 992ceea7abf..03159503ae4 100644 --- a/2023-08-09-consensus/index.html +++ b/2023-08-09-consensus/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
    - + \ No newline at end of file diff --git a/2023-08-10-mithril/index.html b/2023-08-10-mithril/index.html index 95baf78dd27..96737a61d50 100644 --- a/2023-08-10-mithril/index.html +++ b/2023-08-10-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125
    - + \ No newline at end of file diff --git a/2023-08-11-hydra/index.html b/2023-08-11-hydra/index.html index 2f40d6116c0..deb69bf710d 100644 --- a/2023-08-11-hydra/index.html +++ b/2023-08-11-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ preparations for the Hydra master-class.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-08-11-performance-and-tracing/index.html b/2023-08-11-performance-and-tracing/index.html index 6a3f7eafe7d..b2cdc72a664 100644 --- a/2023-08-11-performance-and-tracing/index.html +++ b/2023-08-11-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

    Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

    Nomad backend

    The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    - + \ No newline at end of file diff --git a/2023-08-17-crypto/index.html b/2023-08-17-crypto/index.html index f06eeacba00..8e7415a72a5 100644 --- a/2023-08-17-crypto/index.html +++ b/2023-08-17-crypto/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Crypto Team Update

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Include MuSig2 description in cryptography handbook
    • kes_agent: Finilising test and CI. Working on KES binary

    Low level summary

    Mithril

    • Full Node Verifier merged #939.

    MuSig2

    • Started describing MuSig2 to include it as part of the cryptography handbook

    Sidechains

    • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

    KES agent

    • KES agent is ready:
      • CI ready #19
      • Receipt confirmation message #20
      • KES agent binary ready #21
      • Control client implemented #11
    - + \ No newline at end of file diff --git a/2023-08-17-db-sync/index.html b/2023-08-17-db-sync/index.html index 3782cf0ff58..6cd1eceaf8a 100644 --- a/2023-08-17-db-sync/index.html +++ b/2023-08-17-db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ #1466
  • Added support for ghc-9.6 #1479
  • Tech debt: improve exceptions #1471
  • - + \ No newline at end of file diff --git a/2023-08-18-goedel/index.html b/2023-08-18-goedel/index.html index e5d886350ff..3468c0b5e91 100644 --- a/2023-08-18-goedel/index.html +++ b/2023-08-18-goedel/index.html @@ -12,7 +12,7 @@ - + @@ -27,7 +27,7 @@ Louvain in the Autumn

  • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part of a 5th year Masters course in the Autumn

  • Adapted original DeltaQ implementation to the new typeclasses and wrote property tests for its algebraic laws

  • - + \ No newline at end of file diff --git a/2023-08-18-hydra/index.html b/2023-08-18-hydra/index.html index 18ca07c0ce1..190bf6ee6ed 100644 --- a/2023-08-18-hydra/index.html +++ b/2023-08-18-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ details on the Hydra announcements channel on the IOG discord server.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-08-18-ledger/index.html b/2023-08-18-ledger/index.html index b9b8a1f24dd..c3fc461863f 100644 --- a/2023-08-18-ledger/index.html +++ b/2023-08-18-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ the governance state, such as placement of votes, submission of governance proposals, inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the ability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    Testing

    Improvements and releasing

    - + \ No newline at end of file diff --git a/2023-08-18-network/index.html b/2023-08-18-network/index.html index 822e9dca23d..382de8a6e14 100644 --- a/2023-08-18-network/index.html +++ b/2023-08-18-network/index.html @@ -12,7 +12,7 @@ - + @@ -40,7 +40,7 @@ code & design review.

    Galois Review

    Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

    scoping, requirements, and getting started.

    CI

    We added a nightly run for GitHub actions and made the GitHub actions test be executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

    We also added GitHub's dependabot ouroboros-network#4650.

    Bootstrap Peers

    We settled on implementation design of bootstrap peers which is being implemented, ouroboros-network#4615.

    - + \ No newline at end of file diff --git a/2023-08-18-sre/index.html b/2023-08-18-sre/index.html index 8754a536803..5d856edce31 100644 --- a/2023-08-18-sre/index.html +++ b/2023-08-18-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check
    - + \ No newline at end of file diff --git a/2023-08-23-consensus/index.html b/2023-08-23-consensus/index.html index 4905f6f71a7..c485efebb01 100644 --- a/2023-08-23-consensus/index.html +++ b/2023-08-23-consensus/index.html @@ -12,14 +12,14 @@ - +
    Skip to main content

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:
    - + \ No newline at end of file diff --git a/2023-08-24-performance-and-tracing/index.html b/2023-08-24-performance-and-tracing/index.html index 7a0dc794f44..45a81835647 100644 --- a/2023-08-24-performance-and-tracing/index.html +++ b/2023-08-24-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    Performance & tracing update

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
    • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
    • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
    • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

    Low level overview

    Benchmarking

    We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

    Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

    Infrastructure

    As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

    Tracing

    The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

    The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

    Nomad backend

    The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

    - + \ No newline at end of file diff --git a/2023-08-25-hydra/index.html b/2023-08-25-hydra/index.html index a74ebe0f77d..c9d4c9134ae 100644 --- a/2023-08-25-hydra/index.html +++ b/2023-08-25-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ and latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve hydra-node availability, as it becomes stuck very easily and that leads to a bad user experience.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-08-28-mithril/index.html b/2023-08-28-mithril/index.html index 37d2d7abb67..9b1cfdcfcde 100644 --- a/2023-08-28-mithril/index.html +++ b/2023-08-28-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115
    - + \ No newline at end of file diff --git a/2023-09-01-hydra/index.html b/2023-09-01-hydra/index.html index d7ff1ce3ab9..936258e9653 100644 --- a/2023-09-01-hydra/index.html +++ b/2023-09-01-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ improved the user experience by allowing a commit using inline datums. Discussed the off-chain governance with researchers and improved internal model tests.

    What did the team achieve this week

    What are the goals of next week

    - + \ No newline at end of file diff --git a/2023-09-01-ledger/index.html b/2023-09-01-ledger/index.html index d2892aa08c6..27f98f8b41e 100644 --- a/2023-09-01-ledger/index.html +++ b/2023-09-01-ledger/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Ledger Team Update

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Broadly speaking the Ledger team focused on a few main areas of Conway era:

    • Creation of voting state snapshots in order to correctly delay ratification for one epoch
    • Validation of the Governance Actions sequencing and ordering
    • Proper expiry of DReps and Proposal Procedures
    • Expanding Conway Genesis functionality
    • Utilization of some of the new Protocol Parameters in ledger validation rules

    Low level summary

    Conway era

    • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
    • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
    • pull-3651 - Inactive DReps
    • pull-3664 - Track proposal expiry
    • pull-3668 - Add min committee size predicate to NewCommittee
    • pull-3669 - Add Proposal deposit check against PParam
    • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
    • pull-3635 - Make snapshots of GovActionsState
    • pull-3670 - Validate previously enacted govAction
    • pull-3694 - Improve error reporting on the positive coin decoder
    • pull-3674 - Added RATIFY thresholds
    • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
    • pull-3688 - DRep Refunds and update evalTransactionBalance

    Improvements and releasing

    • pull-3677 - Minor patch that fixes the DRep distribution computation
    • pull-3686 - Post patch release fixup
    • pull-3695 - Changelog for cardano-node-8.3 release
    • pull-3683 - Add two new bench mark programs

    Testing

    - + \ No newline at end of file diff --git a/2023-09-01-network/index.html b/2023-09-01-network/index.html index 2ecd0c9abaf..83c22504863 100644 --- a/2023-09-01-network/index.html +++ b/2023-09-01-network/index.html @@ -12,7 +12,7 @@ - + @@ -47,7 +47,7 @@ ouroboros-network-#4661 (in review).

    Peer Sharing

    Async Demotion Test Fix

    - + \ No newline at end of file diff --git a/2023-09-01-sre/index.html b/2023-09-01-sre/index.html index 0adf16cb2ef..711a98ce18f 100644 --- a/2023-09-01-sre/index.html +++ b/2023-09-01-sre/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    SRE Team Update

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- "Content Addressed Packages"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    - + \ No newline at end of file diff --git a/2023-09-06-consensus/index.html b/2023-09-06-consensus/index.html index da969cd7615..df1f15cd65b 100644 --- a/2023-09-06-consensus/index.html +++ b/2023-09-06-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@
    Skip to main content

    Consensus Team Update

    · 2 min read
    Damian Nadales

    High level summary

    We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

    UTxO-HD

    • We ran the first successful system-level benchmarks for UTxO-HD (see #203). We observed a factor 12 regression in the forging performance, which we will have to address.

    • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.

    Tech debt

    • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

    Support

    • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
    • We helped to investigate a protocol version bug in Sanchonet (see #3491).
    • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
    - + \ No newline at end of file diff --git a/2023-09-07-mithril/index.html b/2023-09-07-mithril/index.html index f592047b646..4da6cfaf58d 100644 --- a/2023-09-07-mithril/index.html +++ b/2023-09-07-mithril/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Mithril Team Update

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174
    - + \ No newline at end of file diff --git a/2023-09-07-performance-and-tracing/index.html b/2023-09-07-performance-and-tracing/index.html index 60ff893f112..3722e6cfb64 100644 --- a/2023-09-07-performance-and-tracing/index.html +++ b/2023-09-07-performance-and-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

    Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

    Nomad backend

    The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

    - + \ No newline at end of file diff --git a/2023-09-08-hydra/index.html b/2023-09-08-hydra/index.html index d6b009b8c99..8516e9c0d77 100644 --- a/2023-09-08-hydra/index.html +++ b/2023-09-08-hydra/index.html @@ -12,7 +12,7 @@ - + @@ -35,7 +35,7 @@ #1028

    What are the goals of next week

    - + \ No newline at end of file diff --git a/404.html b/404.html index c52212313eb..de05138ca49 100644 --- a/404.html +++ b/404.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    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 e7264d97109..7a156756b1f 100644 --- a/archive/index.html +++ b/archive/index.html @@ -12,13 +12,13 @@ - +
    Skip to main content

    Archive

    Archive

    2022

    2023

    - + \ No newline at end of file diff --git a/assets/js/5296f864.3beefaf0.js b/assets/js/5296f864.f4a800ea.js similarity index 53% rename from assets/js/5296f864.3beefaf0.js rename to assets/js/5296f864.f4a800ea.js index 0484fab9e82..349dff54763 100644 --- a/assets/js/5296f864.3beefaf0.js +++ b/assets/js/5296f864.f4a800ea.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});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 i(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({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(s,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/cardano-updates/quarterly/2023-Q2-sre",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"sre",permalink:"/cardano-updates/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/cardano-updates/quarterly/2023-04-25-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});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 i(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({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(s,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/cardano-updates/quarterly/2023-Q2-sre",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"sre",permalink:"/cardano-updates/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/cardano-updates/quarterly/2023-04-25-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/57e0ab98.8acb71d7.js b/assets/js/57e0ab98.8acb71d7.js new file mode 100644 index 00000000000..2c80751d62d --- /dev/null +++ b/assets/js/57e0ab98.8acb71d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20779],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/cardano-updates/quarterly/2023-Q2-network",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"network",permalink:"/cardano-updates/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/57e0ab98.fdd5eb0a.js b/assets/js/57e0ab98.fdd5eb0a.js deleted file mode 100644 index f88454f730b..00000000000 --- a/assets/js/57e0ab98.fdd5eb0a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20779],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/cardano-updates/quarterly/2023-Q2-network",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"network",permalink:"/cardano-updates/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/6b51f988.09a9acf5.js b/assets/js/6b51f988.09a9acf5.js deleted file mode 100644 index a7322515c3c..00000000000 --- a/assets/js/6b51f988.09a9acf5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24384],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},p),{},{components:n})):a.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/cardano-updates/quarterly/2023-Q2-consensus",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"consensus",permalink:"/cardano-updates/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],p={toc:u},c="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(c,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/6b51f988.cc3791cc.js b/assets/js/6b51f988.cc3791cc.js new file mode 100644 index 00000000000..18e6c48e932 --- /dev/null +++ b/assets/js/6b51f988.cc3791cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24384],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},p),{},{components:n})):a.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/cardano-updates/quarterly/2023-Q2-consensus",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"consensus",permalink:"/cardano-updates/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],p={toc:u},c="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(c,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/ac8a5a87.86749050.js b/assets/js/ac8a5a87.86749050.js deleted file mode 100644 index 1e21662524b..00000000000 --- a/assets/js/ac8a5a87.86749050.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25853],{33480:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-Q2-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md","source":"@site/quarterly/2023-Q2-consensus.md","title":"Consensus Q2 2023 Update","description":"2023-04 -- 2023-06","date":"2023-09-08T13:25:06.000Z","formattedDate":"September 8, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":4.47,"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 Q2 2023 Update","slug":"2023-Q2-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"nextItem":{"title":"Network Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-network"}},"content":"## 2023-04 -- 2023-06\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished a major prototype refactoring, which includes:\\n - A better and finer grained DB lock mechanism.\\n - Elimination of race conditions.\\n - Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.\\n - Architectural simplifications and performance improvements.\\n- We implemented a new package to support db-sync integration with UTxO-HD.\\n- We ran another set of ad-hoc benchmarks:\\n - We uncovered a performance regression on the Network component when using `GHC-9.2/9.4`.\\n - The synchronization and replay speed are as expected.\\n - However, we uncovered memory consumption issues (see figure below).\\n - The in-memory backend is consuming more memory than the baseline.\\n - The LMDB backend shows an unexpected memory usage peak.\\n - Investigation on these issues is ongoing.\\n- We integrated the latest changes in `main` branch.\\n - This required a re-design of the mempool to include the mempool fairness\\n improvement.\\n\\n![](/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png)\\n\\n#### Genesis\\n\\n- The Genesis work for this PI focused on an high-priority issue from the IOG Researchers\' feedback on the proposal.\\n - This particular question was not anticipated when the Q2 PI was planned.\\n - As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.\\n - That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.\\n- The IOG Researchers\' feedback on the design was very valuable. It had two primary effects.\\n- Outcome 1: We re-introduced distinct behaviors when the node is \\"syncing\\" versus when it is \\"caught up\\".\\n - This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.\\n - The additional design complexity is relatively small.\\n- Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.\\n - The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.\\n - All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.\\n - Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.\\n - The primary invention was a model for bounding how much benefit the adversary\'s long-range attack could possibly gain from Praos\'s natural short forks.\\n- Relevant questions that the IOG Researchers are still assessing.\\n - These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.\\n - Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?\\n - Question 2: what is the upper bound on how much grinding can improve the adversary\'s leader schedule within some Genesis window?\\n\\n#### Support\\n- We performed an analysis on number of file descriptors used by Consensus, this\\n information can be used by the node operators to check if the number of file\\n descriptors they want to support are enough, thus improving the user (eg node\\n operator) experience.\\n- We implemented a mempool fairness improvement, by which transactions are\\n guaranteed to be processed irrespective of their size.\\n\\n#### Technical debt\\n\\n- We fixed a bug in followers logic, which was discovered by our `QuickCheck`\\nproperty tests.\\n- We created an [immutable DB\\n server](https://github.com/input-output-hk/ouroboros-consensus/pull/68). This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.\\n- We created a [`db-truncater`](https://github.com/input-output-hk/ouroboros-consensus/pull/70) tool, which can be used in disaster recovery and benchmarking scenarios.\\n- We created a [benchmarks comparison tool](https://github.com/input-output-hk/ouroboros-consensus/pull/161) that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance *improvements* introduced by the Ledger team in version `0.6.0.0` of Consensus wrt version `0.5.0.0`.\\n\\n![](/images/consensus/2023-Q2-beacon-graph.png)\\n\\n#### Fostering collaboration\\n\\n- We released `fs-sim` as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.\\n- We migrated the consensus code to a [new repository](https://github.com/input-output-hk/ouroboros-consensus), splitting\\nit from the `ouroboros-network` repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).\\n- We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).\\n- We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- We will [get UTxO-HD ready for handover](https://github.com/input-output-hk/ouroboros-consensus/issues/28).\\n\\n#### Genesis\\n\\n- We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work."},{"id":"2023-Q2-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md","source":"@site/quarterly/2023-Q2-network.md","title":"Network Q2 2023 Update","description":"2023-04 - 2023-06","date":"2023-09-08T13:25:06.000Z","formattedDate":"September 8, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":5.145,"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 Q2 2023 Update","slug":"2023-Q2-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-consensus"},"nextItem":{"title":"SRE Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-sre"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\n#### Eclipse Evasion\\n\\nWe finalised the design of eclipse evasion and implemented its mechanism which\\nrelays on connectivity to _big ledger peers_. _Big ledger peers_ are the\\nlargest ledger peers which accumulate 90% of stake (currently there are less\\nthan 1000 of them). The outbound governor has new targets for _known_,\\n_established_ and _active_ big ledger peers which work in a similar way that\\nsuch targets work for ledger peers. The [ouroboros-network#4662] PR is\\ncurrently in review.\\n\\nAs part of this work we also identified a bug which would prevent a node to\\nconnect to itself. Such connections are not easily detectable and are expected\\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\\nThe failure was discovered thanks to our e2e simulation of diffusion using\\n`io-sim` & property based testing.\\n\\nThe PR also refactors the heart of the `ouroboros-network` interface reducing\\ntechnical debt that would otherwise accumulate.\\n\\nWe also identified a possible improvement in the churn mechanism, which will be\\nimplemented in Q3. Churn needs to await for peers to terminate, we can\\nimprove the synchronisation. [ouroboros-network#4617]\\n\\n#### Ecosystem P2P Deployment Progress\\n\\nWe reached __50% of stake in hands of SPOs who run at least on P2P relay__. Now\\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\\nrunning in P2P mode.\\n\\n![P2P Progress](/images/network/2023-07-06-p2p-progress.png)\\n\\n#### Peer Sharing\\n\\nWe implemented _bootstrapping for peer sharing_ (also known as light peer\\nsharing). New downstream (inbound) peers are now added to the _known peers_ of\\nthe _outbound governor_. Together with peer sharing this allows for non\\nregistered relays to propagate through the network. [ouroboros-network#3596]\\n\\n_Please note that peer sharing is disabled by default and is not considered safe\\nuntil Bootstrap Peers (see below) or Genesis is implemented._\\n\\n#### Diffusion (P2P)\\n\\n- We designed a feature which will reduce the load on IOG relays (in future\\n also run by CF & Emurgo). The feature consists of two parts. A new source\\n of peers called _bootstrap peers_ (obtained from via an https request), the\\n ability to switch from bootstrap peers to ledger peers if the node is synced\\n (we are collaborating with the consensus team on the interface [Bootstrap\\n Peers IER][bootstrap-ier]). This feature will be completed in Q3.\\n [ouroboros-network#4530]\\n\\n- We published a blog post about [P2P design & implementation][p2p-blog].\\n\\n- Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\\n [ouroboros-network#4559].\\n\\n- We merged changes which allow the consensus layer to start / stop block\\n forging thread. This will allow to deploy P2P block producing nodes which\\n serve as a live backup node. [ouroboros-consensus#140]\\n\\n- We fixed a few bugs in local root peers DNS resolution service:\\n [ouroboros-network#4583], [ouroboros-network#4571].\\n\\n- We limited concurrency of DNS name resolutions: [ouroboros-network#4596].\\n\\n- Galois Inc implemented query option for Handshake: [ouroboros-network#4256].\\n\\n- We fixed handshake query timeout: [ouroboros-network#4608].\\n\\n- We implemented warm valency for local root peers. This can help when using\\n DNS names in local root peers which resolve to many IP addresses. [ouroboros-network#4575]\\n\\n- We merged handshake changes which allow query protocol versions. Thanks to\\n James Parker from Galois Inc.: [ouroboros-network#4256], [cardano-cli#30].\\n\\n### Other Improvements & Developments\\n\\n#### CDDL\\n\\n- We added `node-to-node` and `node-to-client` CDDL specs / tests for encoding\\n of `NodeToNodeVersionData` and `NodeToClientVersionData`. \\n\\n- We clarified an inconsistency between CDDL spec and implementation which is\\n highly polymorphic. We designed and implemented a fix for `tx-submission`\\n and `local-tx-submission` mini-protocols. Specs for other mini-protocols will\\n be improved at a later stage. [ouroboros-network#4580]\\n\\n#### [Cardano Ping][cardano-ping]\\n\\n- `cardano-ping` command was deprecated in favour of `cardano-cli ping` (the\\n transition was done by the `node` team).\\n\\n- Support for `node-to-client` protocol using Unix sockets.\\n [ouroboros-network#4601]\\n\\n- Support for `NodeToNodeV_11` and `NodeToClientV_16`, [ouroboros-network#4587]\\n\\n- `cardano-cli ping` is now using _ISO8601_ format for timestamps. Formatting of\\n messages was improved. [ouroboros-network#4593]\\n\\n- `cardano-cli ping` has a new `--query-versions` flag which allows to query\\n supported versions by the remote node. This is supported by\\n `cardano-node-8.1.0`. [ouroboros-network#4589], [cardano-node#5313], [cardano-cli#30]\\n\\n#### [IOSim][io-sim]\\n\\n- We fixed timeouts & delays in `io-classes` in a series of PRs: [io-sim#81],\\n [io-sim#82], [io-sim#86], [io-sim#87].\\n\\n- We released `strict-stm-1.1.0.1` on Hackage which fixed a bug in package\\n description file: [io-sim#101].\\n\\n#### [Typed Protocols][typed-protocols]\\n\\n- We published haddocks of `typed-protocols` at\\n https://input-output-hk.github.io/typed-protocols\\n\\n#### [Cardano Client][cardano-client]\\n\\n- We fixed a bug in `cardano-client-0.1.0.2` release which results in clients\\n (e.g. `db-sync`) negotiate an experimental protocol version.\\n\\n#### Technical debt\\n\\n- After the split between consensus & network, we made `cardano-client`\\n independent of `ouroboros-consensus-diffusion`: [ouroboros-network#4526].\\n\\n- We wrap all exceptions in `DiffusionError`: [ouroboros-network#4537], [cardano-node#5356].\\n\\n#### CI improvements\\n\\n- We switched to use GitHub merge queues in `ouroboros-network`, `io-sim` and\\n `typed-protocols` repositories; [typed-protocols#30], [ouroboros-network#4546].\\n\\n- We cleaned & updated scripts which run on CI.\\n\\n- We implemented a script to verify & release packages on CHaP; [ouroboros-network#4542], [ouroboros-network#4573].\\n\\n- We implemented a new CI script and cleaned existing ones:\\n [ouroboros-network#4572].\\n\\n- We don\'t install cryptographic libraries on CI anymore as none of our\\n packages requires them; [ouroboros-network#4539].\\n\\n- Improved caching of dependencies: [ouroboros-network#4553].\\n\\n- We made it possible to trigger building haddock manually:\\n [ouroboros-network#4549].\\n\\n#### GHC 9.4 & 9.6\\n\\nWe made all repositories under our control compile with `ghc-9.4` and `ghc-9.6`\\nwhich includes `ouroboros-network`, `io-sim`, `typed-protocols` and\\n`Win32-network`.\\n\\n### Next steps\\n\\nWe will continue towards our [aspirational roadmap][roadmap].\\n\\n* We will continue reviewing eclipse evasion.\\n* As [ouroboros-consensus#140] was merged, we are making progress towards\\n releasing P2P on block production nodes. We hope to analyse performance\\n regression on such nodes observed on the benchmarking cluster. [roadmap-3887]\\n* We are also focused on [roadmap-3969]. Note that it was expanded in Q2.\\n\\n\\n[typed-protocols]: https://github.com/input-output-hk/typed-protocols\\n[typed-protocols#30]: https://github.com/input-output-hk/typed-protocols/pull/30\\n\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[io-sim#81]: https://github.com/input-output-hk/io-sim/pull/81\\n[io-sim#82]: https://github.com/input-output-hk/io-sim/pull/82\\n[io-sim#86]: https://github.com/input-output-hk/io-sim/pull/86\\n[io-sim#87]: https://github.com/input-output-hk/io-sim/pull/87\\n[io-sim#101]: https://github.com/input-output-hk/io-sim/pull/101\\n\\n\\n[cardano-node#5313]: https://github.com/input-output-hk/cardano-node/pull/5313\\n[cardano-node#5356]: https://github.com/input-output-hk/cardano-node/pull/5356\\n[cardano-cli#30]: https://github.com/input-output-hk/cardano-cli/pull/30/\\n\\n[cardano-client]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client\\n[cardano-ping]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping\\n[ouroboros-network#3596]: https://github.com/input-output-hk/ouroboros-network/issues/3596\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4526]: https://github.com/input-output-hk/ouroboros-network/pull/4526\\n[ouroboros-network#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[ouroboros-network#4537]: https://github.com/input-output-hk/ouroboros-network/issues/4537\\n[ouroboros-network#4539]: https://github.com/input-output-hk/ouroboros-network/issues/4539\\n[ouroboros-network#4540]: https://github.com/input-output-hk/ouroboros-network/issues/4540\\n[ouroboros-network#4542]: https://github.com/input-output-hk/ouroboros-network/issues/4542\\n[ouroboros-network#4546]: https://github.com/input-output-hk/ouroboros-network/pull/4546\\n[ouroboros-network#4549]: https://github.com/input-output-hk/ouroboros-network/issues/4549\\n[ouroboros-network#4553]: https://github.com/input-output-hk/ouroboros-network/issues/4553\\n[ouroboros-network#4559]: https://github.com/input-output-hk/ouroboros-network/pull/4559\\n[ouroboros-network#4571]: https://github.com/input-output-hk/ouroboros-network/pull/4571\\n[ouroboros-network#4572]: https://github.com/input-output-hk/ouroboros-network/pull/4572\\n[ouroboros-network#4573]: https://github.com/input-output-hk/ouroboros-network/pull/4573\\n[ouroboros-network#4575]: https://github.com/input-output-hk/ouroboros-network/pull/4575\\n[ouroboros-network#4580]: https://github.com/input-output-hk/ouroboros-network/pull/4580\\n[ouroboros-network#4583]: https://github.com/input-output-hk/ouroboros-network/pull/4583\\n[ouroboros-network#4587]: https://github.com/input-output-hk/ouroboros-network/pull/4587\\n[ouroboros-network#4589]: https://github.com/input-output-hk/ouroboros-network/pull/4589\\n[ouroboros-network#4593]: https://github.com/input-output-hk/ouroboros-network/pull/4593\\n[ouroboros-network#4596]: https://github.com/input-output-hk/ouroboros-network/pull/4596\\n[ouroboros-network#4601]: https://github.com/input-output-hk/ouroboros-network/pull/4601\\n[ouroboros-network#4608]: https://github.com/input-output-hk/ouroboros-network/pull/4608\\n[ouroboros-network#4662]: https://github.com/input-output-hk/ouroboros-network/pull/4662\\n\\n[bootstrap-ier]: https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md\\n[ouroboros-consensus#140]: https://github.com/input-output-hk/ouroboros-consensus/pull/140\\n\\n[io-sim-blog]: https://engineering.iog.io/2023-04-14-io-sim-annoucement\\n[p2p-blog]: https://engineering.iog.io/2023-06-28-p2p\\n\\n[roadmap]: https://github.com/orgs/input-output-hk/projects/39/views/30\\n[roadmap-3887]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505\\n[roadmap-3969]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},{"id":"2023-Q2-sre","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md","source":"@site/quarterly/2023-Q2-sre.md","title":"SRE Q2 2023 Update","description":"2023-04 - 2023-06","date":"2023-09-08T13:25:06.000Z","formattedDate":"September 8, 2023","tags":[{"label":"sre","permalink":"/cardano-updates/quarterly/tags/sre"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q2 2023 Update","slug":"2023-Q2-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-04-25-consensus"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:\\n- Expanding the darwin CI cluster and adding aarch64 builder support\\n- Adding bare metal capability to bitte clusters\\n- Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality\\n- Creation of pool performance analysis queries and scripting\\n- Migration of testnet metadata server to cardano-world\\n- Cardano shelley qa migration to cardano-world\\n- Cardano sanchonet environment spin up to test Conway era functionality\\n- Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature\\n\\n### Next steps\\n\\n- Continue with the conversion of mainnet to using p2p topology"},{"id":"2023-04-25-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-25-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-25-consensus.md","source":"@site/quarterly/2023-04-25-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-04-25T00:00:00.000Z","formattedDate":"April 25, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":2.3,"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 Quarterly Update","slug":"2023-04-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-sre"},"nextItem":{"title":"Network Q1 2023 Update","permalink":"/cardano-updates/quarterly/2023-04-04-network"}},"content":"## Consensus Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished the testing activities for the prototype, which involved adding\\n new tests, and fixing and enabling temporarily disabled tests.\\n- We spent a substantial amount of effort refactoring and cleaning the\\n prototype.\\n- We audited the UTxO HD prototype to make sure it can accommodate the migration\\n of other tables (eg stake-keys registration) from memory to disk. The result\\n of the audit was positive.\\n- We ran ad-hoc benchmarks for reading keys and flushing values to disk. No\\n unexpected costs found.\\n- We ran the first system level benchmarks. The performance regressions reported\\n were due to an unrealistic snapshotting rate. We need to re-run them again\\n after we design a more fine grained locking mechanism.\\n\\n#### Genesis\\n\\n- We elaborated a roadmap of the remaining work for Genesis.\\n- We presented the design to the IOG Researchers and PNSol on February 20. The\\n design was well received. We updated the Genesis design with the researcher\'s\\n feedback.\\n - We plugged the new DoS vector identified during the aforementioned\\n presentation.\\n- We developed a generator for adversarial leader schedules that satisfy key\\n Ouroboros properties, which will be used to test the Genesis design.\\n - The generator enables use of smaller Ouroboros parameters, which makes\\n extrema more likely and counterxamples easier interpret.\\n- We wrote up the latest design iteration.\\n- We continued benchmarking the Chain Sync Jumping prototype. In particular:\\n - We debugged the prototype\'s performance regression, and unmasked the\\n actual cause by patching our initial theory (bad queuing behavior)\\n - We identified and validated the actual cause (a pathological case in\\n BlockFetch tiebreaker).\\n\\n#### Support\\n\\n- We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother\\n to serve a local immutable DB.\\n\\n#### Conway era\\n\\n- We integrated the Conway era into consensus.\\n\\n#### Technical debt\\n\\n- We fixed a bug with followers, which was discovered by property tests.\\n- We developed a DSL for specifying and running ChainDB test cases.\\n- We fixed failing tests with iterators.\\n- We created micro-benchmarks for adding transactions to the mempool.\\n\\n#### Fostering collaboration\\n\\n- We released a new technical documentation site for consensus.\\n- We factored out several packages to external repositories. Some of this work\\n originated in the UTxO HD workstream.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/28\\n\\n#### Genesis\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/33\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/32\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/31\\n\\n#### Support\\n\\n- Design Consensus side of hardfork-enactment in the Voltaire phase\\n ([#4180](https://github.com/input-output-hk/ouroboros-network/issues/4180)).\\n- Estimate the number of file descriptors Consensus needs\\n [#20](https://github.com/input-output-hk/ouroboros-consensus/issues/20).\\n\\n#### Tech debt\\n\\n- Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define\\n for consensus. Pick one and implement benchmarks for it.\\n\\n#### Fostering collaboration\\n\\n- Onboard a new team member."},{"id":"2023-04-04-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-04-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-04-network.md","source":"@site/quarterly/2023-04-04-network.md","title":"Network Q1 2023 Update","description":"2023-01 - 2023-03","date":"2023-04-04T00:00:00.000Z","formattedDate":"April 4, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":2.62,"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 Q1 2023 Update","slug":"2023-04-04-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-04-25-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2023-04-03-ledger"}},"content":"## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### Gradual dynamic P2P release on mainnet\\n\\nWe released two version of `cardano-node` with dynamic P2P capabilities:\\n\\n* [`1.35.6`][cardano-node-1.35.6]\\n - we found and fixed a bug in exception handling in `peer-state-actions`\\n [pull-4357]\\n - we found and fixed a busy loop when demoting a peer from hot to warm [pull-4385] \\n* [`1.35.7`][cardano-node-1.35.7]\\n - includes interoperability in the legacy non-p2p network stack [pull-4467]\\n* we fixed a busy loop of demotion & promotions: `warm -> hot -> warm`\\n [pull-4485] /it will be included in `cardano-node-8.0.0` release/.\\n\\nCurrently there are more than 200 P2P relays on mainnet.\\n\\n#### Peer Sharing\\n\\nWe implemented /peer sharing/ [pull-4019] which will be available as an\\nexperimental feature in one of the future `cardano-node` releases.\\n\\nWe implemented /light peer sharing/, e.g. adding inbound connections to the set\\nof known peers of the outbound governor, which allows to bootstrap relays not\\nregistered on chain. This complements peer sharing. The [pull-4277] is in\\nlate review stages.\\n\\n#### Eclipse Evasion\\n\\nWe finalised design of eclipse evasion and we started implementing it. We\\nhave an initial implementation (not merged). We are in the process of extending\\nour test suite to cover new implementation details: [issue-3886], [pull-4462].\\n\\n#### Cardano Network Service Assurance\\n\\nGalois has been making progress on _Cardano Network Service Assurance_ project.\\n\\n* In cardano-node, they have developed a `datapoint` abstraction that creates\\n a queue of (existing) log events, they now have two such `datapoint`s (of log\\n events) implemented.\\n\\n* They have developed a `datapoint` client executable that can connect to a node\\n which serves the \\"new tracing\\".\\n\\n* They have been exploring approaches for the consolidation and analysis of\\n `datapoint` data to extract actionable network health status.\\n\\n#### Cardano-Node\\n\\n* We made it possible to configure accepted connections limit [pull-4902].\\n\\n#### Testing improvements\\n\\n* We fixed a bug in network simulation implementation of TCP simultaneous open [pull-4265].\\n\\n* We introduced header-body split in the diffusion simulation [pull-4419] (in review).\\n\\n* We introduced initiator only nodes in the diffusion simulation [pull-4280].\\n\\n* We fixed a connection-manager test failure [issue-4370].\\n\\n#### Technical Debt\\n\\n* We refactored `Snocket` interface decoupling it from the multiplexer\\n [pull-4260]. This simplified some aspects of the KES agent implementation.\\n\\n* We introduces a record for CBOR codecs which are used for various data\\n structures by mini-protocol codecs [pull-4430].\\n\\n#### Documentation\\n\\n* We explained some limitations of CDDL in our technical report [pull-4351].\\n\\n#### IO-Sim\\n\\n* We fixed implementation of `MVar`\'s [pull-70].\\n\\n#### NoThunks\\n\\n* We published a new version of [`nothunks`] library to Hackage.\\n\\n### Next steps\\n\\n* Finish implementation & testing of eclipse evasion [issue-3886].\\n* Optimise connectivity to peers behind firewall [issue-4381].\\n* Finish the work on enabling block production dynamically to allow using P2P\\n on block producers [issue-3159].\\n* If time permits we would like also to reserve some time for finishing\\n publication of `io-sim` to Hackage.\\n\\n\\n[cardano-node-1.35.6]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.6\\n[cardano-node-1.35.7]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.7\\n\\n[pull-4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull-4277]: https://github.com/input-output-hk/ouroboros-network/pull/4277\\n[pull-4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[pull-4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[pull-4280]: https://github.com/input-output-hk/ouroboros-network/pull/4280\\n[pull-4351]: https://github.com/input-output-hk/ouroboros-network/pull/4351\\n[pull-4357]: https://github.com/input-output-hk/ouroboros-network/pull/4357\\n[pull-4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[pull-4430]: https://github.com/input-output-hk/outoboros-network/pull/4430\\n[pull-4460]: https://github.com/input-output-hk/outoboros-network/pull/4460\\n[pull-4462]: https://github.com/input-output-hk/outoboros-network/pull/4462\\n[pull-4465]: https://github.com/input-output-hk/outoboros-network/pull/4465\\n[pull-4467]: https://github.com/input-output-hk/outoboros-network/pull/4467\\n[pull-4419]: https://github.com/input-output-hk/outoboros-network/pull/4419\\n\\n[pull-4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n\\n[issue-3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue-3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[issue-4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue-4381]: https://github.com/input-output-hk/ouroboros-network/issues/4381\\n\\n[pull-70]: https://github.com/input-output-hk/io-sim/pull/70\\n\\n[`nothunks`]: https://hackage.haskell.org/package/nothunks"},{"id":"2023-04-03-ledger","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-03-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-03-ledger.md","source":"@site/quarterly/2023-04-03-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2023-04-03T00:00:00.000Z","formattedDate":"April 3, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/quarterly/tags/ledger"}],"readingTime":6.405,"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-04-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q1 2023 Update","permalink":"/cardano-updates/quarterly/2023-04-04-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-18-consensus"}},"content":"## Ledger Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### CIPs\\n\\n* **Entering the Voltaire phase** -\\n CIP-1694 received a major update after participation in the design has expanded to\\n more and more people, including those who attended the Colorado workshop.\\n See [CIP-1694](https://github.com/cardano-foundation/CIPs/pull/380).\\n* **Ledger CIP category** -\\n The ledger team continues to embrace the CIP process, and has begun the process of\\n registering the ledger as an official CIP category.\\n See [CIP-84](https://github.com/cardano-foundation/CIPs/pull/456).\\n* **Ledger serialization** -\\n A CIP for the ledger serialization deprecation cycle has been accepted.\\n See [CIP-80](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0080).\\n\\n#### Formal ledger model\\n\\nOur new formal specifications backed by Agda have seen a lot of progress.\\nThe majority of the ideas in CIP-1694 are now present, and we have made enough progress\\nthat we can now safely say that the PDF produced by the Agda model will be the\\nofficial ledger specification for the Conway ledger era.\\nSee [the repository](https://github.com/input-output-hk/formal-ledger-specifications).\\n\\n\\n#### Conway ledger era\\n\\nProgress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model.\\nThe major component still missing is the DRep stake distribution, which still presents some\\ntechnical challenges.\\n\\n[[pull-3176]]\\n[[pull-3216]]\\n[[pull-3226]]\\n[[pull-3291]]\\n[[pull-3326]]\\n[[pull-3330]]\\n[[pull-3339]]\\n\\n#### DRep stake distribution computation\\n\\nAdding another large stake distribution to the ledger state must proceed with caution.\\nWe do not want the memory used by the node to increase too much,\\nand performance problems can lead to reduced block production.\\nWe have prototyped, tested, and benchmarked several approaches that could give us\\nthe current DRep stake distribution at each epoch boundary.\\nThis has very important implications, since we want every ADA holder to be able to at any\\ntime (such as during a contentious vote) register themselves as a DRep and still have time\\nto vote themselves on the issue.\\n\\n[[pull-3344]]\\n[[pull-3353]]\\n[[pull-3364]]\\n\\n#### Integration work\\n\\nThe ledger has made some wonderful improvements over the past six months,\\nbut which entail a significant amount of integration efforts:\\n\\n* Our new versioned CBOR schemes\\n* Individual deposit tracking\\n* An improved cross-era interface utilizing lenses\\n* A new ledger API\\n* Re-arranging the ledger stake in preparation for CIP-1694\\n* Versioning our Haskell packages\\n using [CHaPs](https://github.com/input-output-hk/cardano-haskell-packages).\\n* Consistent conventions for variable names\\n\\n\\n[[pull-3279]]\\n[[pull-3282]]\\n[[pull-3288]]\\n[[pull-3289]]\\n[[pull-3292]]\\n[[pull-3297]]\\n[[pull-3298]]\\n[[pull-3299]]\\n[[pull-3300]]\\n[[pull-3302]]\\n[[pull-3303]]\\n[[pull-3308]]\\n[[pull-3342]]\\n[[pull-3345]]\\n[[pull-3356]]\\n[[pull-3357]]\\n[[pull-3360]]\\n[[pull-3361]]\\n[[pull-3363]]\\n[[pull-4349]]\\n[[pull-378]]\\n[[pull-376]]\\n[[pull-373]]\\n[[pull-370]]\\n[[pull-361]]\\n[[pull-4976]]\\n[[pull-5013]]\\n\\n#### Deposit tracking\\n\\nIndividual deposits (for stake credential and stake pool registrations) were not tracked by the ledger.\\nDeposits were returned according to the current protocol parameters.\\nWhen the values of these two protocol parameters change, the deposit pot\\nis adjusted by adding to, or removing from, the reserves.\\n\\nThis has several problems:\\n* Most people expect a deposit to be paid back exactly.\\n* We cannot increase the deposit amount once the reserves hits zero.\\n* If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.\\n* Because of the problems above, it is going to be incredibly hard to ever change the values.\\n* There is a serious issue involving hard forks.\\n The consensus layer makes the decision about whether or not to enact a hard fork based on\\n the protocol parameter update state two stability windows before the end of the epoch.\\n However, the ledger will reject a protocol parameter update on the epoch boundary\\n if the deposit pot adjustments cannot be reconciled with the reseve pot.\\n This means that if quorum is met regarding changing the major protocol version,\\n but the update is rejected on the epoch boundary, consensus will change the era but the\\n ledger will not change the major protocol version, leaving the ledger in a split-brain state.\\n\\nBecause we never actually changed the values of the two deposits amounts in the protocol parameters\\non mainnet, we were able to retroactively change the behavior.\\nWe made the following changes:\\n * Individual deposits are tracked in the `DState`.\\n * The amount deposited is always returned.\\n\\n[[pull-3195]]\\n[[pull-3202]]\\n[[pull-3217]]\\n\\n#### New ledger API\\n\\nWe have significantly built up the ledger API.\\nWe will eventually replace much of the `cardano-api` in the node repository with this ledger API.\\n\\n[[pull-3242]]\\n[[pull-3248]]\\n[[pull-3328]]\\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 have a new declaritive infrastructure for building constraint-based generators,\\nwhich instead generate a random ledger state representative of not just an initial state,\\nbut also those representative of the end result of a long sequence of valid blocks.\\nMoreover, these generators are very fast and are much more random than our old generators.\\nBefore we can start using them for our existing property tests, however, we still need to\\nexpand them to generate a valid block for a given ledger state.\\n\\n[[pull-3219]]\\n\\n#### Technical debt\\n\\nWe continued to address technical debt as much as we can.\\n\\n[[pull-3167]]\\n[[pull-3170]]\\n[[pull-3172]]\\n[[pull-3175]]\\n[[pull-3184]]\\n[[pull-3205]]\\n[[pull-3208]]\\n[[pull-3210]]\\n[[pull-3212]]\\n[[pull-3218]]\\n[[pull-3222]]\\n[[pull-3223]]\\n[[pull-3224]]\\n[[pull-3225]]\\n[[pull-3229]]\\n[[pull-3239]]\\n[[pull-3241]]\\n[[pull-3244]]\\n[[pull-3245]]\\n[[pull-3249]]\\n[[pull-3260]]\\n[[pull-3263]]\\n[[pull-3264]]\\n[[pull-3268]]\\n[[pull-3269]]\\n[[pull-3270]]\\n[[pull-3274]]\\n[[pull-3276]]\\n[[pull-3277]]\\n[[pull-3286]]\\n[[pull-3290]]\\n[[pull-3295]]\\n[[pull-3296]]\\n[[pull-3306]]\\n[[pull-3307]]\\n[[pull-3310]]\\n[[pull-3311]]\\n[[pull-3316]]\\n[[pull-3320]]\\n[[pull-3323]]\\n[[pull-3327]]\\n[[pull-3331]]\\n[[pull-3332]]\\n[[pull-3333]]\\n[[pull-3338]]\\n[[pull-3341]]\\n[[pull-3347]]\\n[[pull-3350]]\\n[[pull-3351]]\\n[[pull-3352]]\\n[[pull-3354]]\\n\\n##### Critical fixes\\n\\nWe fixed two critical issues:\\n* Growing block production delay on the epoch boundary: [[pull-3209]]\\n* Unexpected node shutdown from `balanceR`: [[pull-3343]]\\n\\n### Next steps\\n\\n* **Conway spec** -\\n Complete the first version of the conway formal specification.\\n* **DRep stake distribution** -\\n Have the ledger compute the DRep stake distribution with acceptible performance.\\n* **Devnet ready** -\\n Have the Haskell implementation of the conway era in sync with the formal specification,\\n and integrate the changes with consensus and node.\\n All the details might not be finalized, but the wire specification and the API should\\n be stable so that conway can be placed on a devnet for tool builders to start integrating with.\\n* **Plutus V3** -\\n Integrate Plutus V3 into the ledger, including a new script context which supports DReps.\\n\\n### More details\\n\\nThis quarterly report was based off of the following fortnightly ones:\\n\\n* [2023-01-05](2023-01-05-ledger)\\n* [2023-01-19](2023-01-19-ledger)\\n* [2023-02-02](2023-02-02-ledger)\\n* [2023-02-17](2023-02-17-ledger)\\n* [2023-03-03](2023-03-03-ledger)\\n* [2023-03-17](2023-03-17-ledger)\\n* [2023-03-31](2023-03-31-ledger)\\n\\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\\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-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\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-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\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-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\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-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\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-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\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-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\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\\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-3333]: https://github.com/input-output-hk/cardano-ledger/pull/3333\\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\\n[pull-3342]: https://github.com/input-output-hk/cardano-ledger/pull/3342\\n[pull-3343]: https://github.com/input-output-hk/cardano-ledger/pull/3343\\n[pull-3344]: https://github.com/input-output-hk/cardano-ledger/pull/3344\\n[pull-3345]: https://github.com/input-output-hk/cardano-ledger/pull/3345\\n[pull-3347]: https://github.com/input-output-hk/cardano-ledger/pull/3347\\n[pull-3350]: https://github.com/input-output-hk/cardano-ledger/pull/3350\\n[pull-3351]: https://github.com/input-output-hk/cardano-ledger/pull/3351\\n[pull-3352]: https://github.com/input-output-hk/cardano-ledger/pull/3352\\n[pull-3353]: https://github.com/input-output-hk/cardano-ledger/pull/3353\\n[pull-3354]: https://github.com/input-output-hk/cardano-ledger/pull/3354\\n[pull-3356]: https://github.com/input-output-hk/cardano-ledger/pull/3356\\n[pull-3357]: https://github.com/input-output-hk/cardano-ledger/pull/3357\\n[pull-3360]: https://github.com/input-output-hk/cardano-ledger/pull/3360\\n[pull-3361]: https://github.com/input-output-hk/cardano-ledger/pull/3361\\n[pull-3363]: https://github.com/input-output-hk/cardano-ledger/pull/3363\\n[pull-3364]: https://github.com/input-output-hk/cardano-ledger/pull/3364\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349\\n\\n[pull-378]: https://github.com/input-output-hk/cardano-base/pull/378\\n[pull-376]: https://github.com/input-output-hk/cardano-base/pull/376\\n[pull-373]: https://github.com/input-output-hk/cardano-base/pull/373\\n[pull-370]: https://github.com/input-output-hk/cardano-base/pull/370\\n[pull-361]: https://github.com/input-output-hk/cardano-base/pull/361\\n\\n[pull-4976]: https://github.com/input-output-hk/cardano-node/pull/4976\\n[pull-5013]: https://github.com/input-output-hk/cardano-node/pull/5013"},{"id":"2023-01-18-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-18-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-18-consensus.md","source":"@site/quarterly/2023-01-18-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-01-18T00:00:00.000Z","formattedDate":"January 18, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":3.205,"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 Quarterly Update","slug":"2023-01-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2023-04-03-ledger"},"nextItem":{"title":"Network Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-13-network"}},"content":"## Consensus Quarterly Update\\n## 2022-12 - 2023-01\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\nThe prototype is feature complete and thoroughly tested at the consensus level.\\nIn particular, we invested a lot of time in writing property-test for the\\nmempool, and other crucial new parts of the prototype. Now we are ready to run\\nintegration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\nWe identified and fixed a slowdown in cross-era forecasting that was inhibiting\\nour efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7%\\nspeedup in full sync times in the baseline.\\n\\nWe also started prototyping a self-contained implementation of the Genesis\\ndynamics (in particular of the parts intentionally not part of the ChainSync\\nJumping prototype) that furthered our understanding of subtleties and edge\\ncases.\\n\\n#### Support\\n\\n- We worked on designing integration of new VRF and KES crypto into consensus.\\n - `Crypto` class was split into two parts: `Crypto` and `HeaderCrypto`.\\n - With the Ledger team\'s help, we refactored `cardano-ledger` to use a proxy\\n type for VRF.\\n\\n#### Conway era\\n\\n- PR went through its second review round. It is about to be merged, but it got\\n delayed due to people\'s availability during Christmas break.\\n\\n#### Technical debt\\n\\n- We improved the capabilities of our `io-sim` library, which is key for testing\\n and simulating Cardano components.\\n- We removed thunks from epoch translations in the ledger, which is important\\n for reducing memory consumption of the Cardano node.\\n\\n#### Fostering collaboration\\n\\n- We added a tutorial on how to instantiate the Consensus layer to run custom\\n ledgers. This should be a valuable resource to people looking to roll their\\n own custom blockchain (either for commercial or research purposes).\\n- We added an overview of consensus to the [top level\\n documentation](https://input-output-hk.github.io/ouroboros-network/) of\\n ouroboros-network. This overview describes the consensus components and adds a\\n hyperlinked map to the modules documentation.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Evaluate the extensibility of the prototype. Moving the UTxO to disk is only\\n the first step towards reducing the memory requirements of Cardano node, and\\n ensuring its long term sustainability. In the future, we plan on moving other\\n large maps, such as delegation maps. The prototype should be able to\\n accommodate these changes without any major modifications.\\n- Start the integration with other downstream components, such as the wallet and\\n db-sync. The idea is to identify and address any potential pain points that\\n might arise during this integration.\\n- Run integration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\n- Finish benchmarking and tuning the fast-path ChainSync Jumping prototype\\n- Expand and optimize the self-contained implementation of the Disconnect Rule\\n (including density comparisons and the LoE)\\n- Develop documentation and smoke tests for these components.\\n- Start modifying the ChainSync Client for the LoP and LoR.\\n\\n#### Support\\n\\n- Help the Network team with diagnosing performance regression in block\\n production.\\n\\n#### Tech debt\\n\\n- Fix property-test failures concerning iterators ([#3999][issue-3999] and\\n [#4183][issue-4183]).\\n\\n#### Fostering collaboration\\n\\n- Finish [mapping consensus][issue-4145].\\n\\n### Risks \\n\\n#### UTxO HD\\n\\n- Moving other parts of the ledger state to disk might require a major redesign\\n of the prototype. For instance, if it turns out that the epoch change rules\\n require access to the *full* ledger state. If this is the case, we might\\n accept this risk and do the redesign after the initial release of UTxO-HD.\\n- Integration with downstream clients might require more work than we\\n anticipate.\\n- Access to the benchmarking\'s team time and resources.\\n- Benchmarking results might show significant performance degradation, which\\n will require additional work if such performance degradation is not accepted\\n by other stakeholders.\\n- The prototype\'s performance might not be accepted by other stakeholders. Here\\n we need to clearly communicate that this is necessary to ensure that as the\\n blockchain size grows, the node can operate within reasonable memory\\n constraints.\\n\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[issue-3999]: https://github.com/input-output-hk/ouroboros-network/issues/3999\\n[issue-4145]: https://github.com/input-output-hk/ouroboros-network/issues/4145"},{"id":"2023-01-13-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-13-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-13-network.md","source":"@site/quarterly/2023-01-13-network.md","title":"Network Quarterly Update","description":"Network Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":4.125,"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 Quarterly Update","slug":"2023-01-13-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-18-consensus"},"nextItem":{"title":"Open-Source Update","permalink":"/cardano-updates/quarterly/2023-01-13-open-source"}},"content":"## Network Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nThe primary goal of the networking team was to focus on the single relay\\nrelease of P2P. We fixed a number of small late bugs, and concluded QA\\n& performance testing. Although it was discovered a regression in performance\\nof block production when P2P is enabled, relaying with P2P performs better\\ncomparing to a non p2p. We concluded that this is not a blocker for the Single\\nRelay Release which is planned shortly.\\n\\n[Peer sharing][pr #4019] has gone through review and final review is\\njust being done right now. After merging it will still be disabled (hidden\\nbehind a flag) as it\'s not safe without eclipse evasion. We started\\nimplementing light peer sharing (i.e. include inbound peers into known peer set\\nof the outbound governor).\\n\\nWe started a detailed eclipse evasion design, it will continue in the next\\nquarter.\\n\\nWe also made a major revision of package structure of the network packages. We\\nended up with a very clean dependency graph ([pr #4155]).\\n\\nArmando Santos delivered a talk at the [ODOPIS 2022] conference on principles\\nof distributed systems in Brussels. The slides are available [here][ODOPIS-slides].\\n\\nNeil Davies gave an invited seminar on `DeltaQ` at Universit\xe9 Catholique de\\nLouvain.\\n\\nWe also found and fixed a few of bugs:\\n\\n* a bug in keep alive mini-protocol which resulted in warm to cold transitions\\n to be always executed through a timeout path rather than do a clean demotion\\n ([pr #4168]).\\n\\n* fixed an assetion failure in the outbound governor ([issue #4177]) \\n\\n- we fixed DNS test failure [issue #4191]\\n\\n### Next steps\\n\\nWe will work towards the next release of P2P for block producer nodes. This includes:\\n\\n* analysing performance regression for BP nodes when using P2P\\n* finish the work on controlling the block forger through node kernel ([pr #3800])\\n* address [issue #3907] and write a script to analyse deployment of P2P relays\\n\\nWe would like also to push forward eclipse evasion. Although most of the work\\nhas be done already the release of `io-sim` on `Hackage` will happen in the\\nnext quarter.\\n\\nWe would also like to address [chain-sync timeout issue][issue #4244] recently\\ndiagnosed by Karl Knutsson.\\n\\nIf time permits we would also like to address some technical debt, especially:\\n\\n- [enable nothunk in diffusion tests][issue #3387]\\n- [refactor diffusion testnet simulation][issue #4085]\\n\\n### Risks\\n\\nThe performance regression for block producer with P2P needs to be investigated\\nin the near future. This is blocker for the release of P2P on BP nodes.\\n\\n### Detailed log\\n\\n#### Contributions to Ouroboros-Network\\n\\n- We added `TraceDemoteLocalAsynchronous`, which enables notification of critical issues for SPOs\\n- We fixed `cardano-ping` compatibility with `NodeToNodeV_10` (P2P, [pr #4165])\\n- We fixed a bug in demotion peers to cold which affected P2P nodes ([commit-61058aa5c2])\\n- Karl Knutsson enhanced `SendFetchRequest` ([commit-bb1c3dddee]), open-source contribution)\\n- We turned `SizeInBytes` into a newtype.\\n- We extended `CONTRIBUTING.md`, `README.md`, added `CODE_OF_CONDUCT`.\\n- We fixed DNS test failure [issue #4191]\\n- We fixed a simulation bug found in [issue #4258]\\n- [pr #4168]\\n- [issue #4177]\\n\\n#### Contributions to Cardano-Node\\n\\n- We maintained the Single Relay Release [pr #4612], (e.g. fixing CI issues,\\n Rebasing it when necessary, publishing packages to Cardano Haskell Packages);\\n- We enhanced `JSON` serialisation / deserialisation of `NodeToNodeVersion` and `NodeToClientVersion`;\\n\\n#### Contributions to IOSim\\n\\n- We started to use Cardano Haskell Packages for `IOSim` ([pr #48])\\n- We updated change log files\\n- We added support of `ghc-9.4` ([pr #50])\\n\\nWe also addressed the following issues in [pr #57] in order to prepare the package for publication on Hackage:\\n\\n- refactored `io-classes` timers API ([issue #46]);\\n- created a new package `si-timers` which exposes an interface using SI units\\n and is safe on 32-bit systems ([issue #59]);\\n- added monad transformers instances for classes defined in `io-classes` ([issue #58]);\\n- created `io-classes-mtl` package which includes (experimental) instances for monad transformers;\\n- provide `MonadMonotonicTimeNSec` in `io-classes` and `MonadMonotonicTime` in `si-timers` (so that `io-classes` follow the `base` package);\\n- added `registerCancellableDelay` in `si-timers` (which allowed us to hide fancy timer api and clean `io-classes`)\\n- added support for `js_HOST_ARCH` (the new GHC JS backend)\\n\\nNote the [pr #57] contains almost 40 commits, and was a major step forward for\\n`io-sim` ecosystem. We also prepared a draft [pr #4281] which updates\\n`ouroboros-network`.\\n\\nOther changes for `1.0.0.0` release on Hackage:\\n\\n- Refactored test suite ([pr #47])\\n- Updated documentation, cabal files, `CONTRIBUTING`, `SECURITY` documents, etc in [pr #60], currently under review.\\n\\n[commit-61058aa5c2]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/61058aa5c28a144d723aae183d1745552d757334\\n[commit-bb1c3dddee]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/bb1c3dddeea78949f531c144bb4f2669eddf7f47\\n[issue #3387]: https://github.com/input-output-hk/ouroboros-network/issues/3387\\n[issue #3907]: https://github.com/input-output-hk/ouroboros-network/issues/3907\\n[issue #4085]: https://github.com/input-output-hk/ouroboros-network/issues/4085\\n[issue #4168]: https://github.com/input-output-hk/ouroboros-network/issues/4168\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[issue #4191]: https://github.com/input-output-hk/ouroboros-network/issues/4191\\n[issue #4244]: https://github.com/input-output-hk/ouroboros-network/issues/4244\\n[issue #4258]: https://github.com/input-output-hk/ouroboros-network/issues/4258\\n[issue #46]: https://github.com/input-output-hk/io-sim/issues/46\\n[issue #58]: https://github.com/input-output-hk/io-sim/issues/58\\n[issue #59]: https://github.com/input-output-hk/io-sim/issues/59\\n[pr #3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pr #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[pr #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[pr #4281]: https://github.com/input-output-hk/cardano-node/pull/4281\\n[pr #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[pr #47]: https://github.com/input-output-hk/io-sim/pull/47\\n[pr #48]: https://github.com/input-output-hk/io-sim/pull/48\\n[pr #49]: https://github.com/input-output-hk/io-sim/pull/49\\n[pr #50]: https://github.com/input-output-hk/io-sim/pull/50\\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[ODOPIS 2022]: https://sites.uclouvain.be/OPODIS2022/armando-details.html\\n[ODOPIS-slides]: https://sites.uclouvain.be/OPODIS2022/slides/OPODIS2022-slides-Santos.pdf"},{"id":"2023-01-13-open-source","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-13-open-source","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-13-open-source.md","source":"@site/quarterly/2023-01-13-open-source.md","title":"Open-Source Update","description":"Open Source Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"open-source","permalink":"/cardano-updates/quarterly/tags/open-source"}],"readingTime":2.215,"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 Update","slug":"2023-01-13-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Network Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-13-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2022-11-15-consensus"}},"content":"## Open Source Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nIn the last quarter the open-source initiative delivered a comprehensive report\\non the state of our repositories. As part of this work stream we\\nidentified the key open-source repositories for the cardano project across all\\nthe projects From a list of more than 500 repositories (some of which are\\nforks) we identified key repositories which constitute the core of Cardano.\\n20 of them were identified as to be transferred to the future MBO which will\\ngovern Cardano development. Some where excluded (like [`io-sim`] and\\n[`typed-protocols`]), to be govern by IOG, since they have a much broader\\napplication than Cardano itself, and thus we think their open-source future\\nwill be better outside of the Cardano umbrella.\\n\\nChristian Taylor identified a number of ways we can improve our repositories to\\nmake them more attractive for open-source contributions by analysing each of\\nthem. This includes adding or improving various documentation files, like\\n`CONTRIBUTING` files, adding code of conduct, improving readme files, issue\\n& pull request templates etc. Christian also computed various interesting\\nmetrics which gives a very good insight into the development practices: e.g.\\naverage merge ratio, average number of reviews, comments and many more! The\\npresentation is available [here][open-source-presentation].\\n\\nWe followed with work on the [Cardano Engineering Handbook][CEH]. We included\\na standard code of conduct which is now used by most important projects in the\\nCardano space. We included `cardano-node`\'s security policy and added\\na responsible disclosure policy. We also described how roles and\\nresponsibilities should be clarified. This progress was made by\\na collaborative effort of the Cardano Core, Plutus and Architecture teams, and\\nit wouldn\'t be possible without Michael Peyton Jones, Arnaud Bailly, Kevin\\nHammond, Jared Corduan and Marcin Szamotulski.\\n\\nWe also improved the documentation of key repositories, by adding description,\\nimproving their `README` file & `CONTRIBUTING` files, adding code of conducts\\nfollowing the [Cardano Engineering Handbook][CEH]. This includes improvements to:\\n\\n* [`ouroboros-network`] (both `network` & `consensus`)\\n* [`cardano-ledger`]\\n* [`cardano-node`]\\n\\nAnd also\\n\\n* [`io-sim`]\\n* [`typed-protocols`]\\n* [`cardano-prelude`] (work in progress)\\n\\nThe work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan. \\n\\n\\nIn this quarter we also identified a number of projects which can be published to\\n`Hackage` (Haskell\'s package repository) or `crate` (Rust package repository).\\nThe list contains 21 packages, 2 of which ([`hedgehog-extras`] and\\n[`quickcheck-dynamic`]) are already published on Hackage and another 5 (from\\nthe [`io-sim`] repository) are close to be published.\\n\\n\\n### Detailed log\\n\\nThe progress of the open-source project is tracked in [this project][open-source-project].\\n\\n[CEH]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[open-source-project]: https://github.com/orgs/input-output-hk/projects/60/views/1\\n[`cardano-ledger`]: https://github.com/input-output-hk/cardano-ledger\\n[`cardano-node`]: https://github.com/input-output-hk/cardano-node\\n[`cardano-prelude`]: https://github.com/input-output-hk/cardano-prelude\\n[`hedgehog-extras`]: https://hackage.haskell.org/package/hedgehog-extras\\n[`io-sim`]: https://github.com/input-output-hk/io-sim\\n[`ouroboros-network`]: https://github.com/input-output-hk/ouroboros-network\\n[`quickcheck-dynamic`]: https://hackage.haskell.org/package/quickcheck-dynamic\\n[`typed-protocols`]: https://github.com/input-output-hk/typed-protocols\\n[open-source-presentation]: https://docs.google.com/presentation/d/127IFEavlrZeeoFrVXFYWzSt0ugOkSL7isxjyM1vmMzQ"},{"id":"2022-11-15-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-15-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-15-consensus.md","source":"@site/quarterly/2022-11-15-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2022-11-15T00:00:00.000Z","formattedDate":"November 15, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":3.655,"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 Quarterly Update","slug":"2022-11-15-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Update","permalink":"/cardano-updates/quarterly/2023-01-13-open-source"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/quarterly/2022-11-09-network"}},"content":"## Consensus Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- As a consequence of the errors observed when running distributed mempool\\n benchmarks, we re-designed the UTxO HD mempool integration, which fixed these\\n errors and lead to a simpler and more maintainable design.\\n\\n- We focused on increasing test coverage for the UTxO-HD prototype. In\\n particular, we added property tests for:\\n - Backing store (work ongoing)\\n - Era transitions\\n\\n- The property tests we added uncovered several bugs, which is a great result\\n given the exponential increase in the cost of finding bugs as they are closer\\n to deployment.\\n\\n- One of the errors found by our tests required us to work on improvements in\\n the Haskell bindings for LMDB. This work is ongoing.\\n\\n- We started working on the mempool property tests that will exercise the new\\n code paths that UTxO HD introduced.\\n\\n- We developed, benchmarked and tested an implementation of sequences of\\n differences based on \\"anti-diffs\\". Performance results of diff sequence\\n operations show that we achieved a speedup of about `4x` across several\\n scenarios. Note: this speedup is taking into account diff sequence operations\\n only, so the consensus-wide speedup is less than `4x`.\\n\\n- We integrated the \\"anti-diff\\" prototype into the UTxO HD feature branch.\\n\\n#### Genesis\\n\\n- We wrote a simulator that demonstrates soundness of an abstract implementation\\n of the new chain selection rule.\\n- We elaborated a draft specification for the Genesis implementation (currently\\n awaiting feedback from other architects).\\n- We elaborated a draft specification for the ChainSync Jumping optimization. In\\n particular, this includes a proof sketch that the latter preserves liveness\\n and safety in all cases.\\n- With the Networking team, we co-designed the eclipse avoidance mechanism,\\n specifically its coherence with the Genesis implementation plan\'s security\\n and its dependence on the new ChainSync Jumping optimization.\\n- We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a\\n performance degradation wrt the baseline. Our optimization attempts so far\\n have brought the performance closer to the baseline, but not yet to parity.\\n\\n#### Conway era\\n\\n- We did most of the heavy lifting required to integrate the Conway era into the\\n Consensus layer.\\n\\n#### Technical debt\\n\\n- We started working on enabling CI nightly tests, which revealed several test\\n failures due to thunks being found it data structures used by the ledger and\\n consensus. We made a lot of progress fixing those thunk errors, but some\\n errors still remain.\\n\\n- We elaborated a `db-analyser` benchmark for the ledger operations. This led us\\n to the identification of high processing time at epoch boundaries, and we\\n could not observe any performance degradation that can be attributed to era\\n changes.\\n\\n- We fixed a source of flakiness in the ChainDB QSM test.\\n\\n- We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n- We fixed a bug in the maximum-allowed ledger major protocol version.\\n\\n#### Fostering collaboration\\n\\n- We spent time making `cardano-updates` the central source of information for\\n the core teams stakeholders.\\n- We went through the Galois gap analysis and extracted actionable points to\\n take on next.\\n- Bart and Yogesh continued with their onboarding and stated making substantial\\n contributions to consensus.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Finish the mempool property tests.\\n- Benchmark the latest version of the prototype.\\n- Elaborate a document that describes new integration test scenarios and pass it\\n to the SDET team.\\n- Bring query UTxO by address command performance on par with the baseline\\n version.\\n\\n#### Genesis\\n\\n- Receive and incorporate Duncan\'s feedback on the first draft specification for\\n the Genesis implementation.\\n- Begin prototyping the first genesis implementation, unless the first draft\\n needs major changes.\\n- Draft a second revision of the Genesis report.\\n- Review the second revision with a wider audience, which includes at least\\n Alexander Russell. That feedback will drive a third and hopefully final\\n revision.\\n- Investigate how to mitigate the ~30% slowdown we have observed so far in the\\n ChainSync jumping prototype, and try to mitigate it. In particular, we might\\n need to optimize the existing BlockFetch logic.\\n\\n#### Tech debt\\n\\n- Enabling nightly CI tests.\\n\\n#### Fostering collaboration\\n\\n- Merge the tutorial document Galois wrote; requires CI integration.\\n- Come up with our own documentation improvements, many of which were suggested\\n in the Galois gap analysis.\\n- Try to hire a new team member."},{"id":"2022-11-09-network","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-09-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-09-network.md","source":"@site/quarterly/2022-11-09-network.md","title":"Network Team Update","description":"Network Quarterly Update","date":"2022-11-09T00:00:00.000Z","formattedDate":"November 9, 2022","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":3.87,"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-09-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2022-11-15-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2022-11-07-ledger"}},"content":"## Network Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Summary of most important improvements\\n\\nDuring this quarter the networking team delivered low level specification of\\npeer sharing & eclipse evasion. We held a session with the consensus & the\\nscientists; we got a positive feedback on the design.\\n\\nFurther we focused on implementation of peer sharing. We produced a [detail\\ndesign][peer-sharing-design] and an [early implementation][peer-sharing-pr].\\n\\nWe prepared the _P2P Single Relay Release_ (`cardano-node-1.35.5`). It\\nincludes over [130 patches][p2p-release] of network stack improvements over the\\nprevious version `1.35.4`, which were accomplished over a longer period of\\ntime. Among them are both bug fixes and UX improvements for stake pool\\noperators like simplified format of the [topology file][topology-file], or\\nimprovements in the logged messages:\\n\\n* [tracing of early consensus exceptions][consensus-startup-trace]\\n* [tracing of demotion of local root peers][demotion-trace] (traced with\\n `Warning` severity), the trace is called `TraceDemoteLocalAsynchronous`, in\\n `json` format it is encoded as `DemoteLocalAsynchronous`. For an SPO\\n tracking these demotion is vital (such demotion could indicate that a block\\n producer is no longer connected to its relays or vice versa)\\n\\nWe also provide better integration with [systemd][socket-activation] (socket\\nactivation improvements) or improvements in the networking stack:\\n\\n* [exit policies][exit-policy],\\n* [peer metrics improvements][peer-metrics],\\n* [DNS TTL][dns-ttl] improvements (which make it harder to misconfigure the\\n system, an issue discovered by the performance & monitoring team),\\n* do not trigger inbound idle timeout for `node-to-client` connections ([pr\\n #3844][idle-timeout]), an issue reported to us by Matthias Benkort from\\n Cardano Foundation.\\n\\nDuncan has been making progress with the input endorsers demo. His simulation\\nprovides a useful animated visualisation and live quantification of behaviour\\nof the modeled design.\\n\\nWe also improved our e2e diffusion simulation by implementing header-body\\nsplit, similar to what the real implementation does.\\n\\nWe also made some advances towards our future goals of P2P release for block\\nproducer nodes ([pr #3800][pr-3800] - in review) & for Daedalus users\\n([pr #3690][pr-3690] - merged).\\n\\n### Detailed log\\n\\n* We expanded diffusion simulation with block-fetch protocol bringing it closer\\n to the production system.\\n\\n* We addressed some additional technical depth in diffusion simulation\\n\\n* We slightly improved documentation & CI of io-sim and typed-protocols\\n repositories for open-source contributors.\\n\\n* We closed a number of issues towards publishing io-sim on Hackage (only two\\n essential issues are left open).\\n\\n* We pushed a branch of typed-protocols which captures one of the developer UX\\n problems in the API which we need to solve.\\n\\n* We identified and fixed an issue related to systemd sockets.\\n\\n* We identified and fixed an issue in consensus initialisation not giving\\n feedback on early errors.\\n\\n* We deployed RT View, identified a number of issues which were communicated to\\n the performance & monitoring team.\\n\\n* We finished high level & detailed design of peer sharing, very early\\n implementation of peer sharing is done (note that peer sharing cannot be\\n safely deployed without eclipse evasion & genesis).\\n\\n* We finished high level design of eclipse evasion, and started working on\\n a detailed design.\\n\\n* We were assigned the role of release engineer for 1.35.5 release (the P2P\\n single relay release); we prepared a cardano-node for 1.35.5 release which\\n contains more than 130 patches of just network stack improvements done over\\n last few months.\\n\\n* We diagnosed and fixed an tricky bug in the peer state actions (a component\\n which sits between outbound governor and connection manager). That bug was\\n introduced earlier this year and never released. It was caught by the QA\\n testing framework. We expanded our diffusion simulation to cover such case and\\n also mitigated a chance for reintroducing such a bug in future.\\n\\n* We identified and quite likely mitigated a misconfiguration in the\\n benchmarking cluster (next benchmarking run will confirm our hypothesis).\\n\\n* We simplified the format of p2p topology file, we got positive feedback from\\n SPOs.\\n\\n* We raised severities of some of the logging messages, which is an important\\n improvement for SPOs, exchanges and other users of the system.\\n\\n* We worked on input endorsers simulation which gives both animated and\\n quantified live feedback on network operation, using a simplified model of\\n a TCP/IP network. \\n\\n## Next quarter\\n\\n* Release the Single Relay P2P Release `1.35.5`.\\n\\n* Carry on with Peer Sharing (review, testing).\\n\\n* Deliver a talk at [Conference on Principles of Distributed Systems 2022][OPODIS2022] in Brussels, Belgium.\\n\\n* Present Detailed Design of Eclipse Evasion and start implementation phase.\\n\\n* Work on P2P Block Producer release.\\n\\n* Carry on with publishing of `io-sim` on `Hackage`.\\n\\n[OPODIS2022]: https://sites.uclouvain.be/OPODIS2022/ \\n[peer-sharing-design]: https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan\\n[peer-sharing-pr]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[p2p-release]: https://github.com/input-output-hk/ouroboros-network/pull/4120\\n[exit-policy]: https://github.com/input-output-hk/ouroboros-network/pull/3785\\n[peer-metrics]: https://github.com/input-output-hk/ouroboros-network/pull/3915\\n[socket-activation]: https://github.com/input-output-hk/ouroboros-network/pull/3979\\n[topology-file]: https://github.com/input-output-hk/cardano-node/pull/4563\\n[dns-ttl]: https://github.com/input-output-hk/ouroboros-network/pull/4106\\n[consensus-startup-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4015\\n[demotion-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[idle-timeout]: https://github.com/input-output-hk/ouroboros-network/pull/3844\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-3690]: https://github.com/input-output-hk/ouroboros-network/issues/3968"},{"id":"2022-11-07-ledger","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-07-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-07-ledger.md","source":"@site/quarterly/2022-11-07-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/quarterly/tags/ledger"}],"readingTime":1.255,"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-07-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/quarterly/2022-11-09-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/quarterly/2022-10-07-node-cli-api"}},"content":"## Ledger Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n* We finished a minimal ledger era capable of master key rotation.\\n This will be re-purposed our upcoming work.\\n* We have the humble beginnings of a proper ledger API.\\n* We improved the problematic cost model serialization\\n (recall the song and dance about updating the cost model one epoch after the hard fork).\\n* We have added benchmarks for problematic areas.\\n* Massive repository restructure and cleanup.\\n * Unified and consistent variable name schemes (not completely finished, but nearly there).\\n * Massive reduction in type constraints, which causes a lot of developer friction,\\n in our code and also downstream.\\n * More organized module structures.\\n * Improved generators for our property tests.\\n * We removed our dependency on cardano-prelude.\\n* The formal ledger model has come a long way.\\n * We created a fork of Agda that provides some meta-programming support for the ledger rules.\\n * We have a large amount of the basic UTxO support in the model.\\n * We can generate a good looking PDF from the model.\\n * We can produce Haskell from the model.\\n * We have a nice finite set theory library that we can use for many of the ledger rules.\\n * We have nix support for the model.\\n\\n## Next steps\\n\\n * Individual tracking of deposits. [[issue-3113]]\\n * Versioned CBOR encoders/decoders. [[issue-3014]]\\n * New ledger era transaction body (and the surround work associated with it).\\n * Designs for the next ledger era.\\n\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014"},{"id":"2022-10-07-node-cli-api","metadata":{"permalink":"/cardano-updates/quarterly/2022-10-07-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-07-nod-api-cli.md","source":"@site/quarterly/2022-11-07-nod-api-cli.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"cli-api-quarterly","permalink":"/cardano-updates/quarterly/tags/cli-api-quarterly"}],"readingTime":1.355,"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-07-node-cli-api","authors":"Jimbo4350","tags":["cli-api-quarterly"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2022-11-07-ledger"}},"content":"## Node-Api-Cli Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n- Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0\\n- Major clean up of stale iusses + PRs.\\n- Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs\\n- cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.\\n- 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.\\n- General documentation updates and improvements\\n- Addition of tx-mempool command which allows users to:\\n - Query 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- Initial refactoring of cardano-testnet\\n\\nNext quarter\\n\\n- cardano-api\\n - 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.\\n- cardano-testnet\\n - Working with Marc Fontaine to create an easy to use executable to deploy testnets locally - https://github.com/input-output-hk/cardano-node/issues/4598\\n- Serenity\\n - 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.\\n- 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/assets/js/ac8a5a87.a985d3d2.js b/assets/js/ac8a5a87.a985d3d2.js new file mode 100644 index 00000000000..6e27086d66d --- /dev/null +++ b/assets/js/ac8a5a87.a985d3d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25853],{33480:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-Q2-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md","source":"@site/quarterly/2023-Q2-consensus.md","title":"Consensus Q2 2023 Update","description":"2023-04 -- 2023-06","date":"2023-09-12T17:30:25.000Z","formattedDate":"September 12, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":4.47,"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 Q2 2023 Update","slug":"2023-Q2-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"nextItem":{"title":"Network Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-network"}},"content":"## 2023-04 -- 2023-06\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished a major prototype refactoring, which includes:\\n - A better and finer grained DB lock mechanism.\\n - Elimination of race conditions.\\n - Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.\\n - Architectural simplifications and performance improvements.\\n- We implemented a new package to support db-sync integration with UTxO-HD.\\n- We ran another set of ad-hoc benchmarks:\\n - We uncovered a performance regression on the Network component when using `GHC-9.2/9.4`.\\n - The synchronization and replay speed are as expected.\\n - However, we uncovered memory consumption issues (see figure below).\\n - The in-memory backend is consuming more memory than the baseline.\\n - The LMDB backend shows an unexpected memory usage peak.\\n - Investigation on these issues is ongoing.\\n- We integrated the latest changes in `main` branch.\\n - This required a re-design of the mempool to include the mempool fairness\\n improvement.\\n\\n![](/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png)\\n\\n#### Genesis\\n\\n- The Genesis work for this PI focused on an high-priority issue from the IOG Researchers\' feedback on the proposal.\\n - This particular question was not anticipated when the Q2 PI was planned.\\n - As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.\\n - That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.\\n- The IOG Researchers\' feedback on the design was very valuable. It had two primary effects.\\n- Outcome 1: We re-introduced distinct behaviors when the node is \\"syncing\\" versus when it is \\"caught up\\".\\n - This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.\\n - The additional design complexity is relatively small.\\n- Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.\\n - The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.\\n - All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.\\n - Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.\\n - The primary invention was a model for bounding how much benefit the adversary\'s long-range attack could possibly gain from Praos\'s natural short forks.\\n- Relevant questions that the IOG Researchers are still assessing.\\n - These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.\\n - Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?\\n - Question 2: what is the upper bound on how much grinding can improve the adversary\'s leader schedule within some Genesis window?\\n\\n#### Support\\n- We performed an analysis on number of file descriptors used by Consensus, this\\n information can be used by the node operators to check if the number of file\\n descriptors they want to support are enough, thus improving the user (eg node\\n operator) experience.\\n- We implemented a mempool fairness improvement, by which transactions are\\n guaranteed to be processed irrespective of their size.\\n\\n#### Technical debt\\n\\n- We fixed a bug in followers logic, which was discovered by our `QuickCheck`\\nproperty tests.\\n- We created an [immutable DB\\n server](https://github.com/input-output-hk/ouroboros-consensus/pull/68). This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.\\n- We created a [`db-truncater`](https://github.com/input-output-hk/ouroboros-consensus/pull/70) tool, which can be used in disaster recovery and benchmarking scenarios.\\n- We created a [benchmarks comparison tool](https://github.com/input-output-hk/ouroboros-consensus/pull/161) that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance *improvements* introduced by the Ledger team in version `0.6.0.0` of Consensus wrt version `0.5.0.0`.\\n\\n![](/images/consensus/2023-Q2-beacon-graph.png)\\n\\n#### Fostering collaboration\\n\\n- We released `fs-sim` as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.\\n- We migrated the consensus code to a [new repository](https://github.com/input-output-hk/ouroboros-consensus), splitting\\nit from the `ouroboros-network` repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).\\n- We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).\\n- We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- We will [get UTxO-HD ready for handover](https://github.com/input-output-hk/ouroboros-consensus/issues/28).\\n\\n#### Genesis\\n\\n- We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work."},{"id":"2023-Q2-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md","source":"@site/quarterly/2023-Q2-network.md","title":"Network Q2 2023 Update","description":"2023-04 - 2023-06","date":"2023-09-12T17:30:25.000Z","formattedDate":"September 12, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":5.145,"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 Q2 2023 Update","slug":"2023-Q2-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-consensus"},"nextItem":{"title":"SRE Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-sre"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\n#### Eclipse Evasion\\n\\nWe finalised the design of eclipse evasion and implemented its mechanism which\\nrelays on connectivity to _big ledger peers_. _Big ledger peers_ are the\\nlargest ledger peers which accumulate 90% of stake (currently there are less\\nthan 1000 of them). The outbound governor has new targets for _known_,\\n_established_ and _active_ big ledger peers which work in a similar way that\\nsuch targets work for ledger peers. The [ouroboros-network#4662] PR is\\ncurrently in review.\\n\\nAs part of this work we also identified a bug which would prevent a node to\\nconnect to itself. Such connections are not easily detectable and are expected\\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\\nThe failure was discovered thanks to our e2e simulation of diffusion using\\n`io-sim` & property based testing.\\n\\nThe PR also refactors the heart of the `ouroboros-network` interface reducing\\ntechnical debt that would otherwise accumulate.\\n\\nWe also identified a possible improvement in the churn mechanism, which will be\\nimplemented in Q3. Churn needs to await for peers to terminate, we can\\nimprove the synchronisation. [ouroboros-network#4617]\\n\\n#### Ecosystem P2P Deployment Progress\\n\\nWe reached __50% of stake in hands of SPOs who run at least on P2P relay__. Now\\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\\nrunning in P2P mode.\\n\\n![P2P Progress](/images/network/2023-07-06-p2p-progress.png)\\n\\n#### Peer Sharing\\n\\nWe implemented _bootstrapping for peer sharing_ (also known as light peer\\nsharing). New downstream (inbound) peers are now added to the _known peers_ of\\nthe _outbound governor_. Together with peer sharing this allows for non\\nregistered relays to propagate through the network. [ouroboros-network#3596]\\n\\n_Please note that peer sharing is disabled by default and is not considered safe\\nuntil Bootstrap Peers (see below) or Genesis is implemented._\\n\\n#### Diffusion (P2P)\\n\\n- We designed a feature which will reduce the load on IOG relays (in future\\n also run by CF & Emurgo). The feature consists of two parts. A new source\\n of peers called _bootstrap peers_ (obtained from via an https request), the\\n ability to switch from bootstrap peers to ledger peers if the node is synced\\n (we are collaborating with the consensus team on the interface [Bootstrap\\n Peers IER][bootstrap-ier]). This feature will be completed in Q3.\\n [ouroboros-network#4530]\\n\\n- We published a blog post about [P2P design & implementation][p2p-blog].\\n\\n- Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\\n [ouroboros-network#4559].\\n\\n- We merged changes which allow the consensus layer to start / stop block\\n forging thread. This will allow to deploy P2P block producing nodes which\\n serve as a live backup node. [ouroboros-consensus#140]\\n\\n- We fixed a few bugs in local root peers DNS resolution service:\\n [ouroboros-network#4583], [ouroboros-network#4571].\\n\\n- We limited concurrency of DNS name resolutions: [ouroboros-network#4596].\\n\\n- Galois Inc implemented query option for Handshake: [ouroboros-network#4256].\\n\\n- We fixed handshake query timeout: [ouroboros-network#4608].\\n\\n- We implemented warm valency for local root peers. This can help when using\\n DNS names in local root peers which resolve to many IP addresses. [ouroboros-network#4575]\\n\\n- We merged handshake changes which allow query protocol versions. Thanks to\\n James Parker from Galois Inc.: [ouroboros-network#4256], [cardano-cli#30].\\n\\n### Other Improvements & Developments\\n\\n#### CDDL\\n\\n- We added `node-to-node` and `node-to-client` CDDL specs / tests for encoding\\n of `NodeToNodeVersionData` and `NodeToClientVersionData`. \\n\\n- We clarified an inconsistency between CDDL spec and implementation which is\\n highly polymorphic. We designed and implemented a fix for `tx-submission`\\n and `local-tx-submission` mini-protocols. Specs for other mini-protocols will\\n be improved at a later stage. [ouroboros-network#4580]\\n\\n#### [Cardano Ping][cardano-ping]\\n\\n- `cardano-ping` command was deprecated in favour of `cardano-cli ping` (the\\n transition was done by the `node` team).\\n\\n- Support for `node-to-client` protocol using Unix sockets.\\n [ouroboros-network#4601]\\n\\n- Support for `NodeToNodeV_11` and `NodeToClientV_16`, [ouroboros-network#4587]\\n\\n- `cardano-cli ping` is now using _ISO8601_ format for timestamps. Formatting of\\n messages was improved. [ouroboros-network#4593]\\n\\n- `cardano-cli ping` has a new `--query-versions` flag which allows to query\\n supported versions by the remote node. This is supported by\\n `cardano-node-8.1.0`. [ouroboros-network#4589], [cardano-node#5313], [cardano-cli#30]\\n\\n#### [IOSim][io-sim]\\n\\n- We fixed timeouts & delays in `io-classes` in a series of PRs: [io-sim#81],\\n [io-sim#82], [io-sim#86], [io-sim#87].\\n\\n- We released `strict-stm-1.1.0.1` on Hackage which fixed a bug in package\\n description file: [io-sim#101].\\n\\n#### [Typed Protocols][typed-protocols]\\n\\n- We published haddocks of `typed-protocols` at\\n https://input-output-hk.github.io/typed-protocols\\n\\n#### [Cardano Client][cardano-client]\\n\\n- We fixed a bug in `cardano-client-0.1.0.2` release which results in clients\\n (e.g. `db-sync`) negotiate an experimental protocol version.\\n\\n#### Technical debt\\n\\n- After the split between consensus & network, we made `cardano-client`\\n independent of `ouroboros-consensus-diffusion`: [ouroboros-network#4526].\\n\\n- We wrap all exceptions in `DiffusionError`: [ouroboros-network#4537], [cardano-node#5356].\\n\\n#### CI improvements\\n\\n- We switched to use GitHub merge queues in `ouroboros-network`, `io-sim` and\\n `typed-protocols` repositories; [typed-protocols#30], [ouroboros-network#4546].\\n\\n- We cleaned & updated scripts which run on CI.\\n\\n- We implemented a script to verify & release packages on CHaP; [ouroboros-network#4542], [ouroboros-network#4573].\\n\\n- We implemented a new CI script and cleaned existing ones:\\n [ouroboros-network#4572].\\n\\n- We don\'t install cryptographic libraries on CI anymore as none of our\\n packages requires them; [ouroboros-network#4539].\\n\\n- Improved caching of dependencies: [ouroboros-network#4553].\\n\\n- We made it possible to trigger building haddock manually:\\n [ouroboros-network#4549].\\n\\n#### GHC 9.4 & 9.6\\n\\nWe made all repositories under our control compile with `ghc-9.4` and `ghc-9.6`\\nwhich includes `ouroboros-network`, `io-sim`, `typed-protocols` and\\n`Win32-network`.\\n\\n### Next steps\\n\\nWe will continue towards our [aspirational roadmap][roadmap].\\n\\n* We will continue reviewing eclipse evasion.\\n* As [ouroboros-consensus#140] was merged, we are making progress towards\\n releasing P2P on block production nodes. We hope to analyse performance\\n regression on such nodes observed on the benchmarking cluster. [roadmap-3887]\\n* We are also focused on [roadmap-3969]. Note that it was expanded in Q2.\\n\\n\\n[typed-protocols]: https://github.com/input-output-hk/typed-protocols\\n[typed-protocols#30]: https://github.com/input-output-hk/typed-protocols/pull/30\\n\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[io-sim#81]: https://github.com/input-output-hk/io-sim/pull/81\\n[io-sim#82]: https://github.com/input-output-hk/io-sim/pull/82\\n[io-sim#86]: https://github.com/input-output-hk/io-sim/pull/86\\n[io-sim#87]: https://github.com/input-output-hk/io-sim/pull/87\\n[io-sim#101]: https://github.com/input-output-hk/io-sim/pull/101\\n\\n\\n[cardano-node#5313]: https://github.com/input-output-hk/cardano-node/pull/5313\\n[cardano-node#5356]: https://github.com/input-output-hk/cardano-node/pull/5356\\n[cardano-cli#30]: https://github.com/input-output-hk/cardano-cli/pull/30/\\n\\n[cardano-client]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client\\n[cardano-ping]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping\\n[ouroboros-network#3596]: https://github.com/input-output-hk/ouroboros-network/issues/3596\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4526]: https://github.com/input-output-hk/ouroboros-network/pull/4526\\n[ouroboros-network#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[ouroboros-network#4537]: https://github.com/input-output-hk/ouroboros-network/issues/4537\\n[ouroboros-network#4539]: https://github.com/input-output-hk/ouroboros-network/issues/4539\\n[ouroboros-network#4540]: https://github.com/input-output-hk/ouroboros-network/issues/4540\\n[ouroboros-network#4542]: https://github.com/input-output-hk/ouroboros-network/issues/4542\\n[ouroboros-network#4546]: https://github.com/input-output-hk/ouroboros-network/pull/4546\\n[ouroboros-network#4549]: https://github.com/input-output-hk/ouroboros-network/issues/4549\\n[ouroboros-network#4553]: https://github.com/input-output-hk/ouroboros-network/issues/4553\\n[ouroboros-network#4559]: https://github.com/input-output-hk/ouroboros-network/pull/4559\\n[ouroboros-network#4571]: https://github.com/input-output-hk/ouroboros-network/pull/4571\\n[ouroboros-network#4572]: https://github.com/input-output-hk/ouroboros-network/pull/4572\\n[ouroboros-network#4573]: https://github.com/input-output-hk/ouroboros-network/pull/4573\\n[ouroboros-network#4575]: https://github.com/input-output-hk/ouroboros-network/pull/4575\\n[ouroboros-network#4580]: https://github.com/input-output-hk/ouroboros-network/pull/4580\\n[ouroboros-network#4583]: https://github.com/input-output-hk/ouroboros-network/pull/4583\\n[ouroboros-network#4587]: https://github.com/input-output-hk/ouroboros-network/pull/4587\\n[ouroboros-network#4589]: https://github.com/input-output-hk/ouroboros-network/pull/4589\\n[ouroboros-network#4593]: https://github.com/input-output-hk/ouroboros-network/pull/4593\\n[ouroboros-network#4596]: https://github.com/input-output-hk/ouroboros-network/pull/4596\\n[ouroboros-network#4601]: https://github.com/input-output-hk/ouroboros-network/pull/4601\\n[ouroboros-network#4608]: https://github.com/input-output-hk/ouroboros-network/pull/4608\\n[ouroboros-network#4662]: https://github.com/input-output-hk/ouroboros-network/pull/4662\\n\\n[bootstrap-ier]: https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md\\n[ouroboros-consensus#140]: https://github.com/input-output-hk/ouroboros-consensus/pull/140\\n\\n[io-sim-blog]: https://engineering.iog.io/2023-04-14-io-sim-annoucement\\n[p2p-blog]: https://engineering.iog.io/2023-06-28-p2p\\n\\n[roadmap]: https://github.com/orgs/input-output-hk/projects/39/views/30\\n[roadmap-3887]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505\\n[roadmap-3969]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},{"id":"2023-Q2-sre","metadata":{"permalink":"/cardano-updates/quarterly/2023-Q2-sre","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md","source":"@site/quarterly/2023-Q2-sre.md","title":"SRE Q2 2023 Update","description":"2023-04 - 2023-06","date":"2023-09-12T17:30:25.000Z","formattedDate":"September 12, 2023","tags":[{"label":"sre","permalink":"/cardano-updates/quarterly/tags/sre"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q2 2023 Update","slug":"2023-Q2-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-04-25-consensus"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:\\n- Expanding the darwin CI cluster and adding aarch64 builder support\\n- Adding bare metal capability to bitte clusters\\n- Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality\\n- Creation of pool performance analysis queries and scripting\\n- Migration of testnet metadata server to cardano-world\\n- Cardano shelley qa migration to cardano-world\\n- Cardano sanchonet environment spin up to test Conway era functionality\\n- Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature\\n\\n### Next steps\\n\\n- Continue with the conversion of mainnet to using p2p topology"},{"id":"2023-04-25-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-25-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-25-consensus.md","source":"@site/quarterly/2023-04-25-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-04-25T00:00:00.000Z","formattedDate":"April 25, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":2.3,"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 Quarterly Update","slug":"2023-04-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q2 2023 Update","permalink":"/cardano-updates/quarterly/2023-Q2-sre"},"nextItem":{"title":"Network Q1 2023 Update","permalink":"/cardano-updates/quarterly/2023-04-04-network"}},"content":"## Consensus Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished the testing activities for the prototype, which involved adding\\n new tests, and fixing and enabling temporarily disabled tests.\\n- We spent a substantial amount of effort refactoring and cleaning the\\n prototype.\\n- We audited the UTxO HD prototype to make sure it can accommodate the migration\\n of other tables (eg stake-keys registration) from memory to disk. The result\\n of the audit was positive.\\n- We ran ad-hoc benchmarks for reading keys and flushing values to disk. No\\n unexpected costs found.\\n- We ran the first system level benchmarks. The performance regressions reported\\n were due to an unrealistic snapshotting rate. We need to re-run them again\\n after we design a more fine grained locking mechanism.\\n\\n#### Genesis\\n\\n- We elaborated a roadmap of the remaining work for Genesis.\\n- We presented the design to the IOG Researchers and PNSol on February 20. The\\n design was well received. We updated the Genesis design with the researcher\'s\\n feedback.\\n - We plugged the new DoS vector identified during the aforementioned\\n presentation.\\n- We developed a generator for adversarial leader schedules that satisfy key\\n Ouroboros properties, which will be used to test the Genesis design.\\n - The generator enables use of smaller Ouroboros parameters, which makes\\n extrema more likely and counterxamples easier interpret.\\n- We wrote up the latest design iteration.\\n- We continued benchmarking the Chain Sync Jumping prototype. In particular:\\n - We debugged the prototype\'s performance regression, and unmasked the\\n actual cause by patching our initial theory (bad queuing behavior)\\n - We identified and validated the actual cause (a pathological case in\\n BlockFetch tiebreaker).\\n\\n#### Support\\n\\n- We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother\\n to serve a local immutable DB.\\n\\n#### Conway era\\n\\n- We integrated the Conway era into consensus.\\n\\n#### Technical debt\\n\\n- We fixed a bug with followers, which was discovered by property tests.\\n- We developed a DSL for specifying and running ChainDB test cases.\\n- We fixed failing tests with iterators.\\n- We created micro-benchmarks for adding transactions to the mempool.\\n\\n#### Fostering collaboration\\n\\n- We released a new technical documentation site for consensus.\\n- We factored out several packages to external repositories. Some of this work\\n originated in the UTxO HD workstream.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/28\\n\\n#### Genesis\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/33\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/32\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/31\\n\\n#### Support\\n\\n- Design Consensus side of hardfork-enactment in the Voltaire phase\\n ([#4180](https://github.com/input-output-hk/ouroboros-network/issues/4180)).\\n- Estimate the number of file descriptors Consensus needs\\n [#20](https://github.com/input-output-hk/ouroboros-consensus/issues/20).\\n\\n#### Tech debt\\n\\n- Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define\\n for consensus. Pick one and implement benchmarks for it.\\n\\n#### Fostering collaboration\\n\\n- Onboard a new team member."},{"id":"2023-04-04-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-04-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-04-network.md","source":"@site/quarterly/2023-04-04-network.md","title":"Network Q1 2023 Update","description":"2023-01 - 2023-03","date":"2023-04-04T00:00:00.000Z","formattedDate":"April 4, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":2.62,"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 Q1 2023 Update","slug":"2023-04-04-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-04-25-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2023-04-03-ledger"}},"content":"## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### Gradual dynamic P2P release on mainnet\\n\\nWe released two version of `cardano-node` with dynamic P2P capabilities:\\n\\n* [`1.35.6`][cardano-node-1.35.6]\\n - we found and fixed a bug in exception handling in `peer-state-actions`\\n [pull-4357]\\n - we found and fixed a busy loop when demoting a peer from hot to warm [pull-4385] \\n* [`1.35.7`][cardano-node-1.35.7]\\n - includes interoperability in the legacy non-p2p network stack [pull-4467]\\n* we fixed a busy loop of demotion & promotions: `warm -> hot -> warm`\\n [pull-4485] /it will be included in `cardano-node-8.0.0` release/.\\n\\nCurrently there are more than 200 P2P relays on mainnet.\\n\\n#### Peer Sharing\\n\\nWe implemented /peer sharing/ [pull-4019] which will be available as an\\nexperimental feature in one of the future `cardano-node` releases.\\n\\nWe implemented /light peer sharing/, e.g. adding inbound connections to the set\\nof known peers of the outbound governor, which allows to bootstrap relays not\\nregistered on chain. This complements peer sharing. The [pull-4277] is in\\nlate review stages.\\n\\n#### Eclipse Evasion\\n\\nWe finalised design of eclipse evasion and we started implementing it. We\\nhave an initial implementation (not merged). We are in the process of extending\\nour test suite to cover new implementation details: [issue-3886], [pull-4462].\\n\\n#### Cardano Network Service Assurance\\n\\nGalois has been making progress on _Cardano Network Service Assurance_ project.\\n\\n* In cardano-node, they have developed a `datapoint` abstraction that creates\\n a queue of (existing) log events, they now have two such `datapoint`s (of log\\n events) implemented.\\n\\n* They have developed a `datapoint` client executable that can connect to a node\\n which serves the \\"new tracing\\".\\n\\n* They have been exploring approaches for the consolidation and analysis of\\n `datapoint` data to extract actionable network health status.\\n\\n#### Cardano-Node\\n\\n* We made it possible to configure accepted connections limit [pull-4902].\\n\\n#### Testing improvements\\n\\n* We fixed a bug in network simulation implementation of TCP simultaneous open [pull-4265].\\n\\n* We introduced header-body split in the diffusion simulation [pull-4419] (in review).\\n\\n* We introduced initiator only nodes in the diffusion simulation [pull-4280].\\n\\n* We fixed a connection-manager test failure [issue-4370].\\n\\n#### Technical Debt\\n\\n* We refactored `Snocket` interface decoupling it from the multiplexer\\n [pull-4260]. This simplified some aspects of the KES agent implementation.\\n\\n* We introduces a record for CBOR codecs which are used for various data\\n structures by mini-protocol codecs [pull-4430].\\n\\n#### Documentation\\n\\n* We explained some limitations of CDDL in our technical report [pull-4351].\\n\\n#### IO-Sim\\n\\n* We fixed implementation of `MVar`\'s [pull-70].\\n\\n#### NoThunks\\n\\n* We published a new version of [`nothunks`] library to Hackage.\\n\\n### Next steps\\n\\n* Finish implementation & testing of eclipse evasion [issue-3886].\\n* Optimise connectivity to peers behind firewall [issue-4381].\\n* Finish the work on enabling block production dynamically to allow using P2P\\n on block producers [issue-3159].\\n* If time permits we would like also to reserve some time for finishing\\n publication of `io-sim` to Hackage.\\n\\n\\n[cardano-node-1.35.6]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.6\\n[cardano-node-1.35.7]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.7\\n\\n[pull-4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull-4277]: https://github.com/input-output-hk/ouroboros-network/pull/4277\\n[pull-4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[pull-4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[pull-4280]: https://github.com/input-output-hk/ouroboros-network/pull/4280\\n[pull-4351]: https://github.com/input-output-hk/ouroboros-network/pull/4351\\n[pull-4357]: https://github.com/input-output-hk/ouroboros-network/pull/4357\\n[pull-4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[pull-4430]: https://github.com/input-output-hk/outoboros-network/pull/4430\\n[pull-4460]: https://github.com/input-output-hk/outoboros-network/pull/4460\\n[pull-4462]: https://github.com/input-output-hk/outoboros-network/pull/4462\\n[pull-4465]: https://github.com/input-output-hk/outoboros-network/pull/4465\\n[pull-4467]: https://github.com/input-output-hk/outoboros-network/pull/4467\\n[pull-4419]: https://github.com/input-output-hk/outoboros-network/pull/4419\\n\\n[pull-4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n\\n[issue-3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue-3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[issue-4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue-4381]: https://github.com/input-output-hk/ouroboros-network/issues/4381\\n\\n[pull-70]: https://github.com/input-output-hk/io-sim/pull/70\\n\\n[`nothunks`]: https://hackage.haskell.org/package/nothunks"},{"id":"2023-04-03-ledger","metadata":{"permalink":"/cardano-updates/quarterly/2023-04-03-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-04-03-ledger.md","source":"@site/quarterly/2023-04-03-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2023-04-03T00:00:00.000Z","formattedDate":"April 3, 2023","tags":[{"label":"ledger","permalink":"/cardano-updates/quarterly/tags/ledger"}],"readingTime":6.405,"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-04-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q1 2023 Update","permalink":"/cardano-updates/quarterly/2023-04-04-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-18-consensus"}},"content":"## Ledger Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### CIPs\\n\\n* **Entering the Voltaire phase** -\\n CIP-1694 received a major update after participation in the design has expanded to\\n more and more people, including those who attended the Colorado workshop.\\n See [CIP-1694](https://github.com/cardano-foundation/CIPs/pull/380).\\n* **Ledger CIP category** -\\n The ledger team continues to embrace the CIP process, and has begun the process of\\n registering the ledger as an official CIP category.\\n See [CIP-84](https://github.com/cardano-foundation/CIPs/pull/456).\\n* **Ledger serialization** -\\n A CIP for the ledger serialization deprecation cycle has been accepted.\\n See [CIP-80](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0080).\\n\\n#### Formal ledger model\\n\\nOur new formal specifications backed by Agda have seen a lot of progress.\\nThe majority of the ideas in CIP-1694 are now present, and we have made enough progress\\nthat we can now safely say that the PDF produced by the Agda model will be the\\nofficial ledger specification for the Conway ledger era.\\nSee [the repository](https://github.com/input-output-hk/formal-ledger-specifications).\\n\\n\\n#### Conway ledger era\\n\\nProgress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model.\\nThe major component still missing is the DRep stake distribution, which still presents some\\ntechnical challenges.\\n\\n[[pull-3176]]\\n[[pull-3216]]\\n[[pull-3226]]\\n[[pull-3291]]\\n[[pull-3326]]\\n[[pull-3330]]\\n[[pull-3339]]\\n\\n#### DRep stake distribution computation\\n\\nAdding another large stake distribution to the ledger state must proceed with caution.\\nWe do not want the memory used by the node to increase too much,\\nand performance problems can lead to reduced block production.\\nWe have prototyped, tested, and benchmarked several approaches that could give us\\nthe current DRep stake distribution at each epoch boundary.\\nThis has very important implications, since we want every ADA holder to be able to at any\\ntime (such as during a contentious vote) register themselves as a DRep and still have time\\nto vote themselves on the issue.\\n\\n[[pull-3344]]\\n[[pull-3353]]\\n[[pull-3364]]\\n\\n#### Integration work\\n\\nThe ledger has made some wonderful improvements over the past six months,\\nbut which entail a significant amount of integration efforts:\\n\\n* Our new versioned CBOR schemes\\n* Individual deposit tracking\\n* An improved cross-era interface utilizing lenses\\n* A new ledger API\\n* Re-arranging the ledger stake in preparation for CIP-1694\\n* Versioning our Haskell packages\\n using [CHaPs](https://github.com/input-output-hk/cardano-haskell-packages).\\n* Consistent conventions for variable names\\n\\n\\n[[pull-3279]]\\n[[pull-3282]]\\n[[pull-3288]]\\n[[pull-3289]]\\n[[pull-3292]]\\n[[pull-3297]]\\n[[pull-3298]]\\n[[pull-3299]]\\n[[pull-3300]]\\n[[pull-3302]]\\n[[pull-3303]]\\n[[pull-3308]]\\n[[pull-3342]]\\n[[pull-3345]]\\n[[pull-3356]]\\n[[pull-3357]]\\n[[pull-3360]]\\n[[pull-3361]]\\n[[pull-3363]]\\n[[pull-4349]]\\n[[pull-378]]\\n[[pull-376]]\\n[[pull-373]]\\n[[pull-370]]\\n[[pull-361]]\\n[[pull-4976]]\\n[[pull-5013]]\\n\\n#### Deposit tracking\\n\\nIndividual deposits (for stake credential and stake pool registrations) were not tracked by the ledger.\\nDeposits were returned according to the current protocol parameters.\\nWhen the values of these two protocol parameters change, the deposit pot\\nis adjusted by adding to, or removing from, the reserves.\\n\\nThis has several problems:\\n* Most people expect a deposit to be paid back exactly.\\n* We cannot increase the deposit amount once the reserves hits zero.\\n* If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.\\n* Because of the problems above, it is going to be incredibly hard to ever change the values.\\n* There is a serious issue involving hard forks.\\n The consensus layer makes the decision about whether or not to enact a hard fork based on\\n the protocol parameter update state two stability windows before the end of the epoch.\\n However, the ledger will reject a protocol parameter update on the epoch boundary\\n if the deposit pot adjustments cannot be reconciled with the reseve pot.\\n This means that if quorum is met regarding changing the major protocol version,\\n but the update is rejected on the epoch boundary, consensus will change the era but the\\n ledger will not change the major protocol version, leaving the ledger in a split-brain state.\\n\\nBecause we never actually changed the values of the two deposits amounts in the protocol parameters\\non mainnet, we were able to retroactively change the behavior.\\nWe made the following changes:\\n * Individual deposits are tracked in the `DState`.\\n * The amount deposited is always returned.\\n\\n[[pull-3195]]\\n[[pull-3202]]\\n[[pull-3217]]\\n\\n#### New ledger API\\n\\nWe have significantly built up the ledger API.\\nWe will eventually replace much of the `cardano-api` in the node repository with this ledger API.\\n\\n[[pull-3242]]\\n[[pull-3248]]\\n[[pull-3328]]\\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 have a new declaritive infrastructure for building constraint-based generators,\\nwhich instead generate a random ledger state representative of not just an initial state,\\nbut also those representative of the end result of a long sequence of valid blocks.\\nMoreover, these generators are very fast and are much more random than our old generators.\\nBefore we can start using them for our existing property tests, however, we still need to\\nexpand them to generate a valid block for a given ledger state.\\n\\n[[pull-3219]]\\n\\n#### Technical debt\\n\\nWe continued to address technical debt as much as we can.\\n\\n[[pull-3167]]\\n[[pull-3170]]\\n[[pull-3172]]\\n[[pull-3175]]\\n[[pull-3184]]\\n[[pull-3205]]\\n[[pull-3208]]\\n[[pull-3210]]\\n[[pull-3212]]\\n[[pull-3218]]\\n[[pull-3222]]\\n[[pull-3223]]\\n[[pull-3224]]\\n[[pull-3225]]\\n[[pull-3229]]\\n[[pull-3239]]\\n[[pull-3241]]\\n[[pull-3244]]\\n[[pull-3245]]\\n[[pull-3249]]\\n[[pull-3260]]\\n[[pull-3263]]\\n[[pull-3264]]\\n[[pull-3268]]\\n[[pull-3269]]\\n[[pull-3270]]\\n[[pull-3274]]\\n[[pull-3276]]\\n[[pull-3277]]\\n[[pull-3286]]\\n[[pull-3290]]\\n[[pull-3295]]\\n[[pull-3296]]\\n[[pull-3306]]\\n[[pull-3307]]\\n[[pull-3310]]\\n[[pull-3311]]\\n[[pull-3316]]\\n[[pull-3320]]\\n[[pull-3323]]\\n[[pull-3327]]\\n[[pull-3331]]\\n[[pull-3332]]\\n[[pull-3333]]\\n[[pull-3338]]\\n[[pull-3341]]\\n[[pull-3347]]\\n[[pull-3350]]\\n[[pull-3351]]\\n[[pull-3352]]\\n[[pull-3354]]\\n\\n##### Critical fixes\\n\\nWe fixed two critical issues:\\n* Growing block production delay on the epoch boundary: [[pull-3209]]\\n* Unexpected node shutdown from `balanceR`: [[pull-3343]]\\n\\n### Next steps\\n\\n* **Conway spec** -\\n Complete the first version of the conway formal specification.\\n* **DRep stake distribution** -\\n Have the ledger compute the DRep stake distribution with acceptible performance.\\n* **Devnet ready** -\\n Have the Haskell implementation of the conway era in sync with the formal specification,\\n and integrate the changes with consensus and node.\\n All the details might not be finalized, but the wire specification and the API should\\n be stable so that conway can be placed on a devnet for tool builders to start integrating with.\\n* **Plutus V3** -\\n Integrate Plutus V3 into the ledger, including a new script context which supports DReps.\\n\\n### More details\\n\\nThis quarterly report was based off of the following fortnightly ones:\\n\\n* [2023-01-05](2023-01-05-ledger)\\n* [2023-01-19](2023-01-19-ledger)\\n* [2023-02-02](2023-02-02-ledger)\\n* [2023-02-17](2023-02-17-ledger)\\n* [2023-03-03](2023-03-03-ledger)\\n* [2023-03-17](2023-03-17-ledger)\\n* [2023-03-31](2023-03-31-ledger)\\n\\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\\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-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\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-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\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-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\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-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\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-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\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-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\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\\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-3333]: https://github.com/input-output-hk/cardano-ledger/pull/3333\\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\\n[pull-3342]: https://github.com/input-output-hk/cardano-ledger/pull/3342\\n[pull-3343]: https://github.com/input-output-hk/cardano-ledger/pull/3343\\n[pull-3344]: https://github.com/input-output-hk/cardano-ledger/pull/3344\\n[pull-3345]: https://github.com/input-output-hk/cardano-ledger/pull/3345\\n[pull-3347]: https://github.com/input-output-hk/cardano-ledger/pull/3347\\n[pull-3350]: https://github.com/input-output-hk/cardano-ledger/pull/3350\\n[pull-3351]: https://github.com/input-output-hk/cardano-ledger/pull/3351\\n[pull-3352]: https://github.com/input-output-hk/cardano-ledger/pull/3352\\n[pull-3353]: https://github.com/input-output-hk/cardano-ledger/pull/3353\\n[pull-3354]: https://github.com/input-output-hk/cardano-ledger/pull/3354\\n[pull-3356]: https://github.com/input-output-hk/cardano-ledger/pull/3356\\n[pull-3357]: https://github.com/input-output-hk/cardano-ledger/pull/3357\\n[pull-3360]: https://github.com/input-output-hk/cardano-ledger/pull/3360\\n[pull-3361]: https://github.com/input-output-hk/cardano-ledger/pull/3361\\n[pull-3363]: https://github.com/input-output-hk/cardano-ledger/pull/3363\\n[pull-3364]: https://github.com/input-output-hk/cardano-ledger/pull/3364\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349\\n\\n[pull-378]: https://github.com/input-output-hk/cardano-base/pull/378\\n[pull-376]: https://github.com/input-output-hk/cardano-base/pull/376\\n[pull-373]: https://github.com/input-output-hk/cardano-base/pull/373\\n[pull-370]: https://github.com/input-output-hk/cardano-base/pull/370\\n[pull-361]: https://github.com/input-output-hk/cardano-base/pull/361\\n\\n[pull-4976]: https://github.com/input-output-hk/cardano-node/pull/4976\\n[pull-5013]: https://github.com/input-output-hk/cardano-node/pull/5013"},{"id":"2023-01-18-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-18-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-18-consensus.md","source":"@site/quarterly/2023-01-18-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-01-18T00:00:00.000Z","formattedDate":"January 18, 2023","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":3.205,"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 Quarterly Update","slug":"2023-01-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2023-04-03-ledger"},"nextItem":{"title":"Network Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-13-network"}},"content":"## Consensus Quarterly Update\\n## 2022-12 - 2023-01\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\nThe prototype is feature complete and thoroughly tested at the consensus level.\\nIn particular, we invested a lot of time in writing property-test for the\\nmempool, and other crucial new parts of the prototype. Now we are ready to run\\nintegration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\nWe identified and fixed a slowdown in cross-era forecasting that was inhibiting\\nour efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7%\\nspeedup in full sync times in the baseline.\\n\\nWe also started prototyping a self-contained implementation of the Genesis\\ndynamics (in particular of the parts intentionally not part of the ChainSync\\nJumping prototype) that furthered our understanding of subtleties and edge\\ncases.\\n\\n#### Support\\n\\n- We worked on designing integration of new VRF and KES crypto into consensus.\\n - `Crypto` class was split into two parts: `Crypto` and `HeaderCrypto`.\\n - With the Ledger team\'s help, we refactored `cardano-ledger` to use a proxy\\n type for VRF.\\n\\n#### Conway era\\n\\n- PR went through its second review round. It is about to be merged, but it got\\n delayed due to people\'s availability during Christmas break.\\n\\n#### Technical debt\\n\\n- We improved the capabilities of our `io-sim` library, which is key for testing\\n and simulating Cardano components.\\n- We removed thunks from epoch translations in the ledger, which is important\\n for reducing memory consumption of the Cardano node.\\n\\n#### Fostering collaboration\\n\\n- We added a tutorial on how to instantiate the Consensus layer to run custom\\n ledgers. This should be a valuable resource to people looking to roll their\\n own custom blockchain (either for commercial or research purposes).\\n- We added an overview of consensus to the [top level\\n documentation](https://input-output-hk.github.io/ouroboros-network/) of\\n ouroboros-network. This overview describes the consensus components and adds a\\n hyperlinked map to the modules documentation.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Evaluate the extensibility of the prototype. Moving the UTxO to disk is only\\n the first step towards reducing the memory requirements of Cardano node, and\\n ensuring its long term sustainability. In the future, we plan on moving other\\n large maps, such as delegation maps. The prototype should be able to\\n accommodate these changes without any major modifications.\\n- Start the integration with other downstream components, such as the wallet and\\n db-sync. The idea is to identify and address any potential pain points that\\n might arise during this integration.\\n- Run integration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\n- Finish benchmarking and tuning the fast-path ChainSync Jumping prototype\\n- Expand and optimize the self-contained implementation of the Disconnect Rule\\n (including density comparisons and the LoE)\\n- Develop documentation and smoke tests for these components.\\n- Start modifying the ChainSync Client for the LoP and LoR.\\n\\n#### Support\\n\\n- Help the Network team with diagnosing performance regression in block\\n production.\\n\\n#### Tech debt\\n\\n- Fix property-test failures concerning iterators ([#3999][issue-3999] and\\n [#4183][issue-4183]).\\n\\n#### Fostering collaboration\\n\\n- Finish [mapping consensus][issue-4145].\\n\\n### Risks \\n\\n#### UTxO HD\\n\\n- Moving other parts of the ledger state to disk might require a major redesign\\n of the prototype. For instance, if it turns out that the epoch change rules\\n require access to the *full* ledger state. If this is the case, we might\\n accept this risk and do the redesign after the initial release of UTxO-HD.\\n- Integration with downstream clients might require more work than we\\n anticipate.\\n- Access to the benchmarking\'s team time and resources.\\n- Benchmarking results might show significant performance degradation, which\\n will require additional work if such performance degradation is not accepted\\n by other stakeholders.\\n- The prototype\'s performance might not be accepted by other stakeholders. Here\\n we need to clearly communicate that this is necessary to ensure that as the\\n blockchain size grows, the node can operate within reasonable memory\\n constraints.\\n\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[issue-3999]: https://github.com/input-output-hk/ouroboros-network/issues/3999\\n[issue-4145]: https://github.com/input-output-hk/ouroboros-network/issues/4145"},{"id":"2023-01-13-network","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-13-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-13-network.md","source":"@site/quarterly/2023-01-13-network.md","title":"Network Quarterly Update","description":"Network Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":4.125,"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 Quarterly Update","slug":"2023-01-13-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-18-consensus"},"nextItem":{"title":"Open-Source Update","permalink":"/cardano-updates/quarterly/2023-01-13-open-source"}},"content":"## Network Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nThe primary goal of the networking team was to focus on the single relay\\nrelease of P2P. We fixed a number of small late bugs, and concluded QA\\n& performance testing. Although it was discovered a regression in performance\\nof block production when P2P is enabled, relaying with P2P performs better\\ncomparing to a non p2p. We concluded that this is not a blocker for the Single\\nRelay Release which is planned shortly.\\n\\n[Peer sharing][pr #4019] has gone through review and final review is\\njust being done right now. After merging it will still be disabled (hidden\\nbehind a flag) as it\'s not safe without eclipse evasion. We started\\nimplementing light peer sharing (i.e. include inbound peers into known peer set\\nof the outbound governor).\\n\\nWe started a detailed eclipse evasion design, it will continue in the next\\nquarter.\\n\\nWe also made a major revision of package structure of the network packages. We\\nended up with a very clean dependency graph ([pr #4155]).\\n\\nArmando Santos delivered a talk at the [ODOPIS 2022] conference on principles\\nof distributed systems in Brussels. The slides are available [here][ODOPIS-slides].\\n\\nNeil Davies gave an invited seminar on `DeltaQ` at Universit\xe9 Catholique de\\nLouvain.\\n\\nWe also found and fixed a few of bugs:\\n\\n* a bug in keep alive mini-protocol which resulted in warm to cold transitions\\n to be always executed through a timeout path rather than do a clean demotion\\n ([pr #4168]).\\n\\n* fixed an assetion failure in the outbound governor ([issue #4177]) \\n\\n- we fixed DNS test failure [issue #4191]\\n\\n### Next steps\\n\\nWe will work towards the next release of P2P for block producer nodes. This includes:\\n\\n* analysing performance regression for BP nodes when using P2P\\n* finish the work on controlling the block forger through node kernel ([pr #3800])\\n* address [issue #3907] and write a script to analyse deployment of P2P relays\\n\\nWe would like also to push forward eclipse evasion. Although most of the work\\nhas be done already the release of `io-sim` on `Hackage` will happen in the\\nnext quarter.\\n\\nWe would also like to address [chain-sync timeout issue][issue #4244] recently\\ndiagnosed by Karl Knutsson.\\n\\nIf time permits we would also like to address some technical debt, especially:\\n\\n- [enable nothunk in diffusion tests][issue #3387]\\n- [refactor diffusion testnet simulation][issue #4085]\\n\\n### Risks\\n\\nThe performance regression for block producer with P2P needs to be investigated\\nin the near future. This is blocker for the release of P2P on BP nodes.\\n\\n### Detailed log\\n\\n#### Contributions to Ouroboros-Network\\n\\n- We added `TraceDemoteLocalAsynchronous`, which enables notification of critical issues for SPOs\\n- We fixed `cardano-ping` compatibility with `NodeToNodeV_10` (P2P, [pr #4165])\\n- We fixed a bug in demotion peers to cold which affected P2P nodes ([commit-61058aa5c2])\\n- Karl Knutsson enhanced `SendFetchRequest` ([commit-bb1c3dddee]), open-source contribution)\\n- We turned `SizeInBytes` into a newtype.\\n- We extended `CONTRIBUTING.md`, `README.md`, added `CODE_OF_CONDUCT`.\\n- We fixed DNS test failure [issue #4191]\\n- We fixed a simulation bug found in [issue #4258]\\n- [pr #4168]\\n- [issue #4177]\\n\\n#### Contributions to Cardano-Node\\n\\n- We maintained the Single Relay Release [pr #4612], (e.g. fixing CI issues,\\n Rebasing it when necessary, publishing packages to Cardano Haskell Packages);\\n- We enhanced `JSON` serialisation / deserialisation of `NodeToNodeVersion` and `NodeToClientVersion`;\\n\\n#### Contributions to IOSim\\n\\n- We started to use Cardano Haskell Packages for `IOSim` ([pr #48])\\n- We updated change log files\\n- We added support of `ghc-9.4` ([pr #50])\\n\\nWe also addressed the following issues in [pr #57] in order to prepare the package for publication on Hackage:\\n\\n- refactored `io-classes` timers API ([issue #46]);\\n- created a new package `si-timers` which exposes an interface using SI units\\n and is safe on 32-bit systems ([issue #59]);\\n- added monad transformers instances for classes defined in `io-classes` ([issue #58]);\\n- created `io-classes-mtl` package which includes (experimental) instances for monad transformers;\\n- provide `MonadMonotonicTimeNSec` in `io-classes` and `MonadMonotonicTime` in `si-timers` (so that `io-classes` follow the `base` package);\\n- added `registerCancellableDelay` in `si-timers` (which allowed us to hide fancy timer api and clean `io-classes`)\\n- added support for `js_HOST_ARCH` (the new GHC JS backend)\\n\\nNote the [pr #57] contains almost 40 commits, and was a major step forward for\\n`io-sim` ecosystem. We also prepared a draft [pr #4281] which updates\\n`ouroboros-network`.\\n\\nOther changes for `1.0.0.0` release on Hackage:\\n\\n- Refactored test suite ([pr #47])\\n- Updated documentation, cabal files, `CONTRIBUTING`, `SECURITY` documents, etc in [pr #60], currently under review.\\n\\n[commit-61058aa5c2]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/61058aa5c28a144d723aae183d1745552d757334\\n[commit-bb1c3dddee]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/bb1c3dddeea78949f531c144bb4f2669eddf7f47\\n[issue #3387]: https://github.com/input-output-hk/ouroboros-network/issues/3387\\n[issue #3907]: https://github.com/input-output-hk/ouroboros-network/issues/3907\\n[issue #4085]: https://github.com/input-output-hk/ouroboros-network/issues/4085\\n[issue #4168]: https://github.com/input-output-hk/ouroboros-network/issues/4168\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[issue #4191]: https://github.com/input-output-hk/ouroboros-network/issues/4191\\n[issue #4244]: https://github.com/input-output-hk/ouroboros-network/issues/4244\\n[issue #4258]: https://github.com/input-output-hk/ouroboros-network/issues/4258\\n[issue #46]: https://github.com/input-output-hk/io-sim/issues/46\\n[issue #58]: https://github.com/input-output-hk/io-sim/issues/58\\n[issue #59]: https://github.com/input-output-hk/io-sim/issues/59\\n[pr #3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pr #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[pr #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[pr #4281]: https://github.com/input-output-hk/cardano-node/pull/4281\\n[pr #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[pr #47]: https://github.com/input-output-hk/io-sim/pull/47\\n[pr #48]: https://github.com/input-output-hk/io-sim/pull/48\\n[pr #49]: https://github.com/input-output-hk/io-sim/pull/49\\n[pr #50]: https://github.com/input-output-hk/io-sim/pull/50\\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[ODOPIS 2022]: https://sites.uclouvain.be/OPODIS2022/armando-details.html\\n[ODOPIS-slides]: https://sites.uclouvain.be/OPODIS2022/slides/OPODIS2022-slides-Santos.pdf"},{"id":"2023-01-13-open-source","metadata":{"permalink":"/cardano-updates/quarterly/2023-01-13-open-source","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-01-13-open-source.md","source":"@site/quarterly/2023-01-13-open-source.md","title":"Open-Source Update","description":"Open Source Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"open-source","permalink":"/cardano-updates/quarterly/tags/open-source"}],"readingTime":2.215,"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 Update","slug":"2023-01-13-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Network Quarterly Update","permalink":"/cardano-updates/quarterly/2023-01-13-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2022-11-15-consensus"}},"content":"## Open Source Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nIn the last quarter the open-source initiative delivered a comprehensive report\\non the state of our repositories. As part of this work stream we\\nidentified the key open-source repositories for the cardano project across all\\nthe projects From a list of more than 500 repositories (some of which are\\nforks) we identified key repositories which constitute the core of Cardano.\\n20 of them were identified as to be transferred to the future MBO which will\\ngovern Cardano development. Some where excluded (like [`io-sim`] and\\n[`typed-protocols`]), to be govern by IOG, since they have a much broader\\napplication than Cardano itself, and thus we think their open-source future\\nwill be better outside of the Cardano umbrella.\\n\\nChristian Taylor identified a number of ways we can improve our repositories to\\nmake them more attractive for open-source contributions by analysing each of\\nthem. This includes adding or improving various documentation files, like\\n`CONTRIBUTING` files, adding code of conduct, improving readme files, issue\\n& pull request templates etc. Christian also computed various interesting\\nmetrics which gives a very good insight into the development practices: e.g.\\naverage merge ratio, average number of reviews, comments and many more! The\\npresentation is available [here][open-source-presentation].\\n\\nWe followed with work on the [Cardano Engineering Handbook][CEH]. We included\\na standard code of conduct which is now used by most important projects in the\\nCardano space. We included `cardano-node`\'s security policy and added\\na responsible disclosure policy. We also described how roles and\\nresponsibilities should be clarified. This progress was made by\\na collaborative effort of the Cardano Core, Plutus and Architecture teams, and\\nit wouldn\'t be possible without Michael Peyton Jones, Arnaud Bailly, Kevin\\nHammond, Jared Corduan and Marcin Szamotulski.\\n\\nWe also improved the documentation of key repositories, by adding description,\\nimproving their `README` file & `CONTRIBUTING` files, adding code of conducts\\nfollowing the [Cardano Engineering Handbook][CEH]. This includes improvements to:\\n\\n* [`ouroboros-network`] (both `network` & `consensus`)\\n* [`cardano-ledger`]\\n* [`cardano-node`]\\n\\nAnd also\\n\\n* [`io-sim`]\\n* [`typed-protocols`]\\n* [`cardano-prelude`] (work in progress)\\n\\nThe work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan. \\n\\n\\nIn this quarter we also identified a number of projects which can be published to\\n`Hackage` (Haskell\'s package repository) or `crate` (Rust package repository).\\nThe list contains 21 packages, 2 of which ([`hedgehog-extras`] and\\n[`quickcheck-dynamic`]) are already published on Hackage and another 5 (from\\nthe [`io-sim`] repository) are close to be published.\\n\\n\\n### Detailed log\\n\\nThe progress of the open-source project is tracked in [this project][open-source-project].\\n\\n[CEH]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[open-source-project]: https://github.com/orgs/input-output-hk/projects/60/views/1\\n[`cardano-ledger`]: https://github.com/input-output-hk/cardano-ledger\\n[`cardano-node`]: https://github.com/input-output-hk/cardano-node\\n[`cardano-prelude`]: https://github.com/input-output-hk/cardano-prelude\\n[`hedgehog-extras`]: https://hackage.haskell.org/package/hedgehog-extras\\n[`io-sim`]: https://github.com/input-output-hk/io-sim\\n[`ouroboros-network`]: https://github.com/input-output-hk/ouroboros-network\\n[`quickcheck-dynamic`]: https://hackage.haskell.org/package/quickcheck-dynamic\\n[`typed-protocols`]: https://github.com/input-output-hk/typed-protocols\\n[open-source-presentation]: https://docs.google.com/presentation/d/127IFEavlrZeeoFrVXFYWzSt0ugOkSL7isxjyM1vmMzQ"},{"id":"2022-11-15-consensus","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-15-consensus","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-15-consensus.md","source":"@site/quarterly/2022-11-15-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2022-11-15T00:00:00.000Z","formattedDate":"November 15, 2022","tags":[{"label":"consensus","permalink":"/cardano-updates/quarterly/tags/consensus"}],"readingTime":3.655,"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 Quarterly Update","slug":"2022-11-15-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Update","permalink":"/cardano-updates/quarterly/2023-01-13-open-source"},"nextItem":{"title":"Network Team Update","permalink":"/cardano-updates/quarterly/2022-11-09-network"}},"content":"## Consensus Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- As a consequence of the errors observed when running distributed mempool\\n benchmarks, we re-designed the UTxO HD mempool integration, which fixed these\\n errors and lead to a simpler and more maintainable design.\\n\\n- We focused on increasing test coverage for the UTxO-HD prototype. In\\n particular, we added property tests for:\\n - Backing store (work ongoing)\\n - Era transitions\\n\\n- The property tests we added uncovered several bugs, which is a great result\\n given the exponential increase in the cost of finding bugs as they are closer\\n to deployment.\\n\\n- One of the errors found by our tests required us to work on improvements in\\n the Haskell bindings for LMDB. This work is ongoing.\\n\\n- We started working on the mempool property tests that will exercise the new\\n code paths that UTxO HD introduced.\\n\\n- We developed, benchmarked and tested an implementation of sequences of\\n differences based on \\"anti-diffs\\". Performance results of diff sequence\\n operations show that we achieved a speedup of about `4x` across several\\n scenarios. Note: this speedup is taking into account diff sequence operations\\n only, so the consensus-wide speedup is less than `4x`.\\n\\n- We integrated the \\"anti-diff\\" prototype into the UTxO HD feature branch.\\n\\n#### Genesis\\n\\n- We wrote a simulator that demonstrates soundness of an abstract implementation\\n of the new chain selection rule.\\n- We elaborated a draft specification for the Genesis implementation (currently\\n awaiting feedback from other architects).\\n- We elaborated a draft specification for the ChainSync Jumping optimization. In\\n particular, this includes a proof sketch that the latter preserves liveness\\n and safety in all cases.\\n- With the Networking team, we co-designed the eclipse avoidance mechanism,\\n specifically its coherence with the Genesis implementation plan\'s security\\n and its dependence on the new ChainSync Jumping optimization.\\n- We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a\\n performance degradation wrt the baseline. Our optimization attempts so far\\n have brought the performance closer to the baseline, but not yet to parity.\\n\\n#### Conway era\\n\\n- We did most of the heavy lifting required to integrate the Conway era into the\\n Consensus layer.\\n\\n#### Technical debt\\n\\n- We started working on enabling CI nightly tests, which revealed several test\\n failures due to thunks being found it data structures used by the ledger and\\n consensus. We made a lot of progress fixing those thunk errors, but some\\n errors still remain.\\n\\n- We elaborated a `db-analyser` benchmark for the ledger operations. This led us\\n to the identification of high processing time at epoch boundaries, and we\\n could not observe any performance degradation that can be attributed to era\\n changes.\\n\\n- We fixed a source of flakiness in the ChainDB QSM test.\\n\\n- We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n- We fixed a bug in the maximum-allowed ledger major protocol version.\\n\\n#### Fostering collaboration\\n\\n- We spent time making `cardano-updates` the central source of information for\\n the core teams stakeholders.\\n- We went through the Galois gap analysis and extracted actionable points to\\n take on next.\\n- Bart and Yogesh continued with their onboarding and stated making substantial\\n contributions to consensus.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Finish the mempool property tests.\\n- Benchmark the latest version of the prototype.\\n- Elaborate a document that describes new integration test scenarios and pass it\\n to the SDET team.\\n- Bring query UTxO by address command performance on par with the baseline\\n version.\\n\\n#### Genesis\\n\\n- Receive and incorporate Duncan\'s feedback on the first draft specification for\\n the Genesis implementation.\\n- Begin prototyping the first genesis implementation, unless the first draft\\n needs major changes.\\n- Draft a second revision of the Genesis report.\\n- Review the second revision with a wider audience, which includes at least\\n Alexander Russell. That feedback will drive a third and hopefully final\\n revision.\\n- Investigate how to mitigate the ~30% slowdown we have observed so far in the\\n ChainSync jumping prototype, and try to mitigate it. In particular, we might\\n need to optimize the existing BlockFetch logic.\\n\\n#### Tech debt\\n\\n- Enabling nightly CI tests.\\n\\n#### Fostering collaboration\\n\\n- Merge the tutorial document Galois wrote; requires CI integration.\\n- Come up with our own documentation improvements, many of which were suggested\\n in the Galois gap analysis.\\n- Try to hire a new team member."},{"id":"2022-11-09-network","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-09-network","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-09-network.md","source":"@site/quarterly/2022-11-09-network.md","title":"Network Team Update","description":"Network Quarterly Update","date":"2022-11-09T00:00:00.000Z","formattedDate":"November 9, 2022","tags":[{"label":"network","permalink":"/cardano-updates/quarterly/tags/network"}],"readingTime":3.87,"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-09-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/cardano-updates/quarterly/2022-11-15-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2022-11-07-ledger"}},"content":"## Network Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Summary of most important improvements\\n\\nDuring this quarter the networking team delivered low level specification of\\npeer sharing & eclipse evasion. We held a session with the consensus & the\\nscientists; we got a positive feedback on the design.\\n\\nFurther we focused on implementation of peer sharing. We produced a [detail\\ndesign][peer-sharing-design] and an [early implementation][peer-sharing-pr].\\n\\nWe prepared the _P2P Single Relay Release_ (`cardano-node-1.35.5`). It\\nincludes over [130 patches][p2p-release] of network stack improvements over the\\nprevious version `1.35.4`, which were accomplished over a longer period of\\ntime. Among them are both bug fixes and UX improvements for stake pool\\noperators like simplified format of the [topology file][topology-file], or\\nimprovements in the logged messages:\\n\\n* [tracing of early consensus exceptions][consensus-startup-trace]\\n* [tracing of demotion of local root peers][demotion-trace] (traced with\\n `Warning` severity), the trace is called `TraceDemoteLocalAsynchronous`, in\\n `json` format it is encoded as `DemoteLocalAsynchronous`. For an SPO\\n tracking these demotion is vital (such demotion could indicate that a block\\n producer is no longer connected to its relays or vice versa)\\n\\nWe also provide better integration with [systemd][socket-activation] (socket\\nactivation improvements) or improvements in the networking stack:\\n\\n* [exit policies][exit-policy],\\n* [peer metrics improvements][peer-metrics],\\n* [DNS TTL][dns-ttl] improvements (which make it harder to misconfigure the\\n system, an issue discovered by the performance & monitoring team),\\n* do not trigger inbound idle timeout for `node-to-client` connections ([pr\\n #3844][idle-timeout]), an issue reported to us by Matthias Benkort from\\n Cardano Foundation.\\n\\nDuncan has been making progress with the input endorsers demo. His simulation\\nprovides a useful animated visualisation and live quantification of behaviour\\nof the modeled design.\\n\\nWe also improved our e2e diffusion simulation by implementing header-body\\nsplit, similar to what the real implementation does.\\n\\nWe also made some advances towards our future goals of P2P release for block\\nproducer nodes ([pr #3800][pr-3800] - in review) & for Daedalus users\\n([pr #3690][pr-3690] - merged).\\n\\n### Detailed log\\n\\n* We expanded diffusion simulation with block-fetch protocol bringing it closer\\n to the production system.\\n\\n* We addressed some additional technical depth in diffusion simulation\\n\\n* We slightly improved documentation & CI of io-sim and typed-protocols\\n repositories for open-source contributors.\\n\\n* We closed a number of issues towards publishing io-sim on Hackage (only two\\n essential issues are left open).\\n\\n* We pushed a branch of typed-protocols which captures one of the developer UX\\n problems in the API which we need to solve.\\n\\n* We identified and fixed an issue related to systemd sockets.\\n\\n* We identified and fixed an issue in consensus initialisation not giving\\n feedback on early errors.\\n\\n* We deployed RT View, identified a number of issues which were communicated to\\n the performance & monitoring team.\\n\\n* We finished high level & detailed design of peer sharing, very early\\n implementation of peer sharing is done (note that peer sharing cannot be\\n safely deployed without eclipse evasion & genesis).\\n\\n* We finished high level design of eclipse evasion, and started working on\\n a detailed design.\\n\\n* We were assigned the role of release engineer for 1.35.5 release (the P2P\\n single relay release); we prepared a cardano-node for 1.35.5 release which\\n contains more than 130 patches of just network stack improvements done over\\n last few months.\\n\\n* We diagnosed and fixed an tricky bug in the peer state actions (a component\\n which sits between outbound governor and connection manager). That bug was\\n introduced earlier this year and never released. It was caught by the QA\\n testing framework. We expanded our diffusion simulation to cover such case and\\n also mitigated a chance for reintroducing such a bug in future.\\n\\n* We identified and quite likely mitigated a misconfiguration in the\\n benchmarking cluster (next benchmarking run will confirm our hypothesis).\\n\\n* We simplified the format of p2p topology file, we got positive feedback from\\n SPOs.\\n\\n* We raised severities of some of the logging messages, which is an important\\n improvement for SPOs, exchanges and other users of the system.\\n\\n* We worked on input endorsers simulation which gives both animated and\\n quantified live feedback on network operation, using a simplified model of\\n a TCP/IP network. \\n\\n## Next quarter\\n\\n* Release the Single Relay P2P Release `1.35.5`.\\n\\n* Carry on with Peer Sharing (review, testing).\\n\\n* Deliver a talk at [Conference on Principles of Distributed Systems 2022][OPODIS2022] in Brussels, Belgium.\\n\\n* Present Detailed Design of Eclipse Evasion and start implementation phase.\\n\\n* Work on P2P Block Producer release.\\n\\n* Carry on with publishing of `io-sim` on `Hackage`.\\n\\n[OPODIS2022]: https://sites.uclouvain.be/OPODIS2022/ \\n[peer-sharing-design]: https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan\\n[peer-sharing-pr]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[p2p-release]: https://github.com/input-output-hk/ouroboros-network/pull/4120\\n[exit-policy]: https://github.com/input-output-hk/ouroboros-network/pull/3785\\n[peer-metrics]: https://github.com/input-output-hk/ouroboros-network/pull/3915\\n[socket-activation]: https://github.com/input-output-hk/ouroboros-network/pull/3979\\n[topology-file]: https://github.com/input-output-hk/cardano-node/pull/4563\\n[dns-ttl]: https://github.com/input-output-hk/ouroboros-network/pull/4106\\n[consensus-startup-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4015\\n[demotion-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[idle-timeout]: https://github.com/input-output-hk/ouroboros-network/pull/3844\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-3690]: https://github.com/input-output-hk/ouroboros-network/issues/3968"},{"id":"2022-11-07-ledger","metadata":{"permalink":"/cardano-updates/quarterly/2022-11-07-ledger","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-07-ledger.md","source":"@site/quarterly/2022-11-07-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"ledger","permalink":"/cardano-updates/quarterly/tags/ledger"}],"readingTime":1.255,"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-07-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/cardano-updates/quarterly/2022-11-09-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/cardano-updates/quarterly/2022-10-07-node-cli-api"}},"content":"## Ledger Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n* We finished a minimal ledger era capable of master key rotation.\\n This will be re-purposed our upcoming work.\\n* We have the humble beginnings of a proper ledger API.\\n* We improved the problematic cost model serialization\\n (recall the song and dance about updating the cost model one epoch after the hard fork).\\n* We have added benchmarks for problematic areas.\\n* Massive repository restructure and cleanup.\\n * Unified and consistent variable name schemes (not completely finished, but nearly there).\\n * Massive reduction in type constraints, which causes a lot of developer friction,\\n in our code and also downstream.\\n * More organized module structures.\\n * Improved generators for our property tests.\\n * We removed our dependency on cardano-prelude.\\n* The formal ledger model has come a long way.\\n * We created a fork of Agda that provides some meta-programming support for the ledger rules.\\n * We have a large amount of the basic UTxO support in the model.\\n * We can generate a good looking PDF from the model.\\n * We can produce Haskell from the model.\\n * We have a nice finite set theory library that we can use for many of the ledger rules.\\n * We have nix support for the model.\\n\\n## Next steps\\n\\n * Individual tracking of deposits. [[issue-3113]]\\n * Versioned CBOR encoders/decoders. [[issue-3014]]\\n * New ledger era transaction body (and the surround work associated with it).\\n * Designs for the next ledger era.\\n\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014"},{"id":"2022-10-07-node-cli-api","metadata":{"permalink":"/cardano-updates/quarterly/2022-10-07-node-cli-api","editUrl":"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2022-11-07-nod-api-cli.md","source":"@site/quarterly/2022-11-07-nod-api-cli.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"cli-api-quarterly","permalink":"/cardano-updates/quarterly/tags/cli-api-quarterly"}],"readingTime":1.355,"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-07-node-cli-api","authors":"Jimbo4350","tags":["cli-api-quarterly"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/cardano-updates/quarterly/2022-11-07-ledger"}},"content":"## Node-Api-Cli Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n- Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0\\n- Major clean up of stale iusses + PRs.\\n- Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs\\n- cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.\\n- 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.\\n- General documentation updates and improvements\\n- Addition of tx-mempool command which allows users to:\\n - Query 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- Initial refactoring of cardano-testnet\\n\\nNext quarter\\n\\n- cardano-api\\n - 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.\\n- cardano-testnet\\n - Working with Marc Fontaine to create an easy to use executable to deploy testnets locally - https://github.com/input-output-hk/cardano-node/issues/4598\\n- Serenity\\n - 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.\\n- 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/assets/js/be1e6782.1983efe2.js b/assets/js/be1e6782.1983efe2.js new file mode 100644 index 00000000000..b6a1f01659b --- /dev/null +++ b/assets/js/be1e6782.1983efe2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25469],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/cardano-updates/quarterly/2023-Q2-network",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"network",permalink:"/cardano-updates/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/be1e6782.d44d3b28.js b/assets/js/be1e6782.d44d3b28.js deleted file mode 100644 index f04dce647ff..00000000000 --- a/assets/js/be1e6782.d44d3b28.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25469],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/cardano-updates/quarterly/2023-Q2-network",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"network",permalink:"/cardano-updates/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/ce17d78b.d43b0a04.js b/assets/js/ce17d78b.421551dd.js similarity index 53% rename from assets/js/ce17d78b.d43b0a04.js rename to assets/js/ce17d78b.421551dd.js index 09f0f8b56b8..4c60d2a405c 100644 --- a/assets/js/ce17d78b.d43b0a04.js +++ b/assets/js/ce17d78b.421551dd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77533],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});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 i(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({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(s,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/cardano-updates/quarterly/2023-Q2-sre",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"sre",permalink:"/cardano-updates/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/cardano-updates/quarterly/2023-04-25-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77533],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});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 i(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({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(s,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/cardano-updates/quarterly/2023-Q2-sre",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"sre",permalink:"/cardano-updates/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/cardano-updates/quarterly/2023-04-25-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3c06362.2c876b81.js b/assets/js/f3c06362.2c876b81.js new file mode 100644 index 00000000000..94c908cb015 --- /dev/null +++ b/assets/js/f3c06362.2c876b81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34985],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},p),{},{components:n})):a.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/cardano-updates/quarterly/2023-Q2-consensus",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2023-09-12T17:30:25.000Z",formattedDate:"September 12, 2023",tags:[{label:"consensus",permalink:"/cardano-updates/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],p={toc:u},c="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(c,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/f3c06362.f41e7b5e.js b/assets/js/f3c06362.f41e7b5e.js deleted file mode 100644 index 69470c63837..00000000000 --- a/assets/js/f3c06362.f41e7b5e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34985],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},p),{},{components:n})):a.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/cardano-updates/quarterly/2023-Q2-consensus",editUrl:"https://github.com/input-output-hk/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2023-09-08T13:25:06.000Z",formattedDate:"September 8, 2023",tags:[{label:"consensus",permalink:"/cardano-updates/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/cardano-updates/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],p={toc:u},c="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(c,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.8ddb4891.js b/assets/js/runtime~main.1e6afe2e.js similarity index 98% rename from assets/js/runtime~main.8ddb4891.js rename to assets/js/runtime~main.1e6afe2e.js index ecbcb7d2d48..3353dc0fd12 100644 --- a/assets/js/runtime~main.8ddb4891.js +++ b/assets/js/runtime~main.1e6afe2e.js @@ -1 +1 @@ -(()=>{"use strict";var e,c,f,a,d,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,e=[],r.O=(c,f,a,d)=>{if(!f){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,a,d]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};c=c||[null,f({}),f([]),f(f)];for(var t=2&a&&e;"object"==typeof t&&!~c.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(d,b),d},r.d=(e,c)=>{for(var f in c)r.o(c,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:c[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,f)=>(r.f[f](e,c),c)),[])),r.u=e=>"assets/js/"+({81:"08c82b6d",162:"e86dcd26",278:"9f761678",292:"b032e7ab",376:"f6aa5556",416:"09abc415",458:"43289e4d",947:"733f2214",1129:"f5b1250e",1285:"28bc1d1b",1321:"f2423430",1338:"ef2b6a3f",1537:"d3a595c1",1821:"d8668f0c",1929:"e25ae581",2109:"219856ee",2136:"871691d4",2221:"3ede3d79",2307:"06a283ef",2348:"1a932c01",2432:"7e87972d",2506:"c6259fbb",2578:"d92df848",2681:"62f46a38",3136:"d9ccb35d",3270:"d5676bf9",3403:"7312b66d",3445:"565f686e",3530:"8c75942c",3649:"017cd6b7",3792:"dff1c289",3918:"5668eccd",4093:"20bc6fcd",4307:"16a93549",4376:"3ab5f4e0",4497:"a9019578",4615:"12a1613f",4775:"53f26dca",4910:"0dea9a3b",4944:"691b1ed7",4986:"9136968b",5337:"4883d618",5485:"56f35d85",5552:"61d299e1",5978:"1d10bd9e",6036:"cfb82551",6166:"d10ad4a6",6169:"9f70a142",6236:"47da279e",6246:"bb465a37",6255:"5296f864",6324:"51cf8946",6413:"03d856aa",6807:"986e43da",6890:"10532414",6919:"769eb34c",6962:"15dc596d",7204:"3143eb67",7233:"35785fae",7266:"9b7a95a2",7322:"485c7377",7337:"af40efcd",7413:"b28a1077",7555:"4ab012ff",7729:"6d826f51",7783:"c10365f3",7891:"eab6de32",7897:"4b996e44",7966:"246d9f04",8580:"d83d9042",8694:"62ec9f43",8765:"a1b4c76a",9107:"e3c3ef1c",9140:"3be95f92",9160:"bcb321f2",9499:"a040c838",9817:"14eb3368",10114:"0af81f82",10173:"89931013",10335:"4b62dc40",11652:"1e24dd00",11727:"c63933b3",11952:"301cd1f4",12626:"f51bb76d",12812:"baed1590",13085:"1f391b9e",13276:"57700755",13680:"77215fb3",13764:"d3f3f546",14274:"68585f67",14348:"db5663d1",14582:"93b15a8c",15091:"3ac610ff",15152:"d124c703",15224:"be32a6ec",15347:"8914fa7e",15529:"4735cd81",15589:"5c868d36",15623:"8bfc66fb",15677:"2f97c20a",15715:"b65e5ec2",16002:"a2a63bac",16165:"5af0f4f9",16171:"d96cfa54",16348:"12d5d907",16349:"4febca42",16360:"d2ab2776",16855:"3dbbac8a",16934:"8395f67d",16959:"9a03c440",17214:"5226ad4f",17285:"d7899fea",17433:"f2180c0a",17490:"91b05c51",17693:"c6ae40c2",17837:"66326f4e",17873:"ae2d2424",17903:"4da01d42",17923:"622f92df",18058:"7d6aa09c",18242:"dceb6e64",18303:"2d72833d",18367:"48292e37",18479:"05f2862f",18634:"db138d7c",18654:"3ce290cc",18694:"1a21d6a2",19105:"7ff38eb4",19516:"52b8fa8a",19644:"0801ba5a",19773:"925feafa",19861:"98e6984f",20203:"ff8cfcf7",20387:"d19a344f",20553:"2d52a685",20635:"1f965afe",20681:"5cf7c214",20738:"d200e7a4",20779:"57e0ab98",20974:"3a3a2602",21129:"ec53298b",21158:"9a01d9b0",21198:"415f2cd9",21200:"0dfea636",21463:"1147f4da",21562:"c063df1b",21798:"924be064",22154:"8a6fc2ec",22206:"45a10ae8",22254:"a34b3179",22393:"d6c09ac2",22496:"41244b80",22519:"31025fde",22954:"1da92289",23092:"40e498fa",23271:"347c3e4d",23318:"ed930750",23360:"add555bf",23531:"e406e44d",23599:"d6f20405",23941:"94a907c9",24212:"8a766cbb",24215:"62a53033",24251:"372219b0",24310:"43bbbae7",24327:"27c463c7",24379:"bbe7c3bd",24384:"6b51f988",24651:"b57687d8",24671:"d8c4fe87",24745:"f210b4b5",24891:"e0a90ddc",24910:"b4645a09",24913:"960e3390",24941:"9e834cf3",25272:"8e410d22",25403:"f850a5f3",25469:"be1e6782",25480:"4be9a3a6",25540:"e8f5afda",25578:"548ef7ca",25590:"73bbd4d7",25759:"04326247",25778:"8fddd37c",25853:"ac8a5a87",25946:"e5a8e689",26276:"0b1b72af",26299:"2d0da244",26540:"e695f231",26544:"ee0b7a59",26565:"274d7200",26584:"c90fb258",27237:"0d889cfb",27335:"bda3e1c7",27449:"042169f6",27668:"cd0ded60",27918:"17896441",28298:"46c51ef6",28480:"2154b8e4",28592:"28874657",28669:"d5cc3122",28843:"2276e554",29059:"0d671897",29071:"76794a21",29121:"91831590",29177:"daa3e20a",29399:"77d69aed",29514:"1be78505",29537:"78df8d65",29614:"0dc0e43e",30101:"73f0dde0",30126:"ba0b6dbd",30141:"82209890",30335:"2d91c21f",30374:"5df8a536",30482:"d6a3b4a5",30584:"6b6054d2",30670:"50d0e663",30830:"ce7ed51f",30849:"e2011657",30907:"a5bf291f",31005:"ddce0bff",31349:"d6a93ba7",31421:"cc30e037",31617:"bcf46d9c",31724:"8084428b",31757:"9c7979b1",31831:"60e1630c",32023:"faece773",32035:"90bf9c2d",32070:"97daee08",32438:"370c5287",32464:"f8681695",32472:"9f7c2154",32627:"d0e182b9",32706:"12637b23",32831:"632979e8",32852:"12208c5e",32871:"684a796f",32936:"8d209506",33215:"113fed8c",33288:"b78698d9",33538:"b020ac17",33596:"54597942",33724:"82f24945",33815:"444dad87",34631:"4bed0e48",34891:"7574ff34",34985:"f3c06362",35029:"9dce568f",35400:"35f1ce0d",35703:"6bae8700",35748:"79239208",35889:"b3041b60",36016:"2fd426fa",36160:"bd65afd9",36171:"fba052bd",36229:"82c38436",36398:"3f9060c3",36434:"56b3fab8",36463:"a1ac97eb",36504:"822bd8ab",36721:"e2c8baed",37221:"5a843cd2",37329:"e5dd9161",37426:"17f4ca64",37495:"fd6fd4a3",37595:"965e9e9a",37734:"9d7869bb",38141:"8470e3c7",38516:"20ca2c37",38518:"0048047b",38672:"ae455379",39066:"edca0251",39071:"3a493dd8",39113:"acd2edbe",39329:"ac56cb0b",39419:"07541956",39439:"07fdf123",39596:"c091c5d8",39640:"7030fa2f",39745:"0c11045c",39898:"63fae4f0",40160:"bc6b65d9",40176:"b5164349",40309:"c036f08e",40373:"46d9aab0",40400:"10659ce5",40430:"187056c8",40705:"60fae5f4",40767:"74d66224",41794:"0c48efb1",42126:"d7836792",42185:"de790939",42190:"b88c8fa9",42198:"59a262d5",42347:"4fb1471a",42575:"32d4ad41",42677:"c831575d",42686:"6e743f1b",43020:"c2b4dd94",43108:"44642b2f",43194:"c315164d",43261:"789f2cca",43363:"e9310706",43412:"e56a9a29",43686:"14fc0a72",43898:"2eba0b82",43980:"40718b14",44281:"f452efc5",44377:"7a6174e7",44379:"73a1bc7a",44501:"94c6d911",44966:"35ef34ae",45237:"e7486169",45389:"4d7c8e78",45410:"9450fd8f",45542:"154dea53",45662:"2e69cd33",45766:"d863ede2",45821:"f48535bf",45943:"bb44f9e3",46003:"81bb24c9",46103:"ccc49370",46207:"12525f14",46318:"4ce06e64",46521:"d99d594e",46545:"f59c978c",46576:"2e28eb6b",46831:"86c4d158",46846:"e7a72da0",46922:"f872275a",46982:"0645cd02",47093:"b512dd46",47176:"2fa57f55",47263:"97407dee",47406:"40367786",47605:"469935bd",47658:"1be923a7",47704:"2073b851",47724:"26678b7e",48221:"97cbe67b",48275:"94133299",48423:"eda7cf83",48600:"6190b2fb",48610:"6875c492",48622:"e2a7c340",48818:"cced6026",48837:"4fe12b4b",48863:"84189288",48983:"66345e96",48990:"9b6092d7",49605:"f530b85c",49769:"a3889346",49904:"a6238997",50097:"588e4efd",50165:"752b6ead",50307:"29801efc",50471:"81528b00",50506:"3ee2c73a",50881:"144cea98",50919:"aa4c9cc8",51092:"e38c8545",51164:"3e93a65d",51257:"00bb8269",51268:"91595845",51410:"f5e5d1cf",51522:"f117ec90",51727:"5778ca6b",51934:"d0a351c0",51951:"4df30499",52322:"b92c36fd",52560:"dee5d2d9",52650:"6b16e156",52818:"e8d4d6c0",52834:"b03d4a4e",53004:"99881079",53121:"e4a61baa",53165:"805fc822",53288:"f1df5007",53426:"efad53df",53482:"c0cf6239",53516:"b6ef4fcb",53608:"9e4087bc",53931:"5d5964ec",53940:"71e4641a",54007:"7d4ab4f9",54176:"50135b75",54193:"f55d3e7a",54415:"84677cf0",54607:"533a09ca",54669:"ebf8adea",54750:"e5b737ed",54868:"77e9cceb",55202:"8b4d9039",55413:"376dd8e8",55531:"ef4f60e7",55553:"144cf255",55638:"3cb9fdac",55855:"62422ab6",56010:"2bc04bf6",56618:"a572b6ff",56674:"771f29e6",56733:"704e5bb8",56789:"ae7f7c70",56815:"ee94a44f",57161:"fb8d4667",57193:"6004d2a4",57227:"2a8f0182",57271:"417fc4b4",57583:"2494f6fc",57772:"d957ac34",58312:"82ed4471",58470:"fb63aa20",58566:"f2b32cff",58628:"8cd47ea9",58744:"9dee36e7",58774:"12c83d8a",58925:"94780c38",59037:"eac9cf07",59158:"a0fc6770",59318:"7c815b5e",59494:"14ffac04",59576:"51457b0b",59671:"0e384e19",59736:"cfdb38ee",59749:"4ef71b5f",59798:"99b0bd12",59955:"120c0b00",60183:"49db7061",60247:"dfd49ee8",60263:"47658b82",60280:"0e0c98f4",60375:"7e644b1f",60459:"6f700e99",60715:"a1597564",60852:"496cb9ef",60881:"7b73b4cd",61039:"12ef8706",61137:"ed730a1d",61185:"ace79a55",61596:"79730245",61660:"7a7e39bb",61908:"8864b77b",61980:"78d554ba",62083:"da7937f0",62140:"fce7e268",62703:"ac87db6a",62767:"a0d18a99",62901:"51bf60d9",63565:"0a44a251",63566:"db50202c",63824:"fbdc54bf",64013:"01a85c17",64112:"65ecf6d5",64156:"21735eff",64313:"1e57c0e2",64410:"e06746c7",64562:"c08c0f47",64614:"c061e3b1",64827:"4d3eb7e7",64906:"ffbc2281",64966:"17e76f05",65123:"1e0f95a7",65319:"d1d47ba3",65421:"dff84d74",65773:"393cd824",66458:"40a4cbba",66602:"98277053",66649:"8ccf5d9f",66743:"0de82e28",66840:"2e52ad4e",66891:"90f359c5",67170:"f5f103cc",67205:"cd612773",67272:"5e3dc99b",67330:"bbc31819",67452:"7a4b421f",67463:"d9b708eb",67787:"bf071e0b",67820:"ea7f8016",67825:"459dd1ef",67927:"fc0eac3b",68077:"9a4c05df",68102:"83e7e4db",68115:"afa83c07",68153:"0431617f",68184:"5889a844",68352:"47cae651",68580:"ec344652",69399:"3eae7101",69467:"2e2abe90",69565:"a6afc437",69778:"86e0423a",69791:"e135bd86",70022:"533bb9dc",70085:"f4cb7e87",70170:"d9e42018",70594:"996aa714",70635:"b4cc2dd2",70641:"f96c80dc",70644:"6226ba71",70729:"ef2b1d07",70883:"61f1e7c8",71844:"f5a24224",71972:"41d087d7",72033:"8f7e10a3",72311:"4cecd320",72317:"de5b481b",72344:"089154c4",72744:"60c9cc01",72815:"e70f68c6",72872:"0c10bcf4",73001:"fa5dce7e",73277:"b8bcf1d1",73320:"78d8ce1d",73336:"e80f56fd",73798:"27c15961",73875:"6c658908",74390:"71d215be",74433:"35369e36",74607:"0db650db",74933:"b8465b4d",75064:"7faccef9",75319:"831d95cb",75379:"79d76848",75394:"ef4801f7",75506:"55b9667a",75556:"f522921c",75696:"90cc522f",75698:"d857251e",75730:"550cdc1d",75773:"9c662d1f",76074:"4dc3be72",76294:"4fd8c72a",76323:"a9347c1b",76413:"77d820b6",76433:"999e2b46",76581:"bdc4c1ed",76705:"4c91b9ee",76762:"5e730d4f",77411:"b96b3223",77533:"ce17d78b",77642:"fc8c3309",77644:"ce6dcc9e",77696:"7c359f4d",77965:"a48d66c0",78148:"9d43e047",78153:"a6e5ff3c",78446:"795480a5",78761:"cc5c2602",79036:"df778edc",79224:"fdba8f98",79260:"6fb45133",79503:"0281a492",79765:"3ac14561",79841:"1377d1fa",79967:"fe184e91",80048:"68fb9d2f",80053:"935f2afb",80113:"4c4f8ee1",80309:"42ad0ca4",80542:"391126a1",80567:"6da0a796",80599:"600e4190",80613:"015be621",80622:"eb0e2fb1",81030:"fdfeff52",81214:"cc267639",81587:"437db4bf",81947:"ae521593",82214:"4fe88e48",82859:"18c41134",82941:"9fba849d",83036:"7c895c96",83050:"04c3317f",83129:"15072f11",83167:"019bb279",83214:"f302e248",83247:"be16a434",83377:"80057f85",83584:"f6b8faad",83646:"0fa2fd29",84069:"6eecfaae",84340:"6610396c",84727:"95f12e12",84773:"cf1bc381",84877:"8d3da32e",85138:"d988d084",85173:"859b6012",85349:"425dfc0f",85369:"876c34e9",85417:"21857c8f",85442:"1caacab6",85845:"93729337",86003:"62dc90a1",86074:"551db1ac",86095:"be26e761",86393:"3328a3bf",86582:"f13a89c7",86673:"a8723288",86809:"34012593",86830:"67ce4884",86983:"3c8518bb",87233:"ccfc9222",87314:"0ee9866d",87389:"f63b6b72",87411:"fb793160",87414:"393be207",87445:"eac6bb0a",88101:"41606842",88592:"6a75c57a",88697:"435d8b4c",88782:"1b2a226f",88818:"1e4232ab",88829:"e158fd47",88862:"d077dadd",88869:"e6ea9b03",89008:"daace409",89083:"aafd9eaa",89104:"b41783a8",89248:"e54fb861",89325:"9945c128",89752:"c0ac1524",89756:"397686d4",90047:"87088759",90056:"fa0b1b5d",90083:"e356bfd0",90178:"9c96fa11",90206:"d79a4bb7",90748:"a1cde312",91151:"c7337d4e",91192:"76c61a3b",91760:"fee99998",91879:"6d25229c",91902:"34c17ec8",91984:"d2ea5af2",92149:"fa57bfdd",92214:"692497e1",92255:"c178b56c",92501:"ea84a009",92522:"fb0b9e22",92846:"913aac40",93089:"a6aa9e1f",93203:"9cab6d73",93524:"e6402687",93570:"caab1e2e",93724:"17630979",94184:"5733c82d",94560:"563fcf2e",94583:"23a95b4f",94590:"72c81964",94759:"bccb35b7",94771:"84823557",94900:"3bb415e3",94922:"c511c40f",95018:"034a14a6",95199:"c5858ebd",95208:"a2ee852b",95447:"177280a4",95516:"d6b66cf4",95569:"c1c5c6f5",95613:"324138c8",95739:"0d7612e9",95816:"eff08811",95845:"73a96f39",95979:"637356df",96121:"439b9a57",96140:"ca3b5bc8",96162:"8c6dbeca",96410:"11423591",96446:"31889a8f",96558:"b13803f3",96755:"e44a2883",96774:"3cb4be67",96840:"e90b2ff0",96871:"126e82e6",97094:"c60581f2",97245:"04cbd10c",97317:"359aa856",97363:"d7d2f3e9",97382:"1a657a20",97421:"89211367",97517:"8fea44ca",97535:"4aaac366",97730:"6d371395",97959:"c9210b26",98254:"9440f007",98347:"43aa4824",98370:"2ebccc4d",98727:"c94f306d",98777:"2c045882",98882:"7aaa65e3",98918:"237aa4d6",99610:"3f2108ba",99808:"80c54634",99847:"166775fd",99881:"a8738e5f"}[e]||e)+"."+{81:"8647aa4f",162:"89a4cbf1",278:"efd79bb9",292:"b1a9961b",376:"97793938",416:"d7a2f3d3",458:"c91734fc",947:"260f1743",1129:"5a405e64",1285:"1e197c44",1321:"bec1d3ae",1338:"276cebb0",1537:"813f9114",1821:"be2330b5",1929:"b6c5260b",2109:"fc647f5b",2136:"358d342f",2221:"93c811e1",2307:"b8b2b1f9",2348:"14545772",2432:"24662f86",2506:"e34bfb77",2529:"3a3a1ec8",2578:"9daf110c",2681:"200c43f2",3136:"cea6c556",3270:"f90c55bb",3403:"f4dfcb72",3445:"5a6ec3a7",3530:"5e08e3a4",3649:"6c855c6e",3792:"c8e36228",3918:"20b5304f",4093:"6a2cce37",4307:"ce5f5e67",4376:"04ccd5a8",4497:"618a0894",4615:"0e2fe3c1",4775:"ebeabdc8",4910:"e1158297",4944:"406ee554",4972:"a20ea76a",4986:"5abe266e",5337:"58d26498",5485:"c3eab92c",5552:"76807eb6",5978:"e7b9cd1c",6036:"a148b7d1",6166:"0cb6f9db",6169:"92a32352",6236:"0dc7a732",6246:"a85dd0e6",6255:"3beefaf0",6324:"e4f02867",6413:"52e2f164",6807:"f541f01c",6890:"69c8af62",6919:"4403be81",6962:"ecdc1050",7204:"b959afc8",7233:"0a17f637",7266:"ff1a9f67",7322:"08d81db4",7337:"5d9b3502",7413:"d4571d53",7555:"891d7eda",7729:"2c78b028",7783:"472f2046",7891:"401320b8",7897:"f9c2f0cd",7966:"1a9615d1",8580:"fc0ecb0d",8694:"b063b2d8",8765:"6b6dbd13",9107:"61c2b7ed",9140:"f0909add",9160:"afb0034e",9499:"3f6e8559",9817:"75d4fe89",10114:"4b115c93",10173:"c6ff4cfa",10335:"f3efb060",11652:"03c90e48",11727:"19137cb7",11952:"2e5b4d2a",12626:"7f54a00b",12812:"96fec48b",13085:"4c243540",13276:"3e57e6d9",13680:"888b3db1",13764:"88297ed1",14274:"eb9cce0f",14348:"893f5d2a",14582:"d2a93a61",15091:"316c8e11",15152:"15587654",15224:"abd9ae1e",15347:"0fe96f3b",15529:"21fed183",15589:"01487d90",15623:"c75678d4",15677:"9b5a3691",15715:"d8fca806",16002:"f350ae76",16165:"f7e5d669",16171:"2939f4b2",16348:"1addbe15",16349:"f94e02ae",16360:"0b7a25c4",16855:"56fe0fb3",16934:"798e5dd2",16959:"55017adb",17214:"b1d14706",17285:"8822e22a",17433:"2c802d5e",17490:"41ca190f",17693:"fcdab135",17837:"cfc8764e",17873:"be7ef5ae",17903:"55b2a465",17923:"e944657a",18058:"6fa0dee2",18242:"eb5e94a8",18303:"b2ed8410",18367:"91bdaa25",18479:"32b47b8d",18634:"1b8b9080",18654:"49694d77",18694:"8c1f975e",19105:"3ecbe221",19516:"b3e53016",19644:"ebcbb7d6",19773:"07b667eb",19861:"26f25dbd",20203:"83f44d88",20387:"3d64c4eb",20553:"16ff720d",20635:"c0a4b10f",20681:"17e1c685",20738:"a8df0071",20779:"fdd5eb0a",20974:"946d9214",21129:"c7e575ce",21158:"34a6421e",21198:"9de03c7a",21200:"43236ac3",21463:"c6a37e99",21562:"518f2336",21798:"77e5f297",22154:"f5b11d20",22206:"c2ee248b",22254:"fc92e4ec",22393:"62736fde",22496:"7eea1f46",22519:"caf3a55e",22954:"64c6b1ce",23092:"7e0d2b44",23271:"648bedec",23318:"a3d3ae4d",23360:"8ea1e3df",23531:"689b2bee",23599:"97b64b79",23941:"b1899393",24212:"252cb983",24215:"40c6195e",24251:"1f651bde",24310:"8ce14775",24327:"c17177cd",24379:"90b52605",24384:"09a9acf5",24651:"ad244a62",24671:"5cc6163d",24745:"8690c2eb",24891:"65b1110f",24910:"3f922fcf",24913:"db8dc4c5",24941:"f056155f",25272:"c34ee40e",25403:"536e35f2",25469:"d44d3b28",25480:"9e933a24",25540:"8eb0b37d",25578:"77942590",25590:"28eef603",25759:"8876239e",25778:"78ab666a",25853:"86749050",25946:"93282328",26276:"a3f1baa4",26299:"cbe1ecb9",26540:"6c1387c6",26544:"f2d5e972",26565:"08e977b8",26584:"9c89e222",27237:"7f793126",27335:"8c9d07fa",27449:"41e4831f",27668:"1b7fc018",27918:"12db7610",28298:"7652a0cc",28480:"4635d227",28592:"18164af4",28669:"33b4ba11",28843:"dfa87ea9",29059:"dc5836f3",29071:"2d5266e5",29121:"bd56297f",29177:"f1391e79",29399:"613ab23b",29514:"eb072735",29537:"119ba796",29614:"3566b290",30101:"f2c110fe",30126:"00ad8d78",30141:"d5e4ff65",30335:"2b35d919",30374:"f44554bd",30482:"596f95c9",30584:"f5b433ca",30670:"0674ac23",30830:"8bdb2215",30849:"8d35be8c",30907:"f146d996",31005:"2c93fa43",31349:"2190ecb6",31421:"32169afb",31617:"dc0dfba9",31724:"0f32cce0",31757:"e1cf42fe",31831:"96901eb9",32023:"2d8cf6c5",32035:"ecec42d7",32070:"077f549d",32438:"99fe1c0a",32464:"f50d9273",32472:"b8bd5c7b",32627:"835c5b63",32706:"8c689cc8",32831:"1945c14a",32852:"498a6ea8",32871:"c08bc3c2",32936:"e4591885",33215:"43bf9228",33288:"e2fd1721",33538:"e61156a0",33596:"99dfc03e",33724:"8746cef5",33815:"29aa76a0",34631:"0ec05e19",34891:"dc3a9f40",34985:"f41e7b5e",35029:"911f7be9",35400:"c093fa38",35703:"a3fdd64c",35748:"a2041cb3",35889:"04095479",36016:"ac550511",36160:"b89ce463",36171:"92a16ec4",36229:"9c66175f",36398:"e4eac2b7",36434:"1bb9d449",36463:"58460967",36504:"dfb2cd17",36721:"fe76b678",37221:"63c9493e",37329:"eed06922",37426:"e67484a2",37495:"1f94006f",37595:"ae2a813a",37734:"35b4854a",38141:"4090b9b2",38516:"ba5f91da",38518:"7e1f75e8",38672:"e0af4636",39066:"665a94cd",39071:"735658ae",39113:"190a4298",39329:"5e036803",39419:"e125fb4e",39439:"654288cb",39596:"9f748780",39640:"ac2104c3",39745:"7ecdd83c",39898:"c9242707",40160:"f1413473",40176:"8a4ed5f9",40309:"230d3185",40373:"fee4fb75",40400:"04295867",40430:"90cfbf91",40705:"0a220c69",40767:"39d38542",41794:"01a06fce",42126:"8920f6e8",42185:"74e01666",42190:"9fdee81f",42198:"9dd70cc0",42347:"6033046a",42575:"059e2e13",42677:"33f5874b",42686:"64602d6e",43020:"778afa9a",43108:"9ca08045",43194:"90ef02cc",43261:"39f99462",43363:"f1eae992",43412:"d1d0f3d4",43686:"4f3072c9",43898:"d58fcc5f",43980:"1506b738",44281:"b66888d2",44377:"b0d1de88",44379:"868bf782",44501:"ce947e81",44966:"48124ff8",45237:"d066da59",45389:"a7f8c06f",45410:"5058c9ff",45542:"9cc056d0",45662:"07e3fae9",45766:"11363200",45821:"29fcdfb3",45943:"0939305b",46003:"76693a73",46103:"66cad8e9",46207:"359b7596",46318:"8c5577b4",46521:"0abb20d4",46545:"51f789b1",46576:"9479c2e3",46831:"142986ab",46846:"d7b2d45e",46922:"dbdfeb4f",46982:"fa280ace",47093:"0c3c6eed",47176:"9c6c3715",47263:"72705175",47406:"cf714651",47605:"daaef810",47658:"8d35f70e",47704:"3d1c7c5a",47724:"706c9ffb",48221:"9fa74904",48275:"4eaf7b31",48423:"e9a49dd3",48600:"6cb691e4",48610:"16502a56",48622:"17f426f9",48818:"061e2055",48837:"941e6176",48863:"e5afffc2",48983:"e312da06",48990:"8ac0135c",49605:"90d61588",49769:"f4b45fc1",49904:"20176f92",50097:"70f41653",50165:"8868ca89",50307:"63d41154",50471:"9aeb470f",50506:"56f15864",50881:"f99162b0",50919:"6f769daf",51068:"b4d6108e",51092:"52bffd2c",51164:"13aeb5e3",51257:"646bfb8a",51268:"dbcc8865",51410:"409624be",51522:"56d0cc64",51727:"8bc37115",51934:"9e5ed2d4",51951:"579d0d55",52322:"da51b229",52560:"044804a9",52650:"2e2f483e",52818:"20140c19",52834:"5d00abc3",53004:"7399a249",53121:"347ef4cf",53165:"c864d419",53288:"caa00e09",53426:"7616c4cf",53482:"cd90552c",53516:"68ecccd5",53608:"47006cd4",53931:"d720c839",53940:"c575aa4b",54007:"63dbc75a",54176:"e3faee2b",54193:"f786acd2",54415:"55a9266a",54607:"3d88b763",54669:"dcda8491",54750:"3fd1fabf",54868:"8f5e75ea",55202:"1f86965b",55413:"dd74d078",55531:"f66551bc",55553:"88218aa6",55638:"eb9b02da",55855:"648df983",56010:"977be0a1",56618:"fac7438c",56674:"38c2d771",56733:"fbbc39f4",56789:"147dae80",56815:"72450e08",57161:"f082283b",57193:"ab1b5f3f",57227:"70e085a1",57271:"4f4a2695",57583:"deabcac6",57772:"2fafdb70",58312:"e368d5a7",58470:"850437a9",58566:"39abae3b",58628:"cf455658",58744:"c9cec439",58774:"ebd0fc40",58925:"71d2b83d",59037:"e5fd1cc9",59158:"10f08811",59318:"a5522061",59494:"cf60f381",59576:"abcb5ff1",59671:"2cd17c73",59736:"4867ce9d",59749:"c4f7ca1f",59798:"4ff93e6b",59955:"b79d45ef",60183:"db909d7b",60247:"8d5945b5",60263:"e1d6cb38",60280:"b615e9a6",60375:"ef2c8f6f",60459:"6a706a0e",60715:"186e8185",60852:"aaee1128",60881:"e195a59e",61039:"d2162e45",61137:"5d6b178f",61185:"966ee67d",61596:"14cda0d8",61660:"20054c14",61908:"cb1a7306",61980:"66ab6334",62083:"7cc22aaa",62140:"e65bf999",62703:"16e51cc4",62767:"9c37ba0b",62901:"2a2866d6",63565:"e62524d6",63566:"71a9a110",63824:"825a6673",64013:"545379d8",64112:"e937de4b",64156:"81a3bee9",64313:"66497df8",64410:"2f6ac31f",64562:"416aafe8",64614:"52557f8e",64827:"deb360a8",64906:"f6950ae2",64966:"72c79f2a",65123:"25ea8766",65319:"21c0b874",65421:"7af6b65c",65773:"593da712",66458:"c44c73f4",66602:"1ba300cf",66649:"108f5ee1",66743:"ff3d9525",66840:"1909c27b",66891:"bdc4672e",67170:"3a51d2d2",67205:"d9b87bb0",67272:"c7aa10e4",67330:"a65c3848",67452:"f75b7a16",67463:"a7b8ca27",67787:"19a1bcd9",67820:"1c2e0902",67825:"c6dda794",67927:"a89378ac",68077:"6efae645",68102:"6c511419",68115:"72b92847",68153:"5c919503",68184:"62933b70",68352:"33c03741",68580:"83a054ec",69399:"1c3bfdde",69467:"2e84cbdd",69565:"3d7a72b9",69778:"08dd55be",69791:"35a0a708",70022:"b96dad64",70085:"691059b9",70170:"e1a48441",70594:"48a86a7d",70635:"ac8372ad",70641:"847f9277",70644:"40eb13ae",70729:"588a4c41",70883:"6ef79af9",71844:"d169d439",71972:"f106b6c0",72033:"d241f9ad",72311:"51b2827e",72317:"565b362c",72344:"cd4dba30",72744:"8c701771",72815:"0a94e2cb",72872:"c8aa7ca2",73001:"e833700b",73277:"204838b0",73320:"84441dbe",73336:"6510f040",73798:"960a5997",73875:"8d12910f",74390:"998e5223",74433:"6528c32a",74607:"bac77798",74933:"374f3383",75064:"aac12434",75319:"0c66da8a",75379:"47b0a3f4",75394:"5d3fc9af",75506:"9fc9a6eb",75556:"a1165f5c",75696:"bcba69c4",75698:"5d7f7fca",75730:"5c224350",75773:"3040e475",76074:"1b8e67d2",76294:"a423c773",76323:"a93f84b5",76413:"ed642bc4",76433:"b9eca61e",76581:"c2a461dc",76705:"e07ab517",76762:"bf3e3989",77411:"99af26b5",77533:"d43b0a04",77642:"746176a0",77644:"38a5e04e",77696:"0c522b73",77965:"554b9825",78148:"9340dfa8",78153:"f8f8d3c0",78446:"e692d8ea",78761:"db9902d7",79036:"6398e671",79224:"8aadb32b",79260:"8780f9a7",79503:"3b7b7eac",79765:"5957e371",79841:"d6f4b9df",79967:"5ee9d11f",80048:"2531ccaa",80053:"12b4c978",80113:"35fd4774",80210:"245c42c2",80309:"784088d6",80542:"ec0b455d",80567:"a9cb8072",80599:"0bee7b6c",80613:"e0570f17",80622:"07255769",81030:"ec40bd08",81214:"9995a73a",81587:"f20821a1",81947:"22fed2a0",82214:"e71f8d5a",82859:"31284dc4",82941:"b41ee22a",83036:"9cfbdba6",83050:"e2f79174",83129:"49e121a3",83167:"7e5077df",83214:"841b73d3",83247:"031b2037",83377:"edc1c235",83584:"5aedda62",83646:"15fed629",84069:"6cbf1fce",84340:"e8537bf4",84727:"89a759bd",84773:"4cd9437b",84877:"efff0598",85138:"3a371a78",85173:"a3e056b6",85349:"51e517b1",85369:"eaf9747b",85417:"db26831e",85442:"f165aa95",85845:"24640633",86003:"bc72f335",86074:"68eb18ba",86095:"66eb1aab",86393:"2a0ee70d",86582:"49158be0",86673:"2417e233",86809:"05c2493c",86830:"ec575d6b",86983:"15f9bbad",87233:"e04c413b",87314:"f046f56d",87389:"003220d2",87411:"b4e7853d",87414:"17ef41bf",87445:"1aa24d10",88101:"90043f12",88592:"f8e5de89",88697:"89bf5b70",88782:"ac20107e",88818:"8f20f4ae",88829:"041cd656",88862:"9fa7f5a1",88869:"a0904c0a",89008:"1ea8e0b2",89083:"9581fec4",89104:"866c4dcd",89248:"fcf8b6f2",89325:"23711a59",89752:"13b59269",89756:"61d37a76",90047:"9c8e0e82",90056:"f62143b4",90083:"a7639fa4",90178:"ea8e50f7",90206:"a815c560",90748:"838f2c04",91151:"a3480743",91192:"3a82d970",91760:"1c695705",91879:"2394cdc6",91902:"f98ed113",91984:"447b9563",92149:"3b4df75c",92214:"a2ed0b7c",92255:"3e187747",92501:"36271ad3",92522:"7e06c8d0",92846:"95dd1cb5",93089:"3167acc2",93203:"47f4f611",93524:"8934f415",93570:"895a969b",93724:"ef34abf8",94184:"3d490188",94560:"dc6fb4c7",94583:"9db15a97",94590:"0dc8e201",94759:"5dbc8a59",94771:"201e5ead",94900:"ede0fcad",94922:"0dd3f662",95018:"3aafc153",95199:"c70ee4f9",95208:"3deb7f04",95447:"d0786185",95516:"5cd3c594",95569:"bba09171",95613:"0ffe20ee",95739:"8793408e",95816:"39187769",95845:"b97f3a8a",95979:"030a1e3f",96121:"c4abecba",96140:"d750be9f",96162:"57f339f6",96410:"8e82ecb7",96446:"911b77aa",96558:"419a314c",96755:"8da70635",96774:"de0aba6d",96840:"7fbed957",96871:"4290e249",97094:"f0c60a3a",97245:"d214c7fc",97317:"a7e87b7a",97363:"262520e6",97382:"02d587f5",97421:"1d56176d",97517:"9d9d62e9",97535:"4801cea2",97730:"59984cd7",97959:"f9c92b06",98254:"f4a7587d",98347:"940228f0",98370:"40025a85",98727:"5657c90c",98777:"cb36c923",98882:"19510367",98918:"e7b9a34e",99610:"00951b81",99808:"faaf216a",99847:"13a6bcef",99881:"f18e47da"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),a={},d="cardano-updates:",r.l=(e,c,f,b)=>{if(a[e])a[e].push(c);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),c)return c(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/cardano-updates/",r.gca=function(e){return e={10532414:"6890",11423591:"96410",17630979:"93724",17896441:"27918",28874657:"28592",34012593:"86809",40367786:"47406",41606842:"88101",54597942:"33596",57700755:"13276",79239208:"35748",79730245:"61596",82209890:"30141",84189288:"48863",84823557:"94771",87088759:"90047",89211367:"97421",89931013:"10173",91595845:"51268",91831590:"29121",93729337:"85845",94133299:"48275",98277053:"66602",99881079:"53004","08c82b6d":"81",e86dcd26:"162","9f761678":"278",b032e7ab:"292",f6aa5556:"376","09abc415":"416","43289e4d":"458","733f2214":"947",f5b1250e:"1129","28bc1d1b":"1285",f2423430:"1321",ef2b6a3f:"1338",d3a595c1:"1537",d8668f0c:"1821",e25ae581:"1929","219856ee":"2109","871691d4":"2136","3ede3d79":"2221","06a283ef":"2307","1a932c01":"2348","7e87972d":"2432",c6259fbb:"2506",d92df848:"2578","62f46a38":"2681",d9ccb35d:"3136",d5676bf9:"3270","7312b66d":"3403","565f686e":"3445","8c75942c":"3530","017cd6b7":"3649",dff1c289:"3792","5668eccd":"3918","20bc6fcd":"4093","16a93549":"4307","3ab5f4e0":"4376",a9019578:"4497","12a1613f":"4615","53f26dca":"4775","0dea9a3b":"4910","691b1ed7":"4944","9136968b":"4986","4883d618":"5337","56f35d85":"5485","61d299e1":"5552","1d10bd9e":"5978",cfb82551:"6036",d10ad4a6:"6166","9f70a142":"6169","47da279e":"6236",bb465a37:"6246","5296f864":"6255","51cf8946":"6324","03d856aa":"6413","986e43da":"6807","769eb34c":"6919","15dc596d":"6962","3143eb67":"7204","35785fae":"7233","9b7a95a2":"7266","485c7377":"7322",af40efcd:"7337",b28a1077:"7413","4ab012ff":"7555","6d826f51":"7729",c10365f3:"7783",eab6de32:"7891","4b996e44":"7897","246d9f04":"7966",d83d9042:"8580","62ec9f43":"8694",a1b4c76a:"8765",e3c3ef1c:"9107","3be95f92":"9140",bcb321f2:"9160",a040c838:"9499","14eb3368":"9817","0af81f82":"10114","4b62dc40":"10335","1e24dd00":"11652",c63933b3:"11727","301cd1f4":"11952",f51bb76d:"12626",baed1590:"12812","1f391b9e":"13085","77215fb3":"13680",d3f3f546:"13764","68585f67":"14274",db5663d1:"14348","93b15a8c":"14582","3ac610ff":"15091",d124c703:"15152",be32a6ec:"15224","8914fa7e":"15347","4735cd81":"15529","5c868d36":"15589","8bfc66fb":"15623","2f97c20a":"15677",b65e5ec2:"15715",a2a63bac:"16002","5af0f4f9":"16165",d96cfa54:"16171","12d5d907":"16348","4febca42":"16349",d2ab2776:"16360","3dbbac8a":"16855","8395f67d":"16934","9a03c440":"16959","5226ad4f":"17214",d7899fea:"17285",f2180c0a:"17433","91b05c51":"17490",c6ae40c2:"17693","66326f4e":"17837",ae2d2424:"17873","4da01d42":"17903","622f92df":"17923","7d6aa09c":"18058",dceb6e64:"18242","2d72833d":"18303","48292e37":"18367","05f2862f":"18479",db138d7c:"18634","3ce290cc":"18654","1a21d6a2":"18694","7ff38eb4":"19105","52b8fa8a":"19516","0801ba5a":"19644","925feafa":"19773","98e6984f":"19861",ff8cfcf7:"20203",d19a344f:"20387","2d52a685":"20553","1f965afe":"20635","5cf7c214":"20681",d200e7a4:"20738","57e0ab98":"20779","3a3a2602":"20974",ec53298b:"21129","9a01d9b0":"21158","415f2cd9":"21198","0dfea636":"21200","1147f4da":"21463",c063df1b:"21562","924be064":"21798","8a6fc2ec":"22154","45a10ae8":"22206",a34b3179:"22254",d6c09ac2:"22393","41244b80":"22496","31025fde":"22519","1da92289":"22954","40e498fa":"23092","347c3e4d":"23271",ed930750:"23318",add555bf:"23360",e406e44d:"23531",d6f20405:"23599","94a907c9":"23941","8a766cbb":"24212","62a53033":"24215","372219b0":"24251","43bbbae7":"24310","27c463c7":"24327",bbe7c3bd:"24379","6b51f988":"24384",b57687d8:"24651",d8c4fe87:"24671",f210b4b5:"24745",e0a90ddc:"24891",b4645a09:"24910","960e3390":"24913","9e834cf3":"24941","8e410d22":"25272",f850a5f3:"25403",be1e6782:"25469","4be9a3a6":"25480",e8f5afda:"25540","548ef7ca":"25578","73bbd4d7":"25590","04326247":"25759","8fddd37c":"25778",ac8a5a87:"25853",e5a8e689:"25946","0b1b72af":"26276","2d0da244":"26299",e695f231:"26540",ee0b7a59:"26544","274d7200":"26565",c90fb258:"26584","0d889cfb":"27237",bda3e1c7:"27335","042169f6":"27449",cd0ded60:"27668","46c51ef6":"28298","2154b8e4":"28480",d5cc3122:"28669","2276e554":"28843","0d671897":"29059","76794a21":"29071",daa3e20a:"29177","77d69aed":"29399","1be78505":"29514","78df8d65":"29537","0dc0e43e":"29614","73f0dde0":"30101",ba0b6dbd:"30126","2d91c21f":"30335","5df8a536":"30374",d6a3b4a5:"30482","6b6054d2":"30584","50d0e663":"30670",ce7ed51f:"30830",e2011657:"30849",a5bf291f:"30907",ddce0bff:"31005",d6a93ba7:"31349",cc30e037:"31421",bcf46d9c:"31617","8084428b":"31724","9c7979b1":"31757","60e1630c":"31831",faece773:"32023","90bf9c2d":"32035","97daee08":"32070","370c5287":"32438",f8681695:"32464","9f7c2154":"32472",d0e182b9:"32627","12637b23":"32706","632979e8":"32831","12208c5e":"32852","684a796f":"32871","8d209506":"32936","113fed8c":"33215",b78698d9:"33288",b020ac17:"33538","82f24945":"33724","444dad87":"33815","4bed0e48":"34631","7574ff34":"34891",f3c06362:"34985","9dce568f":"35029","35f1ce0d":"35400","6bae8700":"35703",b3041b60:"35889","2fd426fa":"36016",bd65afd9:"36160",fba052bd:"36171","82c38436":"36229","3f9060c3":"36398","56b3fab8":"36434",a1ac97eb:"36463","822bd8ab":"36504",e2c8baed:"36721","5a843cd2":"37221",e5dd9161:"37329","17f4ca64":"37426",fd6fd4a3:"37495","965e9e9a":"37595","9d7869bb":"37734","8470e3c7":"38141","20ca2c37":"38516","0048047b":"38518",ae455379:"38672",edca0251:"39066","3a493dd8":"39071",acd2edbe:"39113",ac56cb0b:"39329","07541956":"39419","07fdf123":"39439",c091c5d8:"39596","7030fa2f":"39640","0c11045c":"39745","63fae4f0":"39898",bc6b65d9:"40160",b5164349:"40176",c036f08e:"40309","46d9aab0":"40373","10659ce5":"40400","187056c8":"40430","60fae5f4":"40705","74d66224":"40767","0c48efb1":"41794",d7836792:"42126",de790939:"42185",b88c8fa9:"42190","59a262d5":"42198","4fb1471a":"42347","32d4ad41":"42575",c831575d:"42677","6e743f1b":"42686",c2b4dd94:"43020","44642b2f":"43108",c315164d:"43194","789f2cca":"43261",e9310706:"43363",e56a9a29:"43412","14fc0a72":"43686","2eba0b82":"43898","40718b14":"43980",f452efc5:"44281","7a6174e7":"44377","73a1bc7a":"44379","94c6d911":"44501","35ef34ae":"44966",e7486169:"45237","4d7c8e78":"45389","9450fd8f":"45410","154dea53":"45542","2e69cd33":"45662",d863ede2:"45766",f48535bf:"45821",bb44f9e3:"45943","81bb24c9":"46003",ccc49370:"46103","12525f14":"46207","4ce06e64":"46318",d99d594e:"46521",f59c978c:"46545","2e28eb6b":"46576","86c4d158":"46831",e7a72da0:"46846",f872275a:"46922","0645cd02":"46982",b512dd46:"47093","2fa57f55":"47176","97407dee":"47263","469935bd":"47605","1be923a7":"47658","2073b851":"47704","26678b7e":"47724","97cbe67b":"48221",eda7cf83:"48423","6190b2fb":"48600","6875c492":"48610",e2a7c340:"48622",cced6026:"48818","4fe12b4b":"48837","66345e96":"48983","9b6092d7":"48990",f530b85c:"49605",a3889346:"49769",a6238997:"49904","588e4efd":"50097","752b6ead":"50165","29801efc":"50307","81528b00":"50471","3ee2c73a":"50506","144cea98":"50881",aa4c9cc8:"50919",e38c8545:"51092","3e93a65d":"51164","00bb8269":"51257",f5e5d1cf:"51410",f117ec90:"51522","5778ca6b":"51727",d0a351c0:"51934","4df30499":"51951",b92c36fd:"52322",dee5d2d9:"52560","6b16e156":"52650",e8d4d6c0:"52818",b03d4a4e:"52834",e4a61baa:"53121","805fc822":"53165",f1df5007:"53288",efad53df:"53426",c0cf6239:"53482",b6ef4fcb:"53516","9e4087bc":"53608","5d5964ec":"53931","71e4641a":"53940","7d4ab4f9":"54007","50135b75":"54176",f55d3e7a:"54193","84677cf0":"54415","533a09ca":"54607",ebf8adea:"54669",e5b737ed:"54750","77e9cceb":"54868","8b4d9039":"55202","376dd8e8":"55413",ef4f60e7:"55531","144cf255":"55553","3cb9fdac":"55638","62422ab6":"55855","2bc04bf6":"56010",a572b6ff:"56618","771f29e6":"56674","704e5bb8":"56733",ae7f7c70:"56789",ee94a44f:"56815",fb8d4667:"57161","6004d2a4":"57193","2a8f0182":"57227","417fc4b4":"57271","2494f6fc":"57583",d957ac34:"57772","82ed4471":"58312",fb63aa20:"58470",f2b32cff:"58566","8cd47ea9":"58628","9dee36e7":"58744","12c83d8a":"58774","94780c38":"58925",eac9cf07:"59037",a0fc6770:"59158","7c815b5e":"59318","14ffac04":"59494","51457b0b":"59576","0e384e19":"59671",cfdb38ee:"59736","4ef71b5f":"59749","99b0bd12":"59798","120c0b00":"59955","49db7061":"60183",dfd49ee8:"60247","47658b82":"60263","0e0c98f4":"60280","7e644b1f":"60375","6f700e99":"60459",a1597564:"60715","496cb9ef":"60852","7b73b4cd":"60881","12ef8706":"61039",ed730a1d:"61137",ace79a55:"61185","7a7e39bb":"61660","8864b77b":"61908","78d554ba":"61980",da7937f0:"62083",fce7e268:"62140",ac87db6a:"62703",a0d18a99:"62767","51bf60d9":"62901","0a44a251":"63565",db50202c:"63566",fbdc54bf:"63824","01a85c17":"64013","65ecf6d5":"64112","21735eff":"64156","1e57c0e2":"64313",e06746c7:"64410",c08c0f47:"64562",c061e3b1:"64614","4d3eb7e7":"64827",ffbc2281:"64906","17e76f05":"64966","1e0f95a7":"65123",d1d47ba3:"65319",dff84d74:"65421","393cd824":"65773","40a4cbba":"66458","8ccf5d9f":"66649","0de82e28":"66743","2e52ad4e":"66840","90f359c5":"66891",f5f103cc:"67170",cd612773:"67205","5e3dc99b":"67272",bbc31819:"67330","7a4b421f":"67452",d9b708eb:"67463",bf071e0b:"67787",ea7f8016:"67820","459dd1ef":"67825",fc0eac3b:"67927","9a4c05df":"68077","83e7e4db":"68102",afa83c07:"68115","0431617f":"68153","5889a844":"68184","47cae651":"68352",ec344652:"68580","3eae7101":"69399","2e2abe90":"69467",a6afc437:"69565","86e0423a":"69778",e135bd86:"69791","533bb9dc":"70022",f4cb7e87:"70085",d9e42018:"70170","996aa714":"70594",b4cc2dd2:"70635",f96c80dc:"70641","6226ba71":"70644",ef2b1d07:"70729","61f1e7c8":"70883",f5a24224:"71844","41d087d7":"71972","8f7e10a3":"72033","4cecd320":"72311",de5b481b:"72317","089154c4":"72344","60c9cc01":"72744",e70f68c6:"72815","0c10bcf4":"72872",fa5dce7e:"73001",b8bcf1d1:"73277","78d8ce1d":"73320",e80f56fd:"73336","27c15961":"73798","6c658908":"73875","71d215be":"74390","35369e36":"74433","0db650db":"74607",b8465b4d:"74933","7faccef9":"75064","831d95cb":"75319","79d76848":"75379",ef4801f7:"75394","55b9667a":"75506",f522921c:"75556","90cc522f":"75696",d857251e:"75698","550cdc1d":"75730","9c662d1f":"75773","4dc3be72":"76074","4fd8c72a":"76294",a9347c1b:"76323","77d820b6":"76413","999e2b46":"76433",bdc4c1ed:"76581","4c91b9ee":"76705","5e730d4f":"76762",b96b3223:"77411",ce17d78b:"77533",fc8c3309:"77642",ce6dcc9e:"77644","7c359f4d":"77696",a48d66c0:"77965","9d43e047":"78148",a6e5ff3c:"78153","795480a5":"78446",cc5c2602:"78761",df778edc:"79036",fdba8f98:"79224","6fb45133":"79260","0281a492":"79503","3ac14561":"79765","1377d1fa":"79841",fe184e91:"79967","68fb9d2f":"80048","935f2afb":"80053","4c4f8ee1":"80113","42ad0ca4":"80309","391126a1":"80542","6da0a796":"80567","600e4190":"80599","015be621":"80613",eb0e2fb1:"80622",fdfeff52:"81030",cc267639:"81214","437db4bf":"81587",ae521593:"81947","4fe88e48":"82214","18c41134":"82859","9fba849d":"82941","7c895c96":"83036","04c3317f":"83050","15072f11":"83129","019bb279":"83167",f302e248:"83214",be16a434:"83247","80057f85":"83377",f6b8faad:"83584","0fa2fd29":"83646","6eecfaae":"84069","6610396c":"84340","95f12e12":"84727",cf1bc381:"84773","8d3da32e":"84877",d988d084:"85138","859b6012":"85173","425dfc0f":"85349","876c34e9":"85369","21857c8f":"85417","1caacab6":"85442","62dc90a1":"86003","551db1ac":"86074",be26e761:"86095","3328a3bf":"86393",f13a89c7:"86582",a8723288:"86673","67ce4884":"86830","3c8518bb":"86983",ccfc9222:"87233","0ee9866d":"87314",f63b6b72:"87389",fb793160:"87411","393be207":"87414",eac6bb0a:"87445","6a75c57a":"88592","435d8b4c":"88697","1b2a226f":"88782","1e4232ab":"88818",e158fd47:"88829",d077dadd:"88862",e6ea9b03:"88869",daace409:"89008",aafd9eaa:"89083",b41783a8:"89104",e54fb861:"89248","9945c128":"89325",c0ac1524:"89752","397686d4":"89756",fa0b1b5d:"90056",e356bfd0:"90083","9c96fa11":"90178",d79a4bb7:"90206",a1cde312:"90748",c7337d4e:"91151","76c61a3b":"91192",fee99998:"91760","6d25229c":"91879","34c17ec8":"91902",d2ea5af2:"91984",fa57bfdd:"92149","692497e1":"92214",c178b56c:"92255",ea84a009:"92501",fb0b9e22:"92522","913aac40":"92846",a6aa9e1f:"93089","9cab6d73":"93203",e6402687:"93524",caab1e2e:"93570","5733c82d":"94184","563fcf2e":"94560","23a95b4f":"94583","72c81964":"94590",bccb35b7:"94759","3bb415e3":"94900",c511c40f:"94922","034a14a6":"95018",c5858ebd:"95199",a2ee852b:"95208","177280a4":"95447",d6b66cf4:"95516",c1c5c6f5:"95569","324138c8":"95613","0d7612e9":"95739",eff08811:"95816","73a96f39":"95845","637356df":"95979","439b9a57":"96121",ca3b5bc8:"96140","8c6dbeca":"96162","31889a8f":"96446",b13803f3:"96558",e44a2883:"96755","3cb4be67":"96774",e90b2ff0:"96840","126e82e6":"96871",c60581f2:"97094","04cbd10c":"97245","359aa856":"97317",d7d2f3e9:"97363","1a657a20":"97382","8fea44ca":"97517","4aaac366":"97535","6d371395":"97730",c9210b26:"97959","9440f007":"98254","43aa4824":"98347","2ebccc4d":"98370",c94f306d:"98727","2c045882":"98777","7aaa65e3":"98882","237aa4d6":"98918","3f2108ba":"99610","80c54634":"99808","166775fd":"99847",a8738e5f:"99881"}[e]||e,r.p+r.u(e)},(()=>{var e={51303:0,40532:0};r.f.j=(c,f)=>{var a=r.o(e,c)?e[c]:void 0;if(0!==a)if(a)f.push(a[2]);else if(/^(40532|51303)$/.test(c))e[c]=0;else{var d=new Promise(((f,d)=>a=e[c]=[f,d]));f.push(a[2]=d);var b=r.p+r.u(c),t=new Error;r.l(b,(f=>{if(r.o(e,c)&&(0!==(a=e[c])&&(e[c]=void 0),a)){var d=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+c+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,a[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,f)=>{var a,d,b=f[0],t=f[1],o=f[2],n=0;if(b.some((c=>0!==e[c]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(c&&c(f);n{"use strict";var e,c,f,a,d,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,e=[],r.O=(c,f,a,d)=>{if(!f){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,a,d]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};c=c||[null,f({}),f([]),f(f)];for(var t=2&a&&e;"object"==typeof t&&!~c.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(d,b),d},r.d=(e,c)=>{for(var f in c)r.o(c,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:c[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,f)=>(r.f[f](e,c),c)),[])),r.u=e=>"assets/js/"+({81:"08c82b6d",162:"e86dcd26",278:"9f761678",292:"b032e7ab",376:"f6aa5556",416:"09abc415",458:"43289e4d",947:"733f2214",1129:"f5b1250e",1285:"28bc1d1b",1321:"f2423430",1338:"ef2b6a3f",1537:"d3a595c1",1821:"d8668f0c",1929:"e25ae581",2109:"219856ee",2136:"871691d4",2221:"3ede3d79",2307:"06a283ef",2348:"1a932c01",2432:"7e87972d",2506:"c6259fbb",2578:"d92df848",2681:"62f46a38",3136:"d9ccb35d",3270:"d5676bf9",3403:"7312b66d",3445:"565f686e",3530:"8c75942c",3649:"017cd6b7",3792:"dff1c289",3918:"5668eccd",4093:"20bc6fcd",4307:"16a93549",4376:"3ab5f4e0",4497:"a9019578",4615:"12a1613f",4775:"53f26dca",4910:"0dea9a3b",4944:"691b1ed7",4986:"9136968b",5337:"4883d618",5485:"56f35d85",5552:"61d299e1",5978:"1d10bd9e",6036:"cfb82551",6166:"d10ad4a6",6169:"9f70a142",6236:"47da279e",6246:"bb465a37",6255:"5296f864",6324:"51cf8946",6413:"03d856aa",6807:"986e43da",6890:"10532414",6919:"769eb34c",6962:"15dc596d",7204:"3143eb67",7233:"35785fae",7266:"9b7a95a2",7322:"485c7377",7337:"af40efcd",7413:"b28a1077",7555:"4ab012ff",7729:"6d826f51",7783:"c10365f3",7891:"eab6de32",7897:"4b996e44",7966:"246d9f04",8580:"d83d9042",8694:"62ec9f43",8765:"a1b4c76a",9107:"e3c3ef1c",9140:"3be95f92",9160:"bcb321f2",9499:"a040c838",9817:"14eb3368",10114:"0af81f82",10173:"89931013",10335:"4b62dc40",11652:"1e24dd00",11727:"c63933b3",11952:"301cd1f4",12626:"f51bb76d",12812:"baed1590",13085:"1f391b9e",13276:"57700755",13680:"77215fb3",13764:"d3f3f546",14274:"68585f67",14348:"db5663d1",14582:"93b15a8c",15091:"3ac610ff",15152:"d124c703",15224:"be32a6ec",15347:"8914fa7e",15529:"4735cd81",15589:"5c868d36",15623:"8bfc66fb",15677:"2f97c20a",15715:"b65e5ec2",16002:"a2a63bac",16165:"5af0f4f9",16171:"d96cfa54",16348:"12d5d907",16349:"4febca42",16360:"d2ab2776",16855:"3dbbac8a",16934:"8395f67d",16959:"9a03c440",17214:"5226ad4f",17285:"d7899fea",17433:"f2180c0a",17490:"91b05c51",17693:"c6ae40c2",17837:"66326f4e",17873:"ae2d2424",17903:"4da01d42",17923:"622f92df",18058:"7d6aa09c",18242:"dceb6e64",18303:"2d72833d",18367:"48292e37",18479:"05f2862f",18634:"db138d7c",18654:"3ce290cc",18694:"1a21d6a2",19105:"7ff38eb4",19516:"52b8fa8a",19644:"0801ba5a",19773:"925feafa",19861:"98e6984f",20203:"ff8cfcf7",20387:"d19a344f",20553:"2d52a685",20635:"1f965afe",20681:"5cf7c214",20738:"d200e7a4",20779:"57e0ab98",20974:"3a3a2602",21129:"ec53298b",21158:"9a01d9b0",21198:"415f2cd9",21200:"0dfea636",21463:"1147f4da",21562:"c063df1b",21798:"924be064",22154:"8a6fc2ec",22206:"45a10ae8",22254:"a34b3179",22393:"d6c09ac2",22496:"41244b80",22519:"31025fde",22954:"1da92289",23092:"40e498fa",23271:"347c3e4d",23318:"ed930750",23360:"add555bf",23531:"e406e44d",23599:"d6f20405",23941:"94a907c9",24212:"8a766cbb",24215:"62a53033",24251:"372219b0",24310:"43bbbae7",24327:"27c463c7",24379:"bbe7c3bd",24384:"6b51f988",24651:"b57687d8",24671:"d8c4fe87",24745:"f210b4b5",24891:"e0a90ddc",24910:"b4645a09",24913:"960e3390",24941:"9e834cf3",25272:"8e410d22",25403:"f850a5f3",25469:"be1e6782",25480:"4be9a3a6",25540:"e8f5afda",25578:"548ef7ca",25590:"73bbd4d7",25759:"04326247",25778:"8fddd37c",25853:"ac8a5a87",25946:"e5a8e689",26276:"0b1b72af",26299:"2d0da244",26540:"e695f231",26544:"ee0b7a59",26565:"274d7200",26584:"c90fb258",27237:"0d889cfb",27335:"bda3e1c7",27449:"042169f6",27668:"cd0ded60",27918:"17896441",28298:"46c51ef6",28480:"2154b8e4",28592:"28874657",28669:"d5cc3122",28843:"2276e554",29059:"0d671897",29071:"76794a21",29121:"91831590",29177:"daa3e20a",29399:"77d69aed",29514:"1be78505",29537:"78df8d65",29614:"0dc0e43e",30101:"73f0dde0",30126:"ba0b6dbd",30141:"82209890",30335:"2d91c21f",30374:"5df8a536",30482:"d6a3b4a5",30584:"6b6054d2",30670:"50d0e663",30830:"ce7ed51f",30849:"e2011657",30907:"a5bf291f",31005:"ddce0bff",31349:"d6a93ba7",31421:"cc30e037",31617:"bcf46d9c",31724:"8084428b",31757:"9c7979b1",31831:"60e1630c",32023:"faece773",32035:"90bf9c2d",32070:"97daee08",32438:"370c5287",32464:"f8681695",32472:"9f7c2154",32627:"d0e182b9",32706:"12637b23",32831:"632979e8",32852:"12208c5e",32871:"684a796f",32936:"8d209506",33215:"113fed8c",33288:"b78698d9",33538:"b020ac17",33596:"54597942",33724:"82f24945",33815:"444dad87",34631:"4bed0e48",34891:"7574ff34",34985:"f3c06362",35029:"9dce568f",35400:"35f1ce0d",35703:"6bae8700",35748:"79239208",35889:"b3041b60",36016:"2fd426fa",36160:"bd65afd9",36171:"fba052bd",36229:"82c38436",36398:"3f9060c3",36434:"56b3fab8",36463:"a1ac97eb",36504:"822bd8ab",36721:"e2c8baed",37221:"5a843cd2",37329:"e5dd9161",37426:"17f4ca64",37495:"fd6fd4a3",37595:"965e9e9a",37734:"9d7869bb",38141:"8470e3c7",38516:"20ca2c37",38518:"0048047b",38672:"ae455379",39066:"edca0251",39071:"3a493dd8",39113:"acd2edbe",39329:"ac56cb0b",39419:"07541956",39439:"07fdf123",39596:"c091c5d8",39640:"7030fa2f",39745:"0c11045c",39898:"63fae4f0",40160:"bc6b65d9",40176:"b5164349",40309:"c036f08e",40373:"46d9aab0",40400:"10659ce5",40430:"187056c8",40705:"60fae5f4",40767:"74d66224",41794:"0c48efb1",42126:"d7836792",42185:"de790939",42190:"b88c8fa9",42198:"59a262d5",42347:"4fb1471a",42575:"32d4ad41",42677:"c831575d",42686:"6e743f1b",43020:"c2b4dd94",43108:"44642b2f",43194:"c315164d",43261:"789f2cca",43363:"e9310706",43412:"e56a9a29",43686:"14fc0a72",43898:"2eba0b82",43980:"40718b14",44281:"f452efc5",44377:"7a6174e7",44379:"73a1bc7a",44501:"94c6d911",44966:"35ef34ae",45237:"e7486169",45389:"4d7c8e78",45410:"9450fd8f",45542:"154dea53",45662:"2e69cd33",45766:"d863ede2",45821:"f48535bf",45943:"bb44f9e3",46003:"81bb24c9",46103:"ccc49370",46207:"12525f14",46318:"4ce06e64",46521:"d99d594e",46545:"f59c978c",46576:"2e28eb6b",46831:"86c4d158",46846:"e7a72da0",46922:"f872275a",46982:"0645cd02",47093:"b512dd46",47176:"2fa57f55",47263:"97407dee",47406:"40367786",47605:"469935bd",47658:"1be923a7",47704:"2073b851",47724:"26678b7e",48221:"97cbe67b",48275:"94133299",48423:"eda7cf83",48600:"6190b2fb",48610:"6875c492",48622:"e2a7c340",48818:"cced6026",48837:"4fe12b4b",48863:"84189288",48983:"66345e96",48990:"9b6092d7",49605:"f530b85c",49769:"a3889346",49904:"a6238997",50097:"588e4efd",50165:"752b6ead",50307:"29801efc",50471:"81528b00",50506:"3ee2c73a",50881:"144cea98",50919:"aa4c9cc8",51092:"e38c8545",51164:"3e93a65d",51257:"00bb8269",51268:"91595845",51410:"f5e5d1cf",51522:"f117ec90",51727:"5778ca6b",51934:"d0a351c0",51951:"4df30499",52322:"b92c36fd",52560:"dee5d2d9",52650:"6b16e156",52818:"e8d4d6c0",52834:"b03d4a4e",53004:"99881079",53121:"e4a61baa",53165:"805fc822",53288:"f1df5007",53426:"efad53df",53482:"c0cf6239",53516:"b6ef4fcb",53608:"9e4087bc",53931:"5d5964ec",53940:"71e4641a",54007:"7d4ab4f9",54176:"50135b75",54193:"f55d3e7a",54415:"84677cf0",54607:"533a09ca",54669:"ebf8adea",54750:"e5b737ed",54868:"77e9cceb",55202:"8b4d9039",55413:"376dd8e8",55531:"ef4f60e7",55553:"144cf255",55638:"3cb9fdac",55855:"62422ab6",56010:"2bc04bf6",56618:"a572b6ff",56674:"771f29e6",56733:"704e5bb8",56789:"ae7f7c70",56815:"ee94a44f",57161:"fb8d4667",57193:"6004d2a4",57227:"2a8f0182",57271:"417fc4b4",57583:"2494f6fc",57772:"d957ac34",58312:"82ed4471",58470:"fb63aa20",58566:"f2b32cff",58628:"8cd47ea9",58744:"9dee36e7",58774:"12c83d8a",58925:"94780c38",59037:"eac9cf07",59158:"a0fc6770",59318:"7c815b5e",59494:"14ffac04",59576:"51457b0b",59671:"0e384e19",59736:"cfdb38ee",59749:"4ef71b5f",59798:"99b0bd12",59955:"120c0b00",60183:"49db7061",60247:"dfd49ee8",60263:"47658b82",60280:"0e0c98f4",60375:"7e644b1f",60459:"6f700e99",60715:"a1597564",60852:"496cb9ef",60881:"7b73b4cd",61039:"12ef8706",61137:"ed730a1d",61185:"ace79a55",61596:"79730245",61660:"7a7e39bb",61908:"8864b77b",61980:"78d554ba",62083:"da7937f0",62140:"fce7e268",62703:"ac87db6a",62767:"a0d18a99",62901:"51bf60d9",63565:"0a44a251",63566:"db50202c",63824:"fbdc54bf",64013:"01a85c17",64112:"65ecf6d5",64156:"21735eff",64313:"1e57c0e2",64410:"e06746c7",64562:"c08c0f47",64614:"c061e3b1",64827:"4d3eb7e7",64906:"ffbc2281",64966:"17e76f05",65123:"1e0f95a7",65319:"d1d47ba3",65421:"dff84d74",65773:"393cd824",66458:"40a4cbba",66602:"98277053",66649:"8ccf5d9f",66743:"0de82e28",66840:"2e52ad4e",66891:"90f359c5",67170:"f5f103cc",67205:"cd612773",67272:"5e3dc99b",67330:"bbc31819",67452:"7a4b421f",67463:"d9b708eb",67787:"bf071e0b",67820:"ea7f8016",67825:"459dd1ef",67927:"fc0eac3b",68077:"9a4c05df",68102:"83e7e4db",68115:"afa83c07",68153:"0431617f",68184:"5889a844",68352:"47cae651",68580:"ec344652",69399:"3eae7101",69467:"2e2abe90",69565:"a6afc437",69778:"86e0423a",69791:"e135bd86",70022:"533bb9dc",70085:"f4cb7e87",70170:"d9e42018",70594:"996aa714",70635:"b4cc2dd2",70641:"f96c80dc",70644:"6226ba71",70729:"ef2b1d07",70883:"61f1e7c8",71844:"f5a24224",71972:"41d087d7",72033:"8f7e10a3",72311:"4cecd320",72317:"de5b481b",72344:"089154c4",72744:"60c9cc01",72815:"e70f68c6",72872:"0c10bcf4",73001:"fa5dce7e",73277:"b8bcf1d1",73320:"78d8ce1d",73336:"e80f56fd",73798:"27c15961",73875:"6c658908",74390:"71d215be",74433:"35369e36",74607:"0db650db",74933:"b8465b4d",75064:"7faccef9",75319:"831d95cb",75379:"79d76848",75394:"ef4801f7",75506:"55b9667a",75556:"f522921c",75696:"90cc522f",75698:"d857251e",75730:"550cdc1d",75773:"9c662d1f",76074:"4dc3be72",76294:"4fd8c72a",76323:"a9347c1b",76413:"77d820b6",76433:"999e2b46",76581:"bdc4c1ed",76705:"4c91b9ee",76762:"5e730d4f",77411:"b96b3223",77533:"ce17d78b",77642:"fc8c3309",77644:"ce6dcc9e",77696:"7c359f4d",77965:"a48d66c0",78148:"9d43e047",78153:"a6e5ff3c",78446:"795480a5",78761:"cc5c2602",79036:"df778edc",79224:"fdba8f98",79260:"6fb45133",79503:"0281a492",79765:"3ac14561",79841:"1377d1fa",79967:"fe184e91",80048:"68fb9d2f",80053:"935f2afb",80113:"4c4f8ee1",80309:"42ad0ca4",80542:"391126a1",80567:"6da0a796",80599:"600e4190",80613:"015be621",80622:"eb0e2fb1",81030:"fdfeff52",81214:"cc267639",81587:"437db4bf",81947:"ae521593",82214:"4fe88e48",82859:"18c41134",82941:"9fba849d",83036:"7c895c96",83050:"04c3317f",83129:"15072f11",83167:"019bb279",83214:"f302e248",83247:"be16a434",83377:"80057f85",83584:"f6b8faad",83646:"0fa2fd29",84069:"6eecfaae",84340:"6610396c",84727:"95f12e12",84773:"cf1bc381",84877:"8d3da32e",85138:"d988d084",85173:"859b6012",85349:"425dfc0f",85369:"876c34e9",85417:"21857c8f",85442:"1caacab6",85845:"93729337",86003:"62dc90a1",86074:"551db1ac",86095:"be26e761",86393:"3328a3bf",86582:"f13a89c7",86673:"a8723288",86809:"34012593",86830:"67ce4884",86983:"3c8518bb",87233:"ccfc9222",87314:"0ee9866d",87389:"f63b6b72",87411:"fb793160",87414:"393be207",87445:"eac6bb0a",88101:"41606842",88592:"6a75c57a",88697:"435d8b4c",88782:"1b2a226f",88818:"1e4232ab",88829:"e158fd47",88862:"d077dadd",88869:"e6ea9b03",89008:"daace409",89083:"aafd9eaa",89104:"b41783a8",89248:"e54fb861",89325:"9945c128",89752:"c0ac1524",89756:"397686d4",90047:"87088759",90056:"fa0b1b5d",90083:"e356bfd0",90178:"9c96fa11",90206:"d79a4bb7",90748:"a1cde312",91151:"c7337d4e",91192:"76c61a3b",91760:"fee99998",91879:"6d25229c",91902:"34c17ec8",91984:"d2ea5af2",92149:"fa57bfdd",92214:"692497e1",92255:"c178b56c",92501:"ea84a009",92522:"fb0b9e22",92846:"913aac40",93089:"a6aa9e1f",93203:"9cab6d73",93524:"e6402687",93570:"caab1e2e",93724:"17630979",94184:"5733c82d",94560:"563fcf2e",94583:"23a95b4f",94590:"72c81964",94759:"bccb35b7",94771:"84823557",94900:"3bb415e3",94922:"c511c40f",95018:"034a14a6",95199:"c5858ebd",95208:"a2ee852b",95447:"177280a4",95516:"d6b66cf4",95569:"c1c5c6f5",95613:"324138c8",95739:"0d7612e9",95816:"eff08811",95845:"73a96f39",95979:"637356df",96121:"439b9a57",96140:"ca3b5bc8",96162:"8c6dbeca",96410:"11423591",96446:"31889a8f",96558:"b13803f3",96755:"e44a2883",96774:"3cb4be67",96840:"e90b2ff0",96871:"126e82e6",97094:"c60581f2",97245:"04cbd10c",97317:"359aa856",97363:"d7d2f3e9",97382:"1a657a20",97421:"89211367",97517:"8fea44ca",97535:"4aaac366",97730:"6d371395",97959:"c9210b26",98254:"9440f007",98347:"43aa4824",98370:"2ebccc4d",98727:"c94f306d",98777:"2c045882",98882:"7aaa65e3",98918:"237aa4d6",99610:"3f2108ba",99808:"80c54634",99847:"166775fd",99881:"a8738e5f"}[e]||e)+"."+{81:"8647aa4f",162:"89a4cbf1",278:"efd79bb9",292:"b1a9961b",376:"97793938",416:"d7a2f3d3",458:"c91734fc",947:"260f1743",1129:"5a405e64",1285:"1e197c44",1321:"bec1d3ae",1338:"276cebb0",1537:"813f9114",1821:"be2330b5",1929:"b6c5260b",2109:"fc647f5b",2136:"358d342f",2221:"93c811e1",2307:"b8b2b1f9",2348:"14545772",2432:"24662f86",2506:"e34bfb77",2529:"3a3a1ec8",2578:"9daf110c",2681:"200c43f2",3136:"cea6c556",3270:"f90c55bb",3403:"f4dfcb72",3445:"5a6ec3a7",3530:"5e08e3a4",3649:"6c855c6e",3792:"c8e36228",3918:"20b5304f",4093:"6a2cce37",4307:"ce5f5e67",4376:"04ccd5a8",4497:"618a0894",4615:"0e2fe3c1",4775:"ebeabdc8",4910:"e1158297",4944:"406ee554",4972:"a20ea76a",4986:"5abe266e",5337:"58d26498",5485:"c3eab92c",5552:"76807eb6",5978:"e7b9cd1c",6036:"a148b7d1",6166:"0cb6f9db",6169:"92a32352",6236:"0dc7a732",6246:"a85dd0e6",6255:"f4a800ea",6324:"e4f02867",6413:"52e2f164",6807:"f541f01c",6890:"69c8af62",6919:"4403be81",6962:"ecdc1050",7204:"b959afc8",7233:"0a17f637",7266:"ff1a9f67",7322:"08d81db4",7337:"5d9b3502",7413:"d4571d53",7555:"891d7eda",7729:"2c78b028",7783:"472f2046",7891:"401320b8",7897:"f9c2f0cd",7966:"1a9615d1",8580:"fc0ecb0d",8694:"b063b2d8",8765:"6b6dbd13",9107:"61c2b7ed",9140:"f0909add",9160:"afb0034e",9499:"3f6e8559",9817:"75d4fe89",10114:"4b115c93",10173:"c6ff4cfa",10335:"f3efb060",11652:"03c90e48",11727:"19137cb7",11952:"2e5b4d2a",12626:"7f54a00b",12812:"96fec48b",13085:"4c243540",13276:"3e57e6d9",13680:"888b3db1",13764:"88297ed1",14274:"eb9cce0f",14348:"893f5d2a",14582:"d2a93a61",15091:"316c8e11",15152:"15587654",15224:"abd9ae1e",15347:"0fe96f3b",15529:"21fed183",15589:"01487d90",15623:"c75678d4",15677:"9b5a3691",15715:"d8fca806",16002:"f350ae76",16165:"f7e5d669",16171:"2939f4b2",16348:"1addbe15",16349:"f94e02ae",16360:"0b7a25c4",16855:"56fe0fb3",16934:"798e5dd2",16959:"55017adb",17214:"b1d14706",17285:"8822e22a",17433:"2c802d5e",17490:"41ca190f",17693:"fcdab135",17837:"cfc8764e",17873:"be7ef5ae",17903:"55b2a465",17923:"e944657a",18058:"6fa0dee2",18242:"eb5e94a8",18303:"b2ed8410",18367:"91bdaa25",18479:"32b47b8d",18634:"1b8b9080",18654:"49694d77",18694:"8c1f975e",19105:"3ecbe221",19516:"b3e53016",19644:"ebcbb7d6",19773:"07b667eb",19861:"26f25dbd",20203:"83f44d88",20387:"3d64c4eb",20553:"16ff720d",20635:"c0a4b10f",20681:"17e1c685",20738:"a8df0071",20779:"8acb71d7",20974:"946d9214",21129:"c7e575ce",21158:"34a6421e",21198:"9de03c7a",21200:"43236ac3",21463:"c6a37e99",21562:"518f2336",21798:"77e5f297",22154:"f5b11d20",22206:"c2ee248b",22254:"fc92e4ec",22393:"62736fde",22496:"7eea1f46",22519:"caf3a55e",22954:"64c6b1ce",23092:"7e0d2b44",23271:"648bedec",23318:"a3d3ae4d",23360:"8ea1e3df",23531:"689b2bee",23599:"97b64b79",23941:"b1899393",24212:"252cb983",24215:"40c6195e",24251:"1f651bde",24310:"8ce14775",24327:"c17177cd",24379:"90b52605",24384:"cc3791cc",24651:"ad244a62",24671:"5cc6163d",24745:"8690c2eb",24891:"65b1110f",24910:"3f922fcf",24913:"db8dc4c5",24941:"f056155f",25272:"c34ee40e",25403:"536e35f2",25469:"1983efe2",25480:"9e933a24",25540:"8eb0b37d",25578:"77942590",25590:"28eef603",25759:"8876239e",25778:"78ab666a",25853:"a985d3d2",25946:"93282328",26276:"a3f1baa4",26299:"cbe1ecb9",26540:"6c1387c6",26544:"f2d5e972",26565:"08e977b8",26584:"9c89e222",27237:"7f793126",27335:"8c9d07fa",27449:"41e4831f",27668:"1b7fc018",27918:"12db7610",28298:"7652a0cc",28480:"4635d227",28592:"18164af4",28669:"33b4ba11",28843:"dfa87ea9",29059:"dc5836f3",29071:"2d5266e5",29121:"bd56297f",29177:"f1391e79",29399:"613ab23b",29514:"eb072735",29537:"119ba796",29614:"3566b290",30101:"f2c110fe",30126:"00ad8d78",30141:"d5e4ff65",30335:"2b35d919",30374:"f44554bd",30482:"596f95c9",30584:"f5b433ca",30670:"0674ac23",30830:"8bdb2215",30849:"8d35be8c",30907:"f146d996",31005:"2c93fa43",31349:"2190ecb6",31421:"32169afb",31617:"dc0dfba9",31724:"0f32cce0",31757:"e1cf42fe",31831:"96901eb9",32023:"2d8cf6c5",32035:"ecec42d7",32070:"077f549d",32438:"99fe1c0a",32464:"f50d9273",32472:"b8bd5c7b",32627:"835c5b63",32706:"8c689cc8",32831:"1945c14a",32852:"498a6ea8",32871:"c08bc3c2",32936:"e4591885",33215:"43bf9228",33288:"e2fd1721",33538:"e61156a0",33596:"99dfc03e",33724:"8746cef5",33815:"29aa76a0",34631:"0ec05e19",34891:"dc3a9f40",34985:"2c876b81",35029:"911f7be9",35400:"c093fa38",35703:"a3fdd64c",35748:"a2041cb3",35889:"04095479",36016:"ac550511",36160:"b89ce463",36171:"92a16ec4",36229:"9c66175f",36398:"e4eac2b7",36434:"1bb9d449",36463:"58460967",36504:"dfb2cd17",36721:"fe76b678",37221:"63c9493e",37329:"eed06922",37426:"e67484a2",37495:"1f94006f",37595:"ae2a813a",37734:"35b4854a",38141:"4090b9b2",38516:"ba5f91da",38518:"7e1f75e8",38672:"e0af4636",39066:"665a94cd",39071:"735658ae",39113:"190a4298",39329:"5e036803",39419:"e125fb4e",39439:"654288cb",39596:"9f748780",39640:"ac2104c3",39745:"7ecdd83c",39898:"c9242707",40160:"f1413473",40176:"8a4ed5f9",40309:"230d3185",40373:"fee4fb75",40400:"04295867",40430:"90cfbf91",40705:"0a220c69",40767:"39d38542",41794:"01a06fce",42126:"8920f6e8",42185:"74e01666",42190:"9fdee81f",42198:"9dd70cc0",42347:"6033046a",42575:"059e2e13",42677:"33f5874b",42686:"64602d6e",43020:"778afa9a",43108:"9ca08045",43194:"90ef02cc",43261:"39f99462",43363:"f1eae992",43412:"d1d0f3d4",43686:"4f3072c9",43898:"d58fcc5f",43980:"1506b738",44281:"b66888d2",44377:"b0d1de88",44379:"868bf782",44501:"ce947e81",44966:"48124ff8",45237:"d066da59",45389:"a7f8c06f",45410:"5058c9ff",45542:"9cc056d0",45662:"07e3fae9",45766:"11363200",45821:"29fcdfb3",45943:"0939305b",46003:"76693a73",46103:"66cad8e9",46207:"359b7596",46318:"8c5577b4",46521:"0abb20d4",46545:"51f789b1",46576:"9479c2e3",46831:"142986ab",46846:"d7b2d45e",46922:"dbdfeb4f",46982:"fa280ace",47093:"0c3c6eed",47176:"9c6c3715",47263:"72705175",47406:"cf714651",47605:"daaef810",47658:"8d35f70e",47704:"3d1c7c5a",47724:"706c9ffb",48221:"9fa74904",48275:"4eaf7b31",48423:"e9a49dd3",48600:"6cb691e4",48610:"16502a56",48622:"17f426f9",48818:"061e2055",48837:"941e6176",48863:"e5afffc2",48983:"e312da06",48990:"8ac0135c",49605:"90d61588",49769:"f4b45fc1",49904:"20176f92",50097:"70f41653",50165:"8868ca89",50307:"63d41154",50471:"9aeb470f",50506:"56f15864",50881:"f99162b0",50919:"6f769daf",51068:"b4d6108e",51092:"52bffd2c",51164:"13aeb5e3",51257:"646bfb8a",51268:"dbcc8865",51410:"409624be",51522:"56d0cc64",51727:"8bc37115",51934:"9e5ed2d4",51951:"579d0d55",52322:"da51b229",52560:"044804a9",52650:"2e2f483e",52818:"20140c19",52834:"5d00abc3",53004:"7399a249",53121:"347ef4cf",53165:"c864d419",53288:"caa00e09",53426:"7616c4cf",53482:"cd90552c",53516:"68ecccd5",53608:"47006cd4",53931:"d720c839",53940:"c575aa4b",54007:"63dbc75a",54176:"e3faee2b",54193:"f786acd2",54415:"55a9266a",54607:"3d88b763",54669:"dcda8491",54750:"3fd1fabf",54868:"8f5e75ea",55202:"1f86965b",55413:"dd74d078",55531:"f66551bc",55553:"88218aa6",55638:"eb9b02da",55855:"648df983",56010:"977be0a1",56618:"fac7438c",56674:"38c2d771",56733:"fbbc39f4",56789:"147dae80",56815:"72450e08",57161:"f082283b",57193:"ab1b5f3f",57227:"70e085a1",57271:"4f4a2695",57583:"deabcac6",57772:"2fafdb70",58312:"e368d5a7",58470:"850437a9",58566:"39abae3b",58628:"cf455658",58744:"c9cec439",58774:"ebd0fc40",58925:"71d2b83d",59037:"e5fd1cc9",59158:"10f08811",59318:"a5522061",59494:"cf60f381",59576:"abcb5ff1",59671:"2cd17c73",59736:"4867ce9d",59749:"c4f7ca1f",59798:"4ff93e6b",59955:"b79d45ef",60183:"db909d7b",60247:"8d5945b5",60263:"e1d6cb38",60280:"b615e9a6",60375:"ef2c8f6f",60459:"6a706a0e",60715:"186e8185",60852:"aaee1128",60881:"e195a59e",61039:"d2162e45",61137:"5d6b178f",61185:"966ee67d",61596:"14cda0d8",61660:"20054c14",61908:"cb1a7306",61980:"66ab6334",62083:"7cc22aaa",62140:"e65bf999",62703:"16e51cc4",62767:"9c37ba0b",62901:"2a2866d6",63565:"e62524d6",63566:"71a9a110",63824:"825a6673",64013:"545379d8",64112:"e937de4b",64156:"81a3bee9",64313:"66497df8",64410:"2f6ac31f",64562:"416aafe8",64614:"52557f8e",64827:"deb360a8",64906:"f6950ae2",64966:"72c79f2a",65123:"25ea8766",65319:"21c0b874",65421:"7af6b65c",65773:"593da712",66458:"c44c73f4",66602:"1ba300cf",66649:"108f5ee1",66743:"ff3d9525",66840:"1909c27b",66891:"bdc4672e",67170:"3a51d2d2",67205:"d9b87bb0",67272:"c7aa10e4",67330:"a65c3848",67452:"f75b7a16",67463:"a7b8ca27",67787:"19a1bcd9",67820:"1c2e0902",67825:"c6dda794",67927:"a89378ac",68077:"6efae645",68102:"6c511419",68115:"72b92847",68153:"5c919503",68184:"62933b70",68352:"33c03741",68580:"83a054ec",69399:"1c3bfdde",69467:"2e84cbdd",69565:"3d7a72b9",69778:"08dd55be",69791:"35a0a708",70022:"b96dad64",70085:"691059b9",70170:"e1a48441",70594:"48a86a7d",70635:"ac8372ad",70641:"847f9277",70644:"40eb13ae",70729:"588a4c41",70883:"6ef79af9",71844:"d169d439",71972:"f106b6c0",72033:"d241f9ad",72311:"51b2827e",72317:"565b362c",72344:"cd4dba30",72744:"8c701771",72815:"0a94e2cb",72872:"c8aa7ca2",73001:"e833700b",73277:"204838b0",73320:"84441dbe",73336:"6510f040",73798:"960a5997",73875:"8d12910f",74390:"998e5223",74433:"6528c32a",74607:"bac77798",74933:"374f3383",75064:"aac12434",75319:"0c66da8a",75379:"47b0a3f4",75394:"5d3fc9af",75506:"9fc9a6eb",75556:"a1165f5c",75696:"bcba69c4",75698:"5d7f7fca",75730:"5c224350",75773:"3040e475",76074:"1b8e67d2",76294:"a423c773",76323:"a93f84b5",76413:"ed642bc4",76433:"b9eca61e",76581:"c2a461dc",76705:"e07ab517",76762:"bf3e3989",77411:"99af26b5",77533:"421551dd",77642:"746176a0",77644:"38a5e04e",77696:"0c522b73",77965:"554b9825",78148:"9340dfa8",78153:"f8f8d3c0",78446:"e692d8ea",78761:"db9902d7",79036:"6398e671",79224:"8aadb32b",79260:"8780f9a7",79503:"3b7b7eac",79765:"5957e371",79841:"d6f4b9df",79967:"5ee9d11f",80048:"2531ccaa",80053:"12b4c978",80113:"35fd4774",80210:"245c42c2",80309:"784088d6",80542:"ec0b455d",80567:"a9cb8072",80599:"0bee7b6c",80613:"e0570f17",80622:"07255769",81030:"ec40bd08",81214:"9995a73a",81587:"f20821a1",81947:"22fed2a0",82214:"e71f8d5a",82859:"31284dc4",82941:"b41ee22a",83036:"9cfbdba6",83050:"e2f79174",83129:"49e121a3",83167:"7e5077df",83214:"841b73d3",83247:"031b2037",83377:"edc1c235",83584:"5aedda62",83646:"15fed629",84069:"6cbf1fce",84340:"e8537bf4",84727:"89a759bd",84773:"4cd9437b",84877:"efff0598",85138:"3a371a78",85173:"a3e056b6",85349:"51e517b1",85369:"eaf9747b",85417:"db26831e",85442:"f165aa95",85845:"24640633",86003:"bc72f335",86074:"68eb18ba",86095:"66eb1aab",86393:"2a0ee70d",86582:"49158be0",86673:"2417e233",86809:"05c2493c",86830:"ec575d6b",86983:"15f9bbad",87233:"e04c413b",87314:"f046f56d",87389:"003220d2",87411:"b4e7853d",87414:"17ef41bf",87445:"1aa24d10",88101:"90043f12",88592:"f8e5de89",88697:"89bf5b70",88782:"ac20107e",88818:"8f20f4ae",88829:"041cd656",88862:"9fa7f5a1",88869:"a0904c0a",89008:"1ea8e0b2",89083:"9581fec4",89104:"866c4dcd",89248:"fcf8b6f2",89325:"23711a59",89752:"13b59269",89756:"61d37a76",90047:"9c8e0e82",90056:"f62143b4",90083:"a7639fa4",90178:"ea8e50f7",90206:"a815c560",90748:"838f2c04",91151:"a3480743",91192:"3a82d970",91760:"1c695705",91879:"2394cdc6",91902:"f98ed113",91984:"447b9563",92149:"3b4df75c",92214:"a2ed0b7c",92255:"3e187747",92501:"36271ad3",92522:"7e06c8d0",92846:"95dd1cb5",93089:"3167acc2",93203:"47f4f611",93524:"8934f415",93570:"895a969b",93724:"ef34abf8",94184:"3d490188",94560:"dc6fb4c7",94583:"9db15a97",94590:"0dc8e201",94759:"5dbc8a59",94771:"201e5ead",94900:"ede0fcad",94922:"0dd3f662",95018:"3aafc153",95199:"c70ee4f9",95208:"3deb7f04",95447:"d0786185",95516:"5cd3c594",95569:"bba09171",95613:"0ffe20ee",95739:"8793408e",95816:"39187769",95845:"b97f3a8a",95979:"030a1e3f",96121:"c4abecba",96140:"d750be9f",96162:"57f339f6",96410:"8e82ecb7",96446:"911b77aa",96558:"419a314c",96755:"8da70635",96774:"de0aba6d",96840:"7fbed957",96871:"4290e249",97094:"f0c60a3a",97245:"d214c7fc",97317:"a7e87b7a",97363:"262520e6",97382:"02d587f5",97421:"1d56176d",97517:"9d9d62e9",97535:"4801cea2",97730:"59984cd7",97959:"f9c92b06",98254:"f4a7587d",98347:"940228f0",98370:"40025a85",98727:"5657c90c",98777:"cb36c923",98882:"19510367",98918:"e7b9a34e",99610:"00951b81",99808:"faaf216a",99847:"13a6bcef",99881:"f18e47da"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),a={},d="cardano-updates:",r.l=(e,c,f,b)=>{if(a[e])a[e].push(c);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),c)return c(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/cardano-updates/",r.gca=function(e){return e={10532414:"6890",11423591:"96410",17630979:"93724",17896441:"27918",28874657:"28592",34012593:"86809",40367786:"47406",41606842:"88101",54597942:"33596",57700755:"13276",79239208:"35748",79730245:"61596",82209890:"30141",84189288:"48863",84823557:"94771",87088759:"90047",89211367:"97421",89931013:"10173",91595845:"51268",91831590:"29121",93729337:"85845",94133299:"48275",98277053:"66602",99881079:"53004","08c82b6d":"81",e86dcd26:"162","9f761678":"278",b032e7ab:"292",f6aa5556:"376","09abc415":"416","43289e4d":"458","733f2214":"947",f5b1250e:"1129","28bc1d1b":"1285",f2423430:"1321",ef2b6a3f:"1338",d3a595c1:"1537",d8668f0c:"1821",e25ae581:"1929","219856ee":"2109","871691d4":"2136","3ede3d79":"2221","06a283ef":"2307","1a932c01":"2348","7e87972d":"2432",c6259fbb:"2506",d92df848:"2578","62f46a38":"2681",d9ccb35d:"3136",d5676bf9:"3270","7312b66d":"3403","565f686e":"3445","8c75942c":"3530","017cd6b7":"3649",dff1c289:"3792","5668eccd":"3918","20bc6fcd":"4093","16a93549":"4307","3ab5f4e0":"4376",a9019578:"4497","12a1613f":"4615","53f26dca":"4775","0dea9a3b":"4910","691b1ed7":"4944","9136968b":"4986","4883d618":"5337","56f35d85":"5485","61d299e1":"5552","1d10bd9e":"5978",cfb82551:"6036",d10ad4a6:"6166","9f70a142":"6169","47da279e":"6236",bb465a37:"6246","5296f864":"6255","51cf8946":"6324","03d856aa":"6413","986e43da":"6807","769eb34c":"6919","15dc596d":"6962","3143eb67":"7204","35785fae":"7233","9b7a95a2":"7266","485c7377":"7322",af40efcd:"7337",b28a1077:"7413","4ab012ff":"7555","6d826f51":"7729",c10365f3:"7783",eab6de32:"7891","4b996e44":"7897","246d9f04":"7966",d83d9042:"8580","62ec9f43":"8694",a1b4c76a:"8765",e3c3ef1c:"9107","3be95f92":"9140",bcb321f2:"9160",a040c838:"9499","14eb3368":"9817","0af81f82":"10114","4b62dc40":"10335","1e24dd00":"11652",c63933b3:"11727","301cd1f4":"11952",f51bb76d:"12626",baed1590:"12812","1f391b9e":"13085","77215fb3":"13680",d3f3f546:"13764","68585f67":"14274",db5663d1:"14348","93b15a8c":"14582","3ac610ff":"15091",d124c703:"15152",be32a6ec:"15224","8914fa7e":"15347","4735cd81":"15529","5c868d36":"15589","8bfc66fb":"15623","2f97c20a":"15677",b65e5ec2:"15715",a2a63bac:"16002","5af0f4f9":"16165",d96cfa54:"16171","12d5d907":"16348","4febca42":"16349",d2ab2776:"16360","3dbbac8a":"16855","8395f67d":"16934","9a03c440":"16959","5226ad4f":"17214",d7899fea:"17285",f2180c0a:"17433","91b05c51":"17490",c6ae40c2:"17693","66326f4e":"17837",ae2d2424:"17873","4da01d42":"17903","622f92df":"17923","7d6aa09c":"18058",dceb6e64:"18242","2d72833d":"18303","48292e37":"18367","05f2862f":"18479",db138d7c:"18634","3ce290cc":"18654","1a21d6a2":"18694","7ff38eb4":"19105","52b8fa8a":"19516","0801ba5a":"19644","925feafa":"19773","98e6984f":"19861",ff8cfcf7:"20203",d19a344f:"20387","2d52a685":"20553","1f965afe":"20635","5cf7c214":"20681",d200e7a4:"20738","57e0ab98":"20779","3a3a2602":"20974",ec53298b:"21129","9a01d9b0":"21158","415f2cd9":"21198","0dfea636":"21200","1147f4da":"21463",c063df1b:"21562","924be064":"21798","8a6fc2ec":"22154","45a10ae8":"22206",a34b3179:"22254",d6c09ac2:"22393","41244b80":"22496","31025fde":"22519","1da92289":"22954","40e498fa":"23092","347c3e4d":"23271",ed930750:"23318",add555bf:"23360",e406e44d:"23531",d6f20405:"23599","94a907c9":"23941","8a766cbb":"24212","62a53033":"24215","372219b0":"24251","43bbbae7":"24310","27c463c7":"24327",bbe7c3bd:"24379","6b51f988":"24384",b57687d8:"24651",d8c4fe87:"24671",f210b4b5:"24745",e0a90ddc:"24891",b4645a09:"24910","960e3390":"24913","9e834cf3":"24941","8e410d22":"25272",f850a5f3:"25403",be1e6782:"25469","4be9a3a6":"25480",e8f5afda:"25540","548ef7ca":"25578","73bbd4d7":"25590","04326247":"25759","8fddd37c":"25778",ac8a5a87:"25853",e5a8e689:"25946","0b1b72af":"26276","2d0da244":"26299",e695f231:"26540",ee0b7a59:"26544","274d7200":"26565",c90fb258:"26584","0d889cfb":"27237",bda3e1c7:"27335","042169f6":"27449",cd0ded60:"27668","46c51ef6":"28298","2154b8e4":"28480",d5cc3122:"28669","2276e554":"28843","0d671897":"29059","76794a21":"29071",daa3e20a:"29177","77d69aed":"29399","1be78505":"29514","78df8d65":"29537","0dc0e43e":"29614","73f0dde0":"30101",ba0b6dbd:"30126","2d91c21f":"30335","5df8a536":"30374",d6a3b4a5:"30482","6b6054d2":"30584","50d0e663":"30670",ce7ed51f:"30830",e2011657:"30849",a5bf291f:"30907",ddce0bff:"31005",d6a93ba7:"31349",cc30e037:"31421",bcf46d9c:"31617","8084428b":"31724","9c7979b1":"31757","60e1630c":"31831",faece773:"32023","90bf9c2d":"32035","97daee08":"32070","370c5287":"32438",f8681695:"32464","9f7c2154":"32472",d0e182b9:"32627","12637b23":"32706","632979e8":"32831","12208c5e":"32852","684a796f":"32871","8d209506":"32936","113fed8c":"33215",b78698d9:"33288",b020ac17:"33538","82f24945":"33724","444dad87":"33815","4bed0e48":"34631","7574ff34":"34891",f3c06362:"34985","9dce568f":"35029","35f1ce0d":"35400","6bae8700":"35703",b3041b60:"35889","2fd426fa":"36016",bd65afd9:"36160",fba052bd:"36171","82c38436":"36229","3f9060c3":"36398","56b3fab8":"36434",a1ac97eb:"36463","822bd8ab":"36504",e2c8baed:"36721","5a843cd2":"37221",e5dd9161:"37329","17f4ca64":"37426",fd6fd4a3:"37495","965e9e9a":"37595","9d7869bb":"37734","8470e3c7":"38141","20ca2c37":"38516","0048047b":"38518",ae455379:"38672",edca0251:"39066","3a493dd8":"39071",acd2edbe:"39113",ac56cb0b:"39329","07541956":"39419","07fdf123":"39439",c091c5d8:"39596","7030fa2f":"39640","0c11045c":"39745","63fae4f0":"39898",bc6b65d9:"40160",b5164349:"40176",c036f08e:"40309","46d9aab0":"40373","10659ce5":"40400","187056c8":"40430","60fae5f4":"40705","74d66224":"40767","0c48efb1":"41794",d7836792:"42126",de790939:"42185",b88c8fa9:"42190","59a262d5":"42198","4fb1471a":"42347","32d4ad41":"42575",c831575d:"42677","6e743f1b":"42686",c2b4dd94:"43020","44642b2f":"43108",c315164d:"43194","789f2cca":"43261",e9310706:"43363",e56a9a29:"43412","14fc0a72":"43686","2eba0b82":"43898","40718b14":"43980",f452efc5:"44281","7a6174e7":"44377","73a1bc7a":"44379","94c6d911":"44501","35ef34ae":"44966",e7486169:"45237","4d7c8e78":"45389","9450fd8f":"45410","154dea53":"45542","2e69cd33":"45662",d863ede2:"45766",f48535bf:"45821",bb44f9e3:"45943","81bb24c9":"46003",ccc49370:"46103","12525f14":"46207","4ce06e64":"46318",d99d594e:"46521",f59c978c:"46545","2e28eb6b":"46576","86c4d158":"46831",e7a72da0:"46846",f872275a:"46922","0645cd02":"46982",b512dd46:"47093","2fa57f55":"47176","97407dee":"47263","469935bd":"47605","1be923a7":"47658","2073b851":"47704","26678b7e":"47724","97cbe67b":"48221",eda7cf83:"48423","6190b2fb":"48600","6875c492":"48610",e2a7c340:"48622",cced6026:"48818","4fe12b4b":"48837","66345e96":"48983","9b6092d7":"48990",f530b85c:"49605",a3889346:"49769",a6238997:"49904","588e4efd":"50097","752b6ead":"50165","29801efc":"50307","81528b00":"50471","3ee2c73a":"50506","144cea98":"50881",aa4c9cc8:"50919",e38c8545:"51092","3e93a65d":"51164","00bb8269":"51257",f5e5d1cf:"51410",f117ec90:"51522","5778ca6b":"51727",d0a351c0:"51934","4df30499":"51951",b92c36fd:"52322",dee5d2d9:"52560","6b16e156":"52650",e8d4d6c0:"52818",b03d4a4e:"52834",e4a61baa:"53121","805fc822":"53165",f1df5007:"53288",efad53df:"53426",c0cf6239:"53482",b6ef4fcb:"53516","9e4087bc":"53608","5d5964ec":"53931","71e4641a":"53940","7d4ab4f9":"54007","50135b75":"54176",f55d3e7a:"54193","84677cf0":"54415","533a09ca":"54607",ebf8adea:"54669",e5b737ed:"54750","77e9cceb":"54868","8b4d9039":"55202","376dd8e8":"55413",ef4f60e7:"55531","144cf255":"55553","3cb9fdac":"55638","62422ab6":"55855","2bc04bf6":"56010",a572b6ff:"56618","771f29e6":"56674","704e5bb8":"56733",ae7f7c70:"56789",ee94a44f:"56815",fb8d4667:"57161","6004d2a4":"57193","2a8f0182":"57227","417fc4b4":"57271","2494f6fc":"57583",d957ac34:"57772","82ed4471":"58312",fb63aa20:"58470",f2b32cff:"58566","8cd47ea9":"58628","9dee36e7":"58744","12c83d8a":"58774","94780c38":"58925",eac9cf07:"59037",a0fc6770:"59158","7c815b5e":"59318","14ffac04":"59494","51457b0b":"59576","0e384e19":"59671",cfdb38ee:"59736","4ef71b5f":"59749","99b0bd12":"59798","120c0b00":"59955","49db7061":"60183",dfd49ee8:"60247","47658b82":"60263","0e0c98f4":"60280","7e644b1f":"60375","6f700e99":"60459",a1597564:"60715","496cb9ef":"60852","7b73b4cd":"60881","12ef8706":"61039",ed730a1d:"61137",ace79a55:"61185","7a7e39bb":"61660","8864b77b":"61908","78d554ba":"61980",da7937f0:"62083",fce7e268:"62140",ac87db6a:"62703",a0d18a99:"62767","51bf60d9":"62901","0a44a251":"63565",db50202c:"63566",fbdc54bf:"63824","01a85c17":"64013","65ecf6d5":"64112","21735eff":"64156","1e57c0e2":"64313",e06746c7:"64410",c08c0f47:"64562",c061e3b1:"64614","4d3eb7e7":"64827",ffbc2281:"64906","17e76f05":"64966","1e0f95a7":"65123",d1d47ba3:"65319",dff84d74:"65421","393cd824":"65773","40a4cbba":"66458","8ccf5d9f":"66649","0de82e28":"66743","2e52ad4e":"66840","90f359c5":"66891",f5f103cc:"67170",cd612773:"67205","5e3dc99b":"67272",bbc31819:"67330","7a4b421f":"67452",d9b708eb:"67463",bf071e0b:"67787",ea7f8016:"67820","459dd1ef":"67825",fc0eac3b:"67927","9a4c05df":"68077","83e7e4db":"68102",afa83c07:"68115","0431617f":"68153","5889a844":"68184","47cae651":"68352",ec344652:"68580","3eae7101":"69399","2e2abe90":"69467",a6afc437:"69565","86e0423a":"69778",e135bd86:"69791","533bb9dc":"70022",f4cb7e87:"70085",d9e42018:"70170","996aa714":"70594",b4cc2dd2:"70635",f96c80dc:"70641","6226ba71":"70644",ef2b1d07:"70729","61f1e7c8":"70883",f5a24224:"71844","41d087d7":"71972","8f7e10a3":"72033","4cecd320":"72311",de5b481b:"72317","089154c4":"72344","60c9cc01":"72744",e70f68c6:"72815","0c10bcf4":"72872",fa5dce7e:"73001",b8bcf1d1:"73277","78d8ce1d":"73320",e80f56fd:"73336","27c15961":"73798","6c658908":"73875","71d215be":"74390","35369e36":"74433","0db650db":"74607",b8465b4d:"74933","7faccef9":"75064","831d95cb":"75319","79d76848":"75379",ef4801f7:"75394","55b9667a":"75506",f522921c:"75556","90cc522f":"75696",d857251e:"75698","550cdc1d":"75730","9c662d1f":"75773","4dc3be72":"76074","4fd8c72a":"76294",a9347c1b:"76323","77d820b6":"76413","999e2b46":"76433",bdc4c1ed:"76581","4c91b9ee":"76705","5e730d4f":"76762",b96b3223:"77411",ce17d78b:"77533",fc8c3309:"77642",ce6dcc9e:"77644","7c359f4d":"77696",a48d66c0:"77965","9d43e047":"78148",a6e5ff3c:"78153","795480a5":"78446",cc5c2602:"78761",df778edc:"79036",fdba8f98:"79224","6fb45133":"79260","0281a492":"79503","3ac14561":"79765","1377d1fa":"79841",fe184e91:"79967","68fb9d2f":"80048","935f2afb":"80053","4c4f8ee1":"80113","42ad0ca4":"80309","391126a1":"80542","6da0a796":"80567","600e4190":"80599","015be621":"80613",eb0e2fb1:"80622",fdfeff52:"81030",cc267639:"81214","437db4bf":"81587",ae521593:"81947","4fe88e48":"82214","18c41134":"82859","9fba849d":"82941","7c895c96":"83036","04c3317f":"83050","15072f11":"83129","019bb279":"83167",f302e248:"83214",be16a434:"83247","80057f85":"83377",f6b8faad:"83584","0fa2fd29":"83646","6eecfaae":"84069","6610396c":"84340","95f12e12":"84727",cf1bc381:"84773","8d3da32e":"84877",d988d084:"85138","859b6012":"85173","425dfc0f":"85349","876c34e9":"85369","21857c8f":"85417","1caacab6":"85442","62dc90a1":"86003","551db1ac":"86074",be26e761:"86095","3328a3bf":"86393",f13a89c7:"86582",a8723288:"86673","67ce4884":"86830","3c8518bb":"86983",ccfc9222:"87233","0ee9866d":"87314",f63b6b72:"87389",fb793160:"87411","393be207":"87414",eac6bb0a:"87445","6a75c57a":"88592","435d8b4c":"88697","1b2a226f":"88782","1e4232ab":"88818",e158fd47:"88829",d077dadd:"88862",e6ea9b03:"88869",daace409:"89008",aafd9eaa:"89083",b41783a8:"89104",e54fb861:"89248","9945c128":"89325",c0ac1524:"89752","397686d4":"89756",fa0b1b5d:"90056",e356bfd0:"90083","9c96fa11":"90178",d79a4bb7:"90206",a1cde312:"90748",c7337d4e:"91151","76c61a3b":"91192",fee99998:"91760","6d25229c":"91879","34c17ec8":"91902",d2ea5af2:"91984",fa57bfdd:"92149","692497e1":"92214",c178b56c:"92255",ea84a009:"92501",fb0b9e22:"92522","913aac40":"92846",a6aa9e1f:"93089","9cab6d73":"93203",e6402687:"93524",caab1e2e:"93570","5733c82d":"94184","563fcf2e":"94560","23a95b4f":"94583","72c81964":"94590",bccb35b7:"94759","3bb415e3":"94900",c511c40f:"94922","034a14a6":"95018",c5858ebd:"95199",a2ee852b:"95208","177280a4":"95447",d6b66cf4:"95516",c1c5c6f5:"95569","324138c8":"95613","0d7612e9":"95739",eff08811:"95816","73a96f39":"95845","637356df":"95979","439b9a57":"96121",ca3b5bc8:"96140","8c6dbeca":"96162","31889a8f":"96446",b13803f3:"96558",e44a2883:"96755","3cb4be67":"96774",e90b2ff0:"96840","126e82e6":"96871",c60581f2:"97094","04cbd10c":"97245","359aa856":"97317",d7d2f3e9:"97363","1a657a20":"97382","8fea44ca":"97517","4aaac366":"97535","6d371395":"97730",c9210b26:"97959","9440f007":"98254","43aa4824":"98347","2ebccc4d":"98370",c94f306d:"98727","2c045882":"98777","7aaa65e3":"98882","237aa4d6":"98918","3f2108ba":"99610","80c54634":"99808","166775fd":"99847",a8738e5f:"99881"}[e]||e,r.p+r.u(e)},(()=>{var e={51303:0,40532:0};r.f.j=(c,f)=>{var a=r.o(e,c)?e[c]:void 0;if(0!==a)if(a)f.push(a[2]);else if(/^(40532|51303)$/.test(c))e[c]=0;else{var d=new Promise(((f,d)=>a=e[c]=[f,d]));f.push(a[2]=d);var b=r.p+r.u(c),t=new Error;r.l(b,(f=>{if(r.o(e,c)&&(0!==(a=e[c])&&(e[c]=void 0),a)){var d=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+c+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,a[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,f)=>{var a,d,b=f[0],t=f[1],o=f[2],n=0;if(b.some((c=>0!==e[c]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(c&&c(f);n - + - + \ No newline at end of file diff --git a/docs/category/tutorial---extras/index.html b/docs/category/tutorial---extras/index.html index 60f1e651d7a..026d97901cf 100644 --- a/docs/category/tutorial---extras/index.html +++ b/docs/category/tutorial---extras/index.html @@ -12,13 +12,13 @@ - + - + \ No newline at end of file diff --git a/docs/intro/index.html b/docs/intro/index.html index f97d69ffcab..e00f1e6a304 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -12,13 +12,13 @@ - +

    Tutorial Intro

    Let's discover Docusaurus in less than 5 minutes.

    Getting Started

    Get started by creating a new site.

    Or try Docusaurus immediately with docusaurus.new.

    What you'll need

    • Node.js version 16.14 or above:
      • When installing Node.js, you are recommended to check all checkboxes related to dependencies.

    Generate a new site

    Generate a new Docusaurus site using the classic template.

    The classic template will automatically be added to your project after you run the command:

    npm init docusaurus@latest my-website classic

    You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.

    The command also installs all necessary dependencies you need to run Docusaurus.

    Start your site

    Run the development server:

    cd my-website
    npm run start

    The cd command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.

    The npm run start command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.

    Open docs/intro.md (this page) and edit some lines: the site reloads automatically and displays your changes.

    - + \ No newline at end of file diff --git a/docs/tutorial-basics/congratulations/index.html b/docs/tutorial-basics/congratulations/index.html index 7b8b87dbb81..2dd60b01adc 100644 --- a/docs/tutorial-basics/congratulations/index.html +++ b/docs/tutorial-basics/congratulations/index.html @@ -12,13 +12,13 @@ - +

    Congratulations!

    You have just learned the basics of Docusaurus and made some changes to the initial template.

    Docusaurus has much more to offer!

    Have 5 more minutes? Take a look at versioning and i18n.

    Anything unclear or buggy in this tutorial? Please report it!

    What's next?

    - + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-blog-post/index.html b/docs/tutorial-basics/create-a-blog-post/index.html index 4e001ca8dc0..1741f132858 100644 --- a/docs/tutorial-basics/create-a-blog-post/index.html +++ b/docs/tutorial-basics/create-a-blog-post/index.html @@ -12,13 +12,13 @@ - +

    Create a Blog Post

    Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...

    Create your first Post

    Create a file at blog/2021-02-28-greetings.md:

    blog/2021-02-28-greetings.md
    ---
    slug: greetings
    title: Greetings!
    authors:
    - name: Joel Marcey
    title: Co-creator of Docusaurus 1
    url: https://github.com/JoelMarcey
    image_url: https://github.com/JoelMarcey.png
    - name: Sébastien Lorber
    title: Docusaurus maintainer
    url: https://sebastienlorber.com
    image_url: https://github.com/slorber.png
    tags: [greetings]
    ---

    Congratulations, you have made your first post!

    Feel free to play around and edit this post as much you like.

    A new blog post is now available at http://localhost:3000/blog/greetings.

    - + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-document/index.html b/docs/tutorial-basics/create-a-document/index.html index 16fd15a1072..36f27fc2f85 100644 --- a/docs/tutorial-basics/create-a-document/index.html +++ b/docs/tutorial-basics/create-a-document/index.html @@ -12,13 +12,13 @@ - +

    Create a Document

    Documents are groups of pages connected through:

    • a sidebar
    • previous/next navigation
    • versioning

    Create your first Doc

    Create a Markdown file at docs/hello.md:

    docs/hello.md
    # Hello

    This is my **first Docusaurus document**!

    A new document is now available at http://localhost:3000/docs/hello.

    Configure the Sidebar

    Docusaurus automatically creates a sidebar from the docs folder.

    Add metadata to customize the sidebar label and position:

    docs/hello.md
    ---
    sidebar_label: 'Hi!'
    sidebar_position: 3
    ---

    # Hello

    This is my **first Docusaurus document**!

    It is also possible to create your sidebar explicitly in sidebars.js:

    sidebars.js
    module.exports = {
    tutorialSidebar: [
    'intro',
    'hello',
    {
    type: 'category',
    label: 'Tutorial',
    items: ['tutorial-basics/create-a-document'],
    },
    ],
    };
    - + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-page/index.html b/docs/tutorial-basics/create-a-page/index.html index 15a77809ac0..88ffbce4a3b 100644 --- a/docs/tutorial-basics/create-a-page/index.html +++ b/docs/tutorial-basics/create-a-page/index.html @@ -12,13 +12,13 @@ - +

    Create a Page

    Add Markdown or React files to src/pages to create a standalone page:

    • src/pages/index.jslocalhost:3000/
    • src/pages/foo.mdlocalhost:3000/foo
    • src/pages/foo/bar.jslocalhost:3000/foo/bar

    Create your first React Page

    Create a file at src/pages/my-react-page.js:

    src/pages/my-react-page.js
    import React from 'react';
    import Layout from '@theme/Layout';

    export default function MyReactPage() {
    return (
    <Layout>
    <h1>My React page</h1>
    <p>This is a React page</p>
    </Layout>
    );
    }

    A new page is now available at http://localhost:3000/my-react-page.

    Create your first Markdown Page

    Create a file at src/pages/my-markdown-page.md:

    src/pages/my-markdown-page.md
    # My Markdown page

    This is a Markdown page

    A new page is now available at http://localhost:3000/my-markdown-page.

    - + \ No newline at end of file diff --git a/docs/tutorial-basics/deploy-your-site/index.html b/docs/tutorial-basics/deploy-your-site/index.html index a38052c7821..f6a900e33f9 100644 --- a/docs/tutorial-basics/deploy-your-site/index.html +++ b/docs/tutorial-basics/deploy-your-site/index.html @@ -12,13 +12,13 @@ - +

    Deploy your site

    Docusaurus is a static-site-generator (also called Jamstack).

    It builds your site as simple static HTML, JavaScript and CSS files.

    Build your site

    Build your site for production:

    npm run build

    The static files are generated in the build folder.

    Deploy your site

    Test your production build locally:

    npm run serve

    The build folder is now served at http://localhost:3000/.

    You can now deploy the build folder almost anywhere easily, for free or very small cost (read the Deployment Guide).

    - + \ No newline at end of file diff --git a/docs/tutorial-basics/markdown-features/index.html b/docs/tutorial-basics/markdown-features/index.html index 2d039fc8f17..aa09b79c8b4 100644 --- a/docs/tutorial-basics/markdown-features/index.html +++ b/docs/tutorial-basics/markdown-features/index.html @@ -12,13 +12,13 @@ - +

    Markdown Features

    Docusaurus supports Markdown and a few additional features.

    Front Matter

    Markdown documents have metadata at the top called Front Matter:

    my-doc.md
    ---
    id: my-doc-id
    title: My document title
    description: My document description
    slug: /my-custom-url
    ---

    ## Markdown heading

    Markdown text with [links](./hello.md)

    Regular Markdown links are supported, using url paths or relative file paths.

    Let's see how to [Create a page](/create-a-page).
    Let's see how to [Create a page](./create-a-page.md).

    Result: Let's see how to Create a page.

    Images

    Regular Markdown images are supported.

    You can use absolute paths to reference images in the static directory (static/img/docusaurus.png):

    ![Docusaurus logo](/img/docusaurus.png)

    Docusaurus logo

    You can reference images relative to the current file as well, as shown in the extra guides.

    Code Blocks

    Markdown code blocks are supported with Syntax highlighting.

    ```jsx title="src/components/HelloDocusaurus.js"
    function HelloDocusaurus() {
    return (
    <h1>Hello, Docusaurus!</h1>
    )
    }
    ```
    src/components/HelloDocusaurus.js
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }

    Admonitions

    Docusaurus has a special syntax to create admonitions and callouts:

    :::tip My tip

    Use this awesome feature option

    :::

    :::danger Take care

    This action is dangerous

    :::
    My tip

    Use this awesome feature option

    Take care

    This action is dangerous

    MDX and React Components

    MDX can make your documentation more interactive and allows using any React components inside Markdown:

    export const Highlight = ({children, color}) => (
    <span
    style={{
    backgroundColor: color,
    borderRadius: '20px',
    color: '#fff',
    padding: '10px',
    cursor: 'pointer',
    }}
    onClick={() => {
    alert(`You clicked the color ${color} with label ${children}`)
    }}>
    {children}
    </span>
    );

    This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !

    This is <Highlight color="#1877F2">Facebook blue</Highlight> !

    This is Docusaurus green !

    This is Facebook blue !

    - + \ No newline at end of file diff --git a/docs/tutorial-extras/manage-docs-versions/index.html b/docs/tutorial-extras/manage-docs-versions/index.html index cd4bc2ac0c2..fc28c3f59a0 100644 --- a/docs/tutorial-extras/manage-docs-versions/index.html +++ b/docs/tutorial-extras/manage-docs-versions/index.html @@ -12,13 +12,13 @@ - +

    Manage Docs Versions

    Docusaurus can manage multiple versions of your docs.

    Create a docs version

    Release a version 1.0 of your project:

    npm run docusaurus docs:version 1.0

    The docs folder is copied into versioned_docs/version-1.0 and versions.json is created.

    Your docs now have 2 versions:

    • 1.0 at http://localhost:3000/docs/ for the version 1.0 docs
    • current at http://localhost:3000/docs/next/ for the upcoming, unreleased docs

    Add a Version Dropdown

    To navigate seamlessly across versions, add a version dropdown.

    Modify the docusaurus.config.js file:

    docusaurus.config.js
    module.exports = {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'docsVersionDropdown',
    },
    ],
    },
    },
    };

    The docs version dropdown appears in your navbar:

    Docs Version Dropdown

    Update an existing version

    It is possible to edit versioned docs in their respective folder:

    • versioned_docs/version-1.0/hello.md updates http://localhost:3000/docs/hello
    • docs/hello.md updates http://localhost:3000/docs/next/hello
    - + \ No newline at end of file diff --git a/docs/tutorial-extras/translate-your-site/index.html b/docs/tutorial-extras/translate-your-site/index.html index 31df35271a9..8a31d7eafbb 100644 --- a/docs/tutorial-extras/translate-your-site/index.html +++ b/docs/tutorial-extras/translate-your-site/index.html @@ -12,13 +12,13 @@ - +

    Translate your site

    Let's translate docs/intro.md to French.

    Configure i18n

    Modify docusaurus.config.js to add support for the fr locale:

    docusaurus.config.js
    module.exports = {
    i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr'],
    },
    };

    Translate a doc

    Copy the docs/intro.md file to the i18n/fr folder:

    mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/

    cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md

    Translate i18n/fr/docusaurus-plugin-content-docs/current/intro.md in French.

    Start your localized site

    Start your site on the French locale:

    npm run start -- --locale fr

    Your localized site is accessible at http://localhost:3000/fr/ and the Getting Started page is translated.

    caution

    In development, you can only use one locale at a same time.

    Add a Locale Dropdown

    To navigate seamlessly across languages, add a locale dropdown.

    Modify the docusaurus.config.js file:

    docusaurus.config.js
    module.exports = {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'localeDropdown',
    },
    ],
    },
    },
    };

    The locale dropdown now appears in your navbar:

    Locale Dropdown

    Build your localized site

    Build your site for a specific locale:

    npm run build -- --locale fr

    Or build your site to include all the locales at once:

    npm run build
    - + \ No newline at end of file diff --git a/index.html b/index.html index 1d620aee46b..165b6a6179c 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ - + @@ -46,7 +46,7 @@ improved the user experience by allowing a commit using inline datums. Discussed the off-chain governance with researchers and improved internal model tests.

    What did the team achieve this week

    • Monthly report published
    • Small changes to hydraw and tutorial in light of the Masterclass
    • Investigated a bug and saw it was solved by recent developments
    • Improved the model tests by fully validating L1 transactions
    • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
    • Discussed off-chain governance with IOG and CF researchers
    • Drafted a first network specification document in the context of Network resilience

    What are the goals of next week

    • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
    • Groomed and agreed plan on incremental commits/decommits
    • Updated tutorials including CI workflows to check consistency
    • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)
    - + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index ef3ca0b261a..6899797ba62 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 3c062dc4d00..57f36b8db7d 100644 --- a/page/10/index.html +++ b/page/10/index.html @@ -12,7 +12,7 @@ - + @@ -37,7 +37,7 @@ the path forward for L2 protocol improvements and explored an alternative CI approach using cabal instead of nix. Additionally, they released version 0.11.0, marking another milestone in the projects development.

    What did the team achieve this week

    • Written and published the monthly report for June
    • Implemented external commits end-to-end incl. tested it on preview #215
    • Listed Hydra as a tool on cardano developer portal
    • Cleared up path forward on L2 protocol improvements #728
    • Established an alternative CI using more cabal tools #923
    • Release version 0.11.0

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Complete ReqSn only sends transaction ids #728
    • Groom and plan last items for 0.12.0 (remove internal commit)
    • Improve reliability of benchmarks

    · 3 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973
    - + \ No newline at end of file diff --git a/page/11/index.html b/page/11/index.html index 8ddf4e7805c..3f1b76eb9d0 100644 --- a/page/11/index.html +++ b/page/11/index.html @@ -12,7 +12,7 @@ - + @@ -49,7 +49,7 @@ peers DNS names are resolved concurrently, and at most 2 local root peer DNS names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the consensus team, see #4608.

    - + \ No newline at end of file diff --git a/page/12/index.html b/page/12/index.html index efa0ed3f3bf..034b125a218 100644 --- a/page/12/index.html +++ b/page/12/index.html @@ -12,7 +12,7 @@ - + @@ -30,7 +30,7 @@ meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new infrastructure to the existing ones, including determining reproducibility and variance.

    - + \ No newline at end of file diff --git a/page/13/index.html b/page/13/index.html index cedade912df..208787bb1d8 100644 --- a/page/13/index.html +++ b/page/13/index.html @@ -12,7 +12,7 @@ - + @@ -52,7 +52,7 @@ https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4
  • Added a process which fixes in place scripts with wrong CBOR serialisation. https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17
  • Prepared a tag 13.1.1.2 which is tested and ready to release. It contains many of the above.
  • - + \ No newline at end of file diff --git a/page/14/index.html b/page/14/index.html index c8940256600..ac561f6c266 100644 --- a/page/14/index.html +++ b/page/14/index.html @@ -12,7 +12,7 @@ - + @@ -34,7 +34,7 @@ errors when a transition requirement fails, and to reduce duplication on effets logged content. Last but not least, the team is exploring formal methods and attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512
    - + \ No newline at end of file diff --git a/page/15/index.html b/page/15/index.html index b8ec5039397..811b43fe22c 100644 --- a/page/15/index.html +++ b/page/15/index.html @@ -12,7 +12,7 @@ - + @@ -44,7 +44,7 @@ to be able to support DReps, we cleaned up the serialization format, and renamed things to make clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams
    - + \ No newline at end of file diff --git a/page/16/index.html b/page/16/index.html index 444889ddbca..21eda67cb97 100644 --- a/page/16/index.html +++ b/page/16/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ blog post about P2P. We released a new version of packages for cardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks if CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    • Eclipse evasion: #4462
    • Local root peers bug fix: #4559
    • Release to CHaP: #4573
    • CI improvements: #4572
    • Release script improvements: #4573

    · One min read
    Jordan Millar

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing "Option A" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920
    - + \ No newline at end of file diff --git a/page/17/index.html b/page/17/index.html index 287d06d67d8..0a3ee5f94fa 100644 --- a/page/17/index.html +++ b/page/17/index.html @@ -12,7 +12,7 @@ - + @@ -61,7 +61,7 @@ #4542.

    We renamed the consensus startup tracer and make sure it doesn't log ExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    • #4539: we don't need to install cryptographic libraries in CI;
    • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved to a new repo;
    • #4546: we switched to use GitHub merge queues;
    • #4549: we made it possible to trigger building haddocks manually;
    • #4553: we fixed and enhanced caching of building dependencies.
    - + \ No newline at end of file diff --git a/page/18/index.html b/page/18/index.html index b3f36ffe3aa..b4be5ed6d38 100644 --- a/page/18/index.html +++ b/page/18/index.html @@ -12,7 +12,7 @@ - + @@ -64,7 +64,7 @@ we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along with various quality-of-life improvements, has been merged to master.

    - + \ No newline at end of file diff --git a/page/19/index.html b/page/19/index.html index f045eaea7cd..7d2d8bd6cff 100644 --- a/page/19/index.html +++ b/page/19/index.html @@ -12,7 +12,7 @@ - + @@ -43,7 +43,7 @@ #693 and published on the website
  • Groom and addressed user issue #823
  • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
  • Fixed the TUI peer list
  • Updated dependencies to match cardano-node master
  • Conducted a twitter space on Auctions use cases
  • What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature
    - + \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index 8bafb92c0ed..111ae87e519 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -53,7 +53,7 @@ and latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve hydra-node availability, as it becomes stuck very easily and that leads to a bad user experience.

    What did the team achieve this week

    • Hydra master-class at RareEvo workshop!
    • Monthly report & review meeting
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Groomed network resilience and explorer features #188
    • New ADR for “Resourced based API” #1028

    What are the goals of next week

    • Have a poc on network resilience working #188
    • Fix issue #931: “Chain state in head state not updated on replayed observation”
    • Fix issue #1039: "Close transaction dropped from cardano-node"
    - + \ No newline at end of file diff --git a/page/20/index.html b/page/20/index.html index 33f22d8bfdb..f75fcec830f 100644 --- a/page/20/index.html +++ b/page/20/index.html @@ -12,7 +12,7 @@ - + @@ -38,7 +38,7 @@ performed an analysis on the number of file descriptors that consensus use. This information can be used by the node operators to check if the number of file descriptors they want to support are enough.

    - + \ No newline at end of file diff --git a/page/21/index.html b/page/21/index.html index cebbacc806d..0cdf3a2f89d 100644 --- a/page/21/index.html +++ b/page/21/index.html @@ -12,7 +12,7 @@ - + @@ -50,7 +50,7 @@ the repository, implement a short-term fix for the Rollbacks issue, and draft a Query API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility #713
    - + \ No newline at end of file diff --git a/page/22/index.html b/page/22/index.html index d023461f4d0..053a206e601 100644 --- a/page/22/index.html +++ b/page/22/index.html @@ -12,7 +12,7 @@ - + @@ -35,7 +35,7 @@ This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is being improved to minimize any friction for the backend user.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#
    - + \ No newline at end of file diff --git a/page/23/index.html b/page/23/index.html index 49d17784986..60c9e9a1a42 100644 --- a/page/23/index.html +++ b/page/23/index.html @@ -12,7 +12,7 @@ - + @@ -46,7 +46,7 @@ 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/page/24/index.html b/page/24/index.html index 2fb3672438c..60c4083fa90 100644 --- a/page/24/index.html +++ b/page/24/index.html @@ -12,7 +12,7 @@ - + @@ -39,7 +39,7 @@ 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/page/25/index.html b/page/25/index.html index c5323257c4d..d7b25169b7d 100644 --- a/page/25/index.html +++ b/page/25/index.html @@ -12,7 +12,7 @@ - + @@ -63,7 +63,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/page/26/index.html b/page/26/index.html index 40a33a1b597..9942f582a23 100644 --- a/page/26/index.html +++ b/page/26/index.html @@ -12,7 +12,7 @@ - + @@ -56,7 +56,7 @@ 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/page/27/index.html b/page/27/index.html index 5ff87560597..b407fea72fa 100644 --- a/page/27/index.html +++ b/page/27/index.html @@ -12,7 +12,7 @@ - + @@ -68,7 +68,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/page/28/index.html b/page/28/index.html index 739a19cf798..2a6643bbb9a 100644 --- a/page/28/index.html +++ b/page/28/index.html @@ -12,7 +12,7 @@ - + @@ -66,7 +66,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.

    · 2 min read
    Jordan Millar

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ No newline at end of file diff --git a/page/29/index.html b/page/29/index.html index 31f9e9363c3..cbb64f449f7 100644 --- a/page/29/index.html +++ b/page/29/index.html @@ -12,7 +12,7 @@ - + @@ -63,7 +63,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/page/3/index.html b/page/3/index.html index 7dd4941b95a..c8f1bf2a9c7 100644 --- a/page/3/index.html +++ b/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -45,7 +45,7 @@ the governance state, such as placement of votes, submission of governance proposals, inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the ability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    • pull-3577 - Move PParams to GovState
    • pull-3609 - Adjust thresholds for sanchonet
    • pull-3604 - README: update CIP-1694 link
    • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
    • pull-3599 - Add governance action well-formedness check
    • pull-3607 - Rename governance to gov
    • pull-3601 - Added DRep anchors
    • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
    • pull-3596 - Upgradeable families
    • pull-3625 - Change constitution to use Anchor
    • pull-3592 - Added pulsing incremental computation of the DRep distribution
    • pull-3523 - Treasury donations
    • pull-3633 - Prevent state changes on phase2 failure
    • pull-3634 - Disable serialization of protocolVersion param update
    • pull-3630 - Implemented DRep refreshing
    • pull-3640 - Remove crypto parameterization from AnchorData
    • pull-3636 - Implement DRep ratification with an "always passing"; threshold
    • pull-3648 - Governance queries
    • pull-3650 - Change environment for ShelleyPOOLREAP rule
    • pull-3658 - Set DRep ratify threshold to 51%
    • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

    Testing

    Improvements and releasing

    • pull-3660 - Fix bounds and versions
    • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
    - + \ No newline at end of file diff --git a/page/30/index.html b/page/30/index.html index 96b88d40d6f..9e344ae7154 100644 --- a/page/30/index.html +++ b/page/30/index.html @@ -12,7 +12,7 @@ - + @@ -51,7 +51,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).

    · 2 min read
    Jordan Millar
    - + \ No newline at end of file diff --git a/page/31/index.html b/page/31/index.html index f2923472861..048464a1165 100644 --- a/page/31/index.html +++ b/page/31/index.html @@ -12,7 +12,7 @@ - + @@ -42,7 +42,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/page/32/index.html b/page/32/index.html index 9b302dc6002..9afe70c5efa 100644 --- a/page/32/index.html +++ b/page/32/index.html @@ -12,7 +12,7 @@ - + @@ -55,7 +55,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.

    · 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
    - + \ No newline at end of file diff --git a/page/33/index.html b/page/33/index.html index 3f9b70141c6..ab0117afdfe 100644 --- a/page/33/index.html +++ b/page/33/index.html @@ -12,7 +12,7 @@ - + @@ -65,7 +65,7 @@ #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/page/34/index.html b/page/34/index.html index 14bfcb2f1f5..0151a16855a 100644 --- a/page/34/index.html +++ b/page/34/index.html @@ -12,7 +12,7 @@ - + @@ -65,7 +65,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/page/35/index.html b/page/35/index.html index 31345ea7318..3c7785b922b 100644 --- a/page/35/index.html +++ b/page/35/index.html @@ -12,7 +12,7 @@ - + @@ -67,7 +67,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!
  • · 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).
    - + \ No newline at end of file diff --git a/page/36/index.html b/page/36/index.html index c44f5c00a3f..e91ea770afa 100644 --- a/page/36/index.html +++ b/page/36/index.html @@ -12,7 +12,7 @@ - + @@ -72,7 +72,7 @@ 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/page/37/index.html b/page/37/index.html index 384d74ec8c1..778a087d250 100644 --- a/page/37/index.html +++ b/page/37/index.html @@ -12,7 +12,7 @@ - + @@ -64,7 +64,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/page/38/index.html b/page/38/index.html index 13868200b5f..402d3b2b8ae 100644 --- a/page/38/index.html +++ b/page/38/index.html @@ -12,7 +12,7 @@ - + @@ -61,7 +61,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

    · 2 min read
    Jordan Millar
    - + \ No newline at end of file diff --git a/page/39/index.html b/page/39/index.html index 5f0232eef2e..1d1047d5157 100644 --- a/page/39/index.html +++ b/page/39/index.html @@ -12,7 +12,7 @@ - + @@ -86,7 +86,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/page/4/index.html b/page/4/index.html index a2debec717e..a831b72a048 100644 --- a/page/4/index.html +++ b/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -62,7 +62,7 @@ Fixes were applied to prevent the use of the primitives. A full security audit was carried out on the bindings. The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.
    - + \ No newline at end of file diff --git a/page/40/index.html b/page/40/index.html index 8b92e67b6e3..e12bf96b101 100644 --- a/page/40/index.html +++ b/page/40/index.html @@ -12,7 +12,7 @@ - + @@ -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.

    · 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.

    - + \ No newline at end of file diff --git a/page/41/index.html b/page/41/index.html index a489ea69aa1..f8e5858e21d 100644 --- a/page/41/index.html +++ b/page/41/index.html @@ -12,7 +12,7 @@ - + @@ -64,7 +64,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.

    · 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/page/42/index.html b/page/42/index.html index ee9d32f6e58..93c0dabfdd3 100644 --- a/page/42/index.html +++ b/page/42/index.html @@ -12,7 +12,7 @@ - + @@ -120,7 +120,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/page/43/index.html b/page/43/index.html index f18cec64c16..90cec857f6c 100644 --- a/page/43/index.html +++ b/page/43/index.html @@ -12,7 +12,7 @@ - + @@ -35,7 +35,7 @@ 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/page/44/index.html b/page/44/index.html index 72984477a4b..53fbe194be8 100644 --- a/page/44/index.html +++ b/page/44/index.html @@ -12,7 +12,7 @@ - + @@ -85,7 +85,7 @@ 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/page/45/index.html b/page/45/index.html index b52fd6a7e8a..6fb056381fa 100644 --- a/page/45/index.html +++ b/page/45/index.html @@ -12,7 +12,7 @@ - + @@ -115,7 +115,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/page/46/index.html b/page/46/index.html index 691f89dada1..336ee9d6694 100644 --- a/page/46/index.html +++ b/page/46/index.html @@ -12,7 +12,7 @@ - + @@ -147,7 +147,7 @@ 3k/f)

  • Red: baseline (1.35.3), one peer in topology file

  • Blue: Preliminary version of our prototype, with 10 peers.

    It is slower by about ~30%, but it is not the latest version of the prototype, and the jump interval is very small, making CSJ more of a bottleneck.

  • Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    - + \ No newline at end of file diff --git a/page/47/index.html b/page/47/index.html index c9834d67be7..7af34fd0afe 100644 --- a/page/47/index.html +++ b/page/47/index.html @@ -12,7 +12,7 @@ - + @@ -182,7 +182,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/5/index.html b/page/5/index.html index 46808154524..724ea7819ea 100644 --- a/page/5/index.html +++ b/page/5/index.html @@ -12,7 +12,7 @@ - + @@ -31,7 +31,7 @@ and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125

    · 2 min read
    Damian Nadales

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
    - + \ No newline at end of file diff --git a/page/6/index.html b/page/6/index.html index 541d9db25aa..312a71bf303 100644 --- a/page/6/index.html +++ b/page/6/index.html @@ -12,7 +12,7 @@ - + @@ -60,7 +60,7 @@ versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the nomad backend - which will be a big step towards production use.

    - + \ No newline at end of file diff --git a/page/7/index.html b/page/7/index.html index b081deed0ff..2e0e2ca08cc 100644 --- a/page/7/index.html +++ b/page/7/index.html @@ -12,7 +12,7 @@ - + @@ -41,7 +41,7 @@ contributors, streamlining the development process for community involvement.

    What did the team achieve this week

    • Held the monthly review meeting for July (recording)
    • Migrate the core logic of the node to an event-sourced architecture #999
    • Updated persistence to faster incremental writes of events #1000
    • Added ability to read protocol parameters via API #735
    • Fix CI workflows to support pull requests from forks of external contributors #993
    • Updated to GHC 9.2.8 #1005
    • Prepared an updated use cases section on https://hydra.family (published with next release)

    What are the goals of next week

    • Publish monthly report
    • Complete user transaction submission work #966
    • Remove commit from internal wallet (deprecated) #954

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083

    · One min read
    Damian Nadales

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. We also focused on completing tracing support for UTxO-HD in cardano-node. Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    - + \ No newline at end of file diff --git a/page/8/index.html b/page/8/index.html index 764ef06e055..f05c867dfbe 100644 --- a/page/8/index.html +++ b/page/8/index.html @@ -12,7 +12,7 @@ - + @@ -43,7 +43,7 @@ light of new changes. They also took the time to revisit their goals and product plans for the next quarter as well as doing some security fixes related to multisignatures.

    What did the team achieve this week

    • Finished spike about performance improvements of event sourced persistence #963.
    • Refactor snapshot emission in protocol logic.
    • Revisited our roadmap and goals.
    • Prepared and conducated a learning session on lean-waste.
    • Improve security of multi-signature checks, see this Github security advisory.
    • Implemented a cache friendly way to version our binaries #962.

    What are the goals of next week

    • Implement Event sourced persistence #913.
    • Remove deprecated internal commit #954 and close #728.
    - + \ No newline at end of file diff --git a/page/9/index.html b/page/9/index.html index ee58693db91..28b3509f116 100644 --- a/page/9/index.html +++ b/page/9/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ and beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers for publication in EPTCS, formalising concensus, and investigating chain sync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    - + \ 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 1d002f64bc2..eefc75be280 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 f329b2f7467..6b3dfc005de 100644 --- a/quarterly/2022-11-07-ledger/index.html +++ b/quarterly/2022-11-07-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -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 1097148005b..13bf8c01f16 100644 --- a/quarterly/2022-11-09-network/index.html +++ b/quarterly/2022-11-09-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 28758df9eaa..4dc4972b7f3 100644 --- a/quarterly/2022-11-15-consensus/index.html +++ b/quarterly/2022-11-15-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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 d1e949a2b89..99b5cf4cd3f 100644 --- a/quarterly/2023-01-13-network/index.html +++ b/quarterly/2023-01-13-network/index.html @@ -12,7 +12,7 @@ - + @@ -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 ae5a7ea9d97..c964d370378 100644 --- a/quarterly/2023-01-13-open-source/index.html +++ b/quarterly/2023-01-13-open-source/index.html @@ -12,7 +12,7 @@ - + @@ -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 4beae5a6dbb..bbad0bbeae4 100644 --- a/quarterly/2023-01-18-consensus/index.html +++ b/quarterly/2023-01-18-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -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/2023-04-03-ledger/index.html b/quarterly/2023-04-03-ledger/index.html index c43edaf2fd4..18aa7ffea5b 100644 --- a/quarterly/2023-04-03-ledger/index.html +++ b/quarterly/2023-04-03-ledger/index.html @@ -12,7 +12,7 @@ - + @@ -158,7 +158,7 @@ All the details might not be finalized, but the wire specification and the API should be stable so that conway can be placed on a devnet for tool builders to start integrating with.
  • Plutus V3 - Integrate Plutus V3 into the ledger, including a new script context which supports DReps.
  • More details

    This quarterly report was based off of the following fortnightly ones:

    - + \ No newline at end of file diff --git a/quarterly/2023-04-04-network/index.html b/quarterly/2023-04-04-network/index.html index 4a5059cd86f..349b2ecb7de 100644 --- a/quarterly/2023-04-04-network/index.html +++ b/quarterly/2023-04-04-network/index.html @@ -12,7 +12,7 @@ - + @@ -32,7 +32,7 @@ structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing publication of io-sim to Hackage.
    - + \ No newline at end of file diff --git a/quarterly/2023-04-25-consensus/index.html b/quarterly/2023-04-25-consensus/index.html index a54bbe97620..5c1e65ec2d9 100644 --- a/quarterly/2023-04-25-consensus/index.html +++ b/quarterly/2023-04-25-consensus/index.html @@ -12,7 +12,7 @@ - + @@ -37,7 +37,7 @@ (#4180).
  • Estimate the number of file descriptors Consensus needs #20.
  • Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.
    - + \ No newline at end of file diff --git a/quarterly/2023-Q2-consensus/index.html b/quarterly/2023-Q2-consensus/index.html index 380d92b5f53..98160f9a690 100644 --- a/quarterly/2023-Q2-consensus/index.html +++ b/quarterly/2023-Q2-consensus/index.html @@ -3,7 +3,7 @@ -Consensus Q2 2023 Update | Cardano Development Updates +Consensus Q2 2023 Update | Cardano Development Updates @@ -12,12 +12,12 @@ - +
    -

    Consensus Q2 2023 Update

    · 5 min read
    Damian Nadales

    2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +

        Consensus Q2 2023 Update

        · 5 min read
        Damian Nadales

        2023-04 -- 2023-06

        Main achievements

        UTxO HD

        • We finished a major prototype refactoring, which includes:
          • A better and finer grained DB lock mechanism.
          • Elimination of race conditions.
          • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
          • Architectural simplifications and performance improvements.
        • We implemented a new package to support db-sync integration with UTxO-HD.
        • We ran another set of ad-hoc benchmarks:
          • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
          • The synchronization and replay speed are as expected.
          • However, we uncovered memory consumption issues (see figure below).
            • The in-memory backend is consuming more memory than the baseline.
            • The LMDB backend shows an unexpected memory usage peak.
            • Investigation on these issues is ongoing.
        • We integrated the latest changes in main branch.
          • This required a re-design of the mempool to include the mempool fairness improvement.

        Genesis

        • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
          • This particular question was not anticipated when the Q2 PI was planned.
          • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
          • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
        • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
        • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
          • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
          • The additional design complexity is relatively small.
        • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
          • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
          • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
          • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
          • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
        • Relevant questions that the IOG Researchers are still assessing.
          • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
          • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
          • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

        Support

        • We performed an analysis on number of file descriptors used by Consensus, this information can be used by the node operators to check if the number of file descriptors they want to support are enough, thus improving the user (eg node @@ -26,7 +26,7 @@ property tests.
        • We created an immutable DB server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
        • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
        • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

        Fostering collaboration

        • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
        • We migrated the consensus code to a new repository, splitting it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
        • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
        • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

        Next steps

        UTxO HD

        Genesis

        • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.
    - + \ No newline at end of file diff --git a/quarterly/2023-Q2-network/index.html b/quarterly/2023-Q2-network/index.html index 18e274e3283..8dc89413c2d 100644 --- a/quarterly/2023-Q2-network/index.html +++ b/quarterly/2023-Q2-network/index.html @@ -3,7 +3,7 @@ -Network Q2 2023 Update | Cardano Development Updates +Network Q2 2023 Update | Cardano Development Updates @@ -12,12 +12,12 @@ - +
    -

    Network Q2 2023 Update

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +

    Network Q2 2023 Update

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which relays on connectivity to big ledger peers. Big ledger peers are the largest ledger peers which accumulate 90% of stake (currently there are less than 1000 of them). The outbound governor has new targets for known, @@ -71,7 +71,7 @@ Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards releasing P2P on block production nodes. We hope to analyse performance regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.
    - + \ No newline at end of file diff --git a/quarterly/2023-Q2-sre/index.html b/quarterly/2023-Q2-sre/index.html index e7395d01825..f25c11ebff9 100644 --- a/quarterly/2023-Q2-sre/index.html +++ b/quarterly/2023-Q2-sre/index.html @@ -3,7 +3,7 @@ -SRE Q2 2023 Update | Cardano Development Updates +SRE Q2 2023 Update | Cardano Development Updates @@ -12,13 +12,13 @@ - +
    -

    SRE Q2 2023 Update

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    - +

    SRE Q2 2023 Update

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    + \ No newline at end of file diff --git a/quarterly/archive/index.html b/quarterly/archive/index.html index e51a9fed1e3..9b45d941603 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/atom.xml b/quarterly/atom.xml index 44efb337ae5..9b2bc18a7eb 100644 --- a/quarterly/atom.xml +++ b/quarterly/atom.xml @@ -2,7 +2,7 @@ https://input-output-hk.github.io/cardano-updates/quarterly Cardano Development Updates Blog - 2023-09-08T13:25:06.000Z + 2023-09-12T17:30:25.000Z https://github.com/jpmonette/feed Cardano Development Updates Blog @@ -11,7 +11,7 @@ <![CDATA[Consensus Q2 2023 Update]]> 2023-Q2-consensus - 2023-09-08T13:25:06.000Z + 2023-09-12T17:30:25.000Z 2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this @@ -32,7 +32,7 @@ it from the ouroboros-network repository. This will save developmen <![CDATA[Network Q2 2023 Update]]> 2023-Q2-network - 2023-09-08T13:25:06.000Z + 2023-09-12T17:30:25.000Z 2023-04 - 2023-06

      Main achievements

      Eclipse Evasion

      We finalised the design of eclipse evasion and implemented its mechanism which relays on connectivity to big ledger peers. Big ledger peers are the @@ -98,7 +98,7 @@ regression on such nodes observed on the benchmarking cluster. 2023-Q2-sre - 2023-09-08T13:25:06.000Z + 2023-09-12T17:30:25.000Z

      2023-04 - 2023-06

      Main achievements

      In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

      • Expanding the darwin CI cluster and adding aarch64 builder support
      • Adding bare metal capability to bitte clusters
      • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
      • Creation of pool performance analysis queries and scripting
      • Migration of testnet metadata server to cardano-world
      • Cardano shelley qa migration to cardano-world
      • Cardano sanchonet environment spin up to test Conway era functionality
      • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

      Next steps

      • Continue with the conversion of mainnet to using p2p topology
      ]]>
      diff --git a/quarterly/index.html b/quarterly/index.html index 9e1a1410875..dbefddb758a 100644 --- a/quarterly/index.html +++ b/quarterly/index.html @@ -12,12 +12,12 @@ - +
      -

      · 5 min read
      Damian Nadales

      2023-04 -- 2023-06

      Main achievements

      UTxO HD

      • We finished a major prototype refactoring, which includes:
        • A better and finer grained DB lock mechanism.
        • Elimination of race conditions.
        • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
        • Architectural simplifications and performance improvements.
      • We implemented a new package to support db-sync integration with UTxO-HD.
      • We ran another set of ad-hoc benchmarks:
        • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
        • The synchronization and replay speed are as expected.
        • However, we uncovered memory consumption issues (see figure below).
          • The in-memory backend is consuming more memory than the baseline.
          • The LMDB backend shows an unexpected memory usage peak.
          • Investigation on these issues is ongoing.
      • We integrated the latest changes in main branch.
        • This required a re-design of the mempool to include the mempool fairness +

          · 5 min read
          Damian Nadales

          2023-04 -- 2023-06

          Main achievements

          UTxO HD

          • We finished a major prototype refactoring, which includes:
            • A better and finer grained DB lock mechanism.
            • Elimination of race conditions.
            • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
            • Architectural simplifications and performance improvements.
          • We implemented a new package to support db-sync integration with UTxO-HD.
          • We ran another set of ad-hoc benchmarks:
            • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
            • The synchronization and replay speed are as expected.
            • However, we uncovered memory consumption issues (see figure below).
              • The in-memory backend is consuming more memory than the baseline.
              • The LMDB backend shows an unexpected memory usage peak.
              • Investigation on these issues is ongoing.
          • We integrated the latest changes in main branch.
            • This required a re-design of the mempool to include the mempool fairness improvement.

          Genesis

          • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
            • This particular question was not anticipated when the Q2 PI was planned.
            • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
            • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
          • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
          • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
            • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
            • The additional design complexity is relatively small.
          • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
            • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
            • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
            • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
            • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
          • Relevant questions that the IOG Researchers are still assessing.
            • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
            • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
            • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

          Support

          • We performed an analysis on number of file descriptors used by Consensus, this information can be used by the node operators to check if the number of file descriptors they want to support are enough, thus improving the user (eg node @@ -25,7 +25,7 @@ guaranteed to be processed irrespective of their size.

          Technical debt

          • We fixed a bug in followers logic, which was discovered by our QuickCheck property tests.
          • We created an immutable DB server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
          • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
          • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

          Fostering collaboration

          • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
          • We migrated the consensus code to a new repository, splitting -it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
          • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
          • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

          Next steps

          UTxO HD

          Genesis

          • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.

          · 6 min read
          Marcin Szamotulski

          2023-04 - 2023-06

          Main achievements

          Eclipse Evasion

          We finalised the design of eclipse evasion and implemented its mechanism which +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).

        • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
        • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

        Next steps

        UTxO HD

        Genesis

        • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.

      · 6 min read
      Marcin Szamotulski

      2023-04 - 2023-06

      Main achievements

      Eclipse Evasion

      We finalised the design of eclipse evasion and implemented its mechanism which relays on connectivity to big ledger peers. Big ledger peers are the largest ledger peers which accumulate 90% of stake (currently there are less than 1000 of them). The outbound governor has new targets for known, @@ -78,7 +78,7 @@ which includes ouroboros-network, io-sim, typed-protocols and Win32-network.

      Next steps

      We will continue towards our aspirational roadmap.

      • We will continue reviewing eclipse evasion.
      • As ouroboros-consensus#140 was merged, we are making progress towards releasing P2P on block production nodes. We hope to analyse performance -regression on such nodes observed on the benchmarking cluster. roadmap-3887
      • We are also focused on roadmap-3969. Note that it was expanded in Q2.

      · One min read
      John Lotoski

      2023-04 - 2023-06

      Main achievements

      In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

      • Expanding the darwin CI cluster and adding aarch64 builder support
      • Adding bare metal capability to bitte clusters
      • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
      • Creation of pool performance analysis queries and scripting
      • Migration of testnet metadata server to cardano-world
      • Cardano shelley qa migration to cardano-world
      • Cardano sanchonet environment spin up to test Conway era functionality
      • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

      Next steps

      • Continue with the conversion of mainnet to using p2p topology

      · One min read
      John Lotoski

      2023-04 - 2023-06

      Main achievements

      In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

      • Expanding the darwin CI cluster and adding aarch64 builder support
      • Adding bare metal capability to bitte clusters
      • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
      • Creation of pool performance analysis queries and scripting
      • Migration of testnet metadata server to cardano-world
      • Cardano shelley qa migration to cardano-world
      • Cardano sanchonet environment spin up to test Conway era functionality
      • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

      Next steps

      • Continue with the conversion of mainnet to using p2p topology

      · 3 min read
      Damian Nadales

      Consensus Quarterly Update

      2023-01 - 2023-03

      Main achievements

      UTxO HD

      • We finished the testing activities for the prototype, which involved adding new tests, and fixing and enabling temporarily disabled tests.
      • We spent a substantial amount of effort refactoring and cleaning the prototype.
      • We audited the UTxO HD prototype to make sure it can accommodate the migration of other tables (eg stake-keys registration) from memory to disk. The result @@ -378,7 +378,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/page/2/index.html b/quarterly/page/2/index.html index da0a45efbce..0fcbbc289cf 100644 --- a/quarterly/page/2/index.html +++ b/quarterly/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -63,7 +63,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/rss.xml b/quarterly/rss.xml index 4d72b77be84..0119553da59 100644 --- a/quarterly/rss.xml +++ b/quarterly/rss.xml @@ -4,7 +4,7 @@ Cardano Development Updates Blog https://input-output-hk.github.io/cardano-updates/quarterly Cardano Development Updates Blog - Fri, 08 Sep 2023 13:25:06 GMT + Tue, 12 Sep 2023 17:30:25 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -12,7 +12,7 @@ <![CDATA[Consensus Q2 2023 Update]]> https://input-output-hk.github.io/cardano-updates/quarterly/2023-Q2-consensus 2023-Q2-consensus - Fri, 08 Sep 2023 13:25:06 GMT + Tue, 12 Sep 2023 17:30:25 GMT 2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this @@ -29,7 +29,7 @@ it from the ouroboros-network repository. This will save developmen <![CDATA[Network Q2 2023 Update]]> https://input-output-hk.github.io/cardano-updates/quarterly/2023-Q2-network 2023-Q2-network - Fri, 08 Sep 2023 13:25:06 GMT + Tue, 12 Sep 2023 17:30:25 GMT 2023-04 - 2023-06

      Main achievements

      Eclipse Evasion

      We finalised the design of eclipse evasion and implemented its mechanism which relays on connectivity to big ledger peers. Big ledger peers are the @@ -91,7 +91,7 @@ regression on such nodes observed on the benchmarking cluster. 2023-04 - 2023-06

      Main achievements

      In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

      • Expanding the darwin CI cluster and adding aarch64 builder support
      • Adding bare metal capability to bitte clusters
      • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
      • Creation of pool performance analysis queries and scripting
      • Migration of testnet metadata server to cardano-world
      • Cardano shelley qa migration to cardano-world
      • Cardano sanchonet environment spin up to test Conway era functionality
      • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

      Next steps

      • Continue with the conversion of mainnet to using p2p topology
      ]]>
      sre diff --git a/quarterly/tags/cli-api-quarterly/index.html b/quarterly/tags/cli-api-quarterly/index.html index f4972bcc5a2..2e2a067da0b 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 169dffbdc24..d773e7d0740 100644 --- a/quarterly/tags/consensus/index.html +++ b/quarterly/tags/consensus/index.html @@ -12,12 +12,12 @@ - +
      -

      4 posts tagged with "consensus"

      View All Tags

      · 5 min read
      Damian Nadales

      2023-04 -- 2023-06

      Main achievements

      UTxO HD

      • We finished a major prototype refactoring, which includes:
        • A better and finer grained DB lock mechanism.
        • Elimination of race conditions.
        • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
        • Architectural simplifications and performance improvements.
      • We implemented a new package to support db-sync integration with UTxO-HD.
      • We ran another set of ad-hoc benchmarks:
        • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
        • The synchronization and replay speed are as expected.
        • However, we uncovered memory consumption issues (see figure below).
          • The in-memory backend is consuming more memory than the baseline.
          • The LMDB backend shows an unexpected memory usage peak.
          • Investigation on these issues is ongoing.
      • We integrated the latest changes in main branch.
        • This required a re-design of the mempool to include the mempool fairness +

          4 posts tagged with "consensus"

          View All Tags

          · 5 min read
          Damian Nadales

          2023-04 -- 2023-06

          Main achievements

          UTxO HD

          • We finished a major prototype refactoring, which includes:
            • A better and finer grained DB lock mechanism.
            • Elimination of race conditions.
            • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
            • Architectural simplifications and performance improvements.
          • We implemented a new package to support db-sync integration with UTxO-HD.
          • We ran another set of ad-hoc benchmarks:
            • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
            • The synchronization and replay speed are as expected.
            • However, we uncovered memory consumption issues (see figure below).
              • The in-memory backend is consuming more memory than the baseline.
              • The LMDB backend shows an unexpected memory usage peak.
              • Investigation on these issues is ongoing.
          • We integrated the latest changes in main branch.
            • This required a re-design of the mempool to include the mempool fairness improvement.

          Genesis

          • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
            • This particular question was not anticipated when the Q2 PI was planned.
            • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
            • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
          • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
          • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
            • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
            • The additional design complexity is relatively small.
          • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
            • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
            • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
            • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
            • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
          • Relevant questions that the IOG Researchers are still assessing.
            • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
            • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
            • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

          Support

          • We performed an analysis on number of file descriptors used by Consensus, this information can be used by the node operators to check if the number of file descriptors they want to support are enough, thus improving the user (eg node @@ -119,7 +119,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 7f0f90f15d0..58c99cb5929 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 ebb3a1edcc8..972220c9465 100644 --- a/quarterly/tags/ledger/index.html +++ b/quarterly/tags/ledger/index.html @@ -12,7 +12,7 @@ - + @@ -161,7 +161,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 6458b3b2432..2c65f64ccff 100644 --- a/quarterly/tags/network/index.html +++ b/quarterly/tags/network/index.html @@ -12,12 +12,12 @@ - +
    -

    4 posts tagged with "network"

    View All Tags

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +

    4 posts tagged with "network"

    View All Tags

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which relays on connectivity to big ledger peers. Big ledger peers are the largest ledger peers which accumulate 90% of stake (currently there are less than 1000 of them). The outbound governor has new targets for known, @@ -150,7 +150,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 753c64985c2..f3c629bbb24 100644 --- a/quarterly/tags/open-source/index.html +++ b/quarterly/tags/open-source/index.html @@ -12,7 +12,7 @@ - + @@ -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/tags/sre/index.html b/quarterly/tags/sre/index.html index 2f91dc96621..e300220b57e 100644 --- a/quarterly/tags/sre/index.html +++ b/quarterly/tags/sre/index.html @@ -12,13 +12,13 @@ - +
    -

    One post tagged with "sre"

    View All Tags

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    - +

    One post tagged with "sre"

    View All Tags

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    + \ No newline at end of file diff --git a/tags/cli-api/index.html b/tags/cli-api/index.html index 379a967a30b..bd3a9cc5e0b 100644 --- a/tags/cli-api/index.html +++ b/tags/cli-api/index.html @@ -12,13 +12,13 @@ - +

    16 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · One min read
    Jordan Millar

    2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    - + \ 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 a7f7b1d6230..b9b3268d33c 100644 --- a/tags/cli-api/page/2/index.html +++ b/tags/cli-api/page/2/index.html @@ -12,13 +12,13 @@ - +

    16 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 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

    - + \ No newline at end of file diff --git a/tags/cli-api/page/3/index.html b/tags/cli-api/page/3/index.html index a768099a398..9254cb5a98d 100644 --- a/tags/cli-api/page/3/index.html +++ b/tags/cli-api/page/3/index.html @@ -12,13 +12,13 @@ - +

    16 posts tagged with "cli-api"

    View All Tags

    · 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

    · 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

    - + \ No newline at end of file diff --git a/tags/cli-api/page/4/index.html b/tags/cli-api/page/4/index.html index a256487f277..5cc79cf7e2b 100644 --- a/tags/cli-api/page/4/index.html +++ b/tags/cli-api/page/4/index.html @@ -12,13 +12,13 @@ - +

    16 posts tagged with "cli-api"

    View All Tags

    · 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 2304a9f231c..33e7396e303 100644 --- a/tags/consensus/index.html +++ b/tags/consensus/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:

    · 2 min read
    Damian Nadales

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.

    · One min read
    Damian Nadales

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. We also focused on completing tracing support for UTxO-HD in cardano-node. Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    · One min read
    Damian Nadales

    High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    - + \ No newline at end of file diff --git a/tags/consensus/page/2/index.html b/tags/consensus/page/2/index.html index 87a75c999e0..e3429dff228 100644 --- a/tags/consensus/page/2/index.html +++ b/tags/consensus/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -47,7 +47,7 @@ explanation of a question that we had to explain many times about the exact behavior of the hardfork combinator forecast horizon.

    - + \ No newline at end of file diff --git a/tags/consensus/page/3/index.html b/tags/consensus/page/3/index.html index 989b3b0c632..f8fc22aa2d9 100644 --- a/tags/consensus/page/3/index.html +++ b/tags/consensus/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -108,7 +108,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/tags/consensus/page/4/index.html b/tags/consensus/page/4/index.html index 8cdee4b6388..634177c6bca 100644 --- a/tags/consensus/page/4/index.html +++ b/tags/consensus/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -165,7 +165,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/tags/consensus/page/5/index.html b/tags/consensus/page/5/index.html index beba31fbf25..2dc4b0513e1 100644 --- a/tags/consensus/page/5/index.html +++ b/tags/consensus/page/5/index.html @@ -12,7 +12,7 @@ - + @@ -251,7 +251,7 @@ 3k/f)

  • Red: baseline (1.35.3), one peer in topology file

  • Blue: Preliminary version of our prototype, with 10 peers.

    It is slower by about ~30%, but it is not the latest version of the prototype, and the jump interval is very small, making CSJ more of a bottleneck.

  • Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    - + \ No newline at end of file diff --git a/tags/consensus/page/6/index.html b/tags/consensus/page/6/index.html index c8c4cbe6740..2a8023feb9a 100644 --- a/tags/consensus/page/6/index.html +++ b/tags/consensus/page/6/index.html @@ -12,7 +12,7 @@ - + @@ -103,7 +103,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 78a0d582f91..b6029722c01 100644 --- a/tags/crypto/index.html +++ b/tags/crypto/index.html @@ -12,7 +12,7 @@ - + @@ -34,7 +34,7 @@ The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939. Included benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)
    - + \ No newline at end of file diff --git a/tags/crypto/page/2/index.html b/tags/crypto/page/2/index.html index 4beb00912a1..8ac11ebba92 100644 --- a/tags/crypto/page/2/index.html +++ b/tags/crypto/page/2/index.html @@ -12,13 +12,13 @@ - +

    18 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:

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

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

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready

    · 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/tags/crypto/page/3/index.html b/tags/crypto/page/3/index.html index a99c7660a2c..39ca436fdcd 100644 --- a/tags/crypto/page/3/index.html +++ b/tags/crypto/page/3/index.html @@ -12,13 +12,13 @@ - +

    18 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: 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.

    · 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/tags/crypto/page/4/index.html b/tags/crypto/page/4/index.html index b3543b72a20..0e47c0d5753 100644 --- a/tags/crypto/page/4/index.html +++ b/tags/crypto/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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 4cf687e3aba..779ab3fd980 100644 --- a/tags/db-sync/index.html +++ b/tags/db-sync/index.html @@ -12,7 +12,7 @@ - + @@ -53,7 +53,7 @@ disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync mainnet in hours. #1379
    - + \ 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 ad98a60be46..cdb902c6b29 100644 --- a/tags/db-sync/page/2/index.html +++ b/tags/db-sync/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -66,7 +66,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/tags/db-sync/page/3/index.html b/tags/db-sync/page/3/index.html index a001f23b5ad..f5cb1bc0d53 100644 --- a/tags/db-sync/page/3/index.html +++ b/tags/db-sync/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -56,7 +56,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/devx/index.html b/tags/devx/index.html index 64e91fb6418..374a7045efd 100644 --- a/tags/devx/index.html +++ b/tags/devx/index.html @@ -12,13 +12,13 @@ - +

    One post tagged with "devx"

    View All Tags

    · 3 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    - + \ No newline at end of file diff --git a/tags/embedding-quality/index.html b/tags/embedding-quality/index.html index 2d395596aef..f7450258000 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:

    • 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
    - + \ No newline at end of file diff --git a/tags/goedel/index.html b/tags/goedel/index.html index 4596b8725cc..1c6f836b817 100644 --- a/tags/goedel/index.html +++ b/tags/goedel/index.html @@ -12,7 +12,7 @@ - + @@ -44,7 +44,7 @@ sync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    · 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 teams presented two papers at ICE 2023.

    Details

    - + \ No newline at end of file diff --git a/tags/goedel/page/2/index.html b/tags/goedel/page/2/index.html index 47524ffdc81..0dbd116347a 100644 --- a/tags/goedel/page/2/index.html +++ b/tags/goedel/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -38,7 +38,7 @@ that is directly applicable to evidence based engineering in Core Tech and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried out consultancy with other teams and has an opening for an intern.

    Details

    - + \ No newline at end of file diff --git a/tags/goedel/page/3/index.html b/tags/goedel/page/3/index.html index c339e1e0f54..05779573c9b 100644 --- a/tags/goedel/page/3/index.html +++ b/tags/goedel/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -53,7 +53,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 a6810302624..284aaa57c40 100644 --- a/tags/hydra/index.html +++ b/tags/hydra/index.html @@ -12,7 +12,7 @@ - + @@ -63,7 +63,7 @@ preparations for the Hydra master-class.

    What did the team achieve this week

    • Updated dependencies to support cardano-node 8.1.2 #1007
    • Engaged in discussions about a cardanonical json schema and add it as submodule to the project #1013
    • Onboarded a new contributor to the hydra project (@locallycompact)
    • Joined RareEvo twitter space and continued preparation of hydra master-class

    What are the goals of next week

    • Update & streamline tutorial to work with latest version of hydra-node
    • Remove the internal commit functionality #954
    • Release 0.12.0
    - + \ No newline at end of file diff --git a/tags/hydra/page/2/index.html b/tags/hydra/page/2/index.html index ea00be4013c..7623cfcd46f 100644 --- a/tags/hydra/page/2/index.html +++ b/tags/hydra/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -54,7 +54,7 @@ ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark publishing on the website.

    What did the team achieve this week

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Add new endpoint for submitting client transactions
    • Remove commit from internal wallet
    - + \ No newline at end of file diff --git a/tags/hydra/page/3/index.html b/tags/hydra/page/3/index.html index 7f609f27593..8dcef745af4 100644 --- a/tags/hydra/page/3/index.html +++ b/tags/hydra/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -54,7 +54,7 @@ errors when a transition requirement fails, and to reduce duplication on effets logged content. Last but not least, the team is exploring formal methods and attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.
    - + \ No newline at end of file diff --git a/tags/hydra/page/4/index.html b/tags/hydra/page/4/index.html index 8114583f3f5..92b294d5ba1 100644 --- a/tags/hydra/page/4/index.html +++ b/tags/hydra/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -51,7 +51,7 @@ forward, the team plans to hold the next monthly review meeting, address a user issue, prepare for the 0.10.0 release, and work on a dirt road fix for the rollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.
    - + \ No newline at end of file diff --git a/tags/hydra/page/5/index.html b/tags/hydra/page/5/index.html index 36fd7b5d5b7..fd8287483ed 100644 --- a/tags/hydra/page/5/index.html +++ b/tags/hydra/page/5/index.html @@ -12,7 +12,7 @@ - + @@ -53,7 +53,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/tags/hydra/page/6/index.html b/tags/hydra/page/6/index.html index 04f928e002f..306600f5437 100644 --- a/tags/hydra/page/6/index.html +++ b/tags/hydra/page/6/index.html @@ -12,7 +12,7 @@ - + @@ -55,7 +55,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/tags/hydra/page/7/index.html b/tags/hydra/page/7/index.html index cf5d654410e..e920697ef61 100644 --- a/tags/hydra/page/7/index.html +++ b/tags/hydra/page/7/index.html @@ -12,7 +12,7 @@ - + @@ -53,7 +53,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.

    · 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/tags/hydra/page/8/index.html b/tags/hydra/page/8/index.html index e8eebf3fa60..082af8543f4 100644 --- a/tags/hydra/page/8/index.html +++ b/tags/hydra/page/8/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ 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

    · 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/tags/hydra/page/9/index.html b/tags/hydra/page/9/index.html index a5608ef2c9b..31e8ca91527 100644 --- a/tags/hydra/page/9/index.html +++ b/tags/hydra/page/9/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ 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
    - + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 3816cf0d35b..e08b2cfd066 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 a1d0b46fa87..9781516a385 100644 --- a/tags/ledger/index.html +++ b/tags/ledger/index.html @@ -12,7 +12,7 @@ - + @@ -34,7 +34,7 @@ to be able to support DReps, we cleaned up the serialization format, and renamed things to make clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams
    - + \ No newline at end of file diff --git a/tags/ledger/page/2/index.html b/tags/ledger/page/2/index.html index 13f35ae4c70..a110760fbab 100644 --- a/tags/ledger/page/2/index.html +++ b/tags/ledger/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -58,7 +58,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/tags/ledger/page/3/index.html b/tags/ledger/page/3/index.html index 43ab34e63e0..5a60cf02af4 100644 --- a/tags/ledger/page/3/index.html +++ b/tags/ledger/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -134,7 +134,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/tags/ledger/page/4/index.html b/tags/ledger/page/4/index.html index 3b84e76790d..2e8aafa8e75 100644 --- a/tags/ledger/page/4/index.html +++ b/tags/ledger/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -168,7 +168,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/tags/ledger/page/5/index.html b/tags/ledger/page/5/index.html index 2994d329649..183a1c8554f 100644 --- a/tags/ledger/page/5/index.html +++ b/tags/ledger/page/5/index.html @@ -12,7 +12,7 @@ - + @@ -91,7 +91,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 b1cc8466d2f..edbae6012a5 100644 --- a/tags/mithril/index.html +++ b/tags/mithril/index.html @@ -12,13 +12,13 @@ - +

    22 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023
    - + \ No newline at end of file diff --git a/tags/mithril/page/2/index.html b/tags/mithril/page/2/index.html index 9fefcd89dea..74179b86a0f 100644 --- a/tags/mithril/page/2/index.html +++ b/tags/mithril/page/2/index.html @@ -12,13 +12,13 @@ - +

    22 posts tagged with "mithril"

    View All Tags

    · 3 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
    - + \ No newline at end of file diff --git a/tags/mithril/page/3/index.html b/tags/mithril/page/3/index.html index 7b708e22288..d1138f90831 100644 --- a/tags/mithril/page/3/index.html +++ b/tags/mithril/page/3/index.html @@ -12,13 +12,13 @@ - +

    22 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843

    · 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
    - + \ No newline at end of file diff --git a/tags/mithril/page/4/index.html b/tags/mithril/page/4/index.html index 8f2a2aa520f..5014d3c49c2 100644 --- a/tags/mithril/page/4/index.html +++ b/tags/mithril/page/4/index.html @@ -12,13 +12,13 @@ - +

    22 posts tagged with "mithril"

    View All Tags

    · 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

    · 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
    - + \ No newline at end of file diff --git a/tags/mithril/page/5/index.html b/tags/mithril/page/5/index.html index 5f7850cfa20..266240d0539 100644 --- a/tags/mithril/page/5/index.html +++ b/tags/mithril/page/5/index.html @@ -12,13 +12,13 @@ - +

    22 posts tagged with "mithril"

    View All Tags

    · 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 675e6819553..bed2e28967e 100644 --- a/tags/network/index.html +++ b/tags/network/index.html @@ -12,7 +12,7 @@ - + @@ -122,7 +122,7 @@ peers DNS names are resolved concurrently, and at most 2 local root peer DNS names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the consensus team, see #4608.

    - + \ No newline at end of file diff --git a/tags/network/page/2/index.html b/tags/network/page/2/index.html index b3b08e5aff8..bdf8bd06f4a 100644 --- a/tags/network/page/2/index.html +++ b/tags/network/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -82,7 +82,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/tags/network/page/3/index.html b/tags/network/page/3/index.html index 0f10ea4113b..fd81edf2e6d 100644 --- a/tags/network/page/3/index.html +++ b/tags/network/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -100,7 +100,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/tags/network/page/4/index.html b/tags/network/page/4/index.html index 1867f94d39e..3c4248fa1ce 100644 --- a/tags/network/page/4/index.html +++ b/tags/network/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -111,7 +111,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 e7f4859faf8..7d2f6622248 100644 --- a/tags/open-source/index.html +++ b/tags/open-source/index.html @@ -12,7 +12,7 @@ - + @@ -39,7 +39,7 @@ repositories are missing the most: Documentation Adoption You can expect we will improve in these metrics in the coming weeks.

    - + \ No newline at end of file diff --git a/tags/performance-tracing/index.html b/tags/performance-tracing/index.html index ce8633594f0..e8d6aae4d02 100644 --- a/tags/performance-tracing/index.html +++ b/tags/performance-tracing/index.html @@ -12,7 +12,7 @@ - + @@ -36,7 +36,7 @@ versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the nomad backend - which will be a big step towards production use.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    - + \ 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 cf28a4ee0bb..84bcb1f3e50 100644 --- a/tags/performance-tracing/page/2/index.html +++ b/tags/performance-tracing/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -56,7 +56,7 @@ we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along with various quality-of-life improvements, has been merged to master.

    - + \ No newline at end of file diff --git a/tags/performance-tracing/page/3/index.html b/tags/performance-tracing/page/3/index.html index 6cea7ed7df4..08894319244 100644 --- a/tags/performance-tracing/page/3/index.html +++ b/tags/performance-tracing/page/3/index.html @@ -12,7 +12,7 @@ - + @@ -50,7 +50,7 @@ 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.

    · 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/tags/performance-tracing/page/4/index.html b/tags/performance-tracing/page/4/index.html index b3ee85a7065..fc53e0acde5 100644 --- a/tags/performance-tracing/page/4/index.html +++ b/tags/performance-tracing/page/4/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@ 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.

    - + \ No newline at end of file diff --git a/tags/performance-tracing/page/5/index.html b/tags/performance-tracing/page/5/index.html index 29ab46648aa..d973053e74c 100644 --- a/tags/performance-tracing/page/5/index.html +++ b/tags/performance-tracing/page/5/index.html @@ -12,13 +12,13 @@ - +

    21 posts tagged with "performance-tracing"

    View All Tags

    · 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 f2b0e84a177..3e361a5fb6b 100644 --- a/tags/release/index.html +++ b/tags/release/index.html @@ -12,7 +12,7 @@ - + @@ -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 41149e5c1ac..26a9472b086 100644 --- a/tags/sre/index.html +++ b/tags/sre/index.html @@ -12,13 +12,13 @@ - +

    9 posts tagged with "sre"

    View All Tags

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- "Content Addressed Packages"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    - + \ No newline at end of file diff --git a/tags/sre/page/2/index.html b/tags/sre/page/2/index.html index 5b9058ed542..10dc447df32 100644 --- a/tags/sre/page/2/index.html +++ b/tags/sre/page/2/index.html @@ -12,7 +12,7 @@ - + @@ -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 a16a30899f2..ae19ad5aa2c 100644 --- a/tags/system-test/index.html +++ b/tags/system-test/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ 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