Skip to content

Mithril v2517.1

Compare
Choose a tag to compare
@github-actions github-actions released this 06 May 11:20
· 618 commits to main since this release
2517.1
b1a2faa

Highlights

Warning

🔥 This version fixes a bug in the 2517.0 distribution which caused the Cardano node to fail during startup when using a snapshot downloaded with the Mithril client.

Make sure you are using the Mithril client CLI with version 0.12.1.

  • ⚠️ Breaking changes in Mithril client CLI and library as detailed in this blog post:
    • To fast bootstrap a Cardano node, the new --include-ancillary option has been added to the Cardano node database command in the Mithril client CLI.
    • Without this option, only final immutable files are downloaded, and the ledger state must be computed from the genesis block when the Cardano node starts.
    • The --include-ancillary option requires the usage of an ancillary verification key (--ancillary-verification-key or ANCILLARY_VERIFICATION_KEY) which is specified in the Networks configuration page.
    • Clients from distribution [2513] and earlier are not compatible with this change and must be updated.
  • Support for Cardano node 10.3.1 in the signer and the aggregator
  • Support for origin tags in Mithril client library, CLI and WASM to record the origin of client requests.
  • Bug fixes and performance improvements.

What's Changed

  • feat: Separate location for ancillary for cardano database v1 by @Alenar in #2380
  • refactor: prepare ancillary signing by @Alenar in #2393
  • Chore: bump glibc requirement to 2.35+ in one-line installer by @jpraynaud in #2387
  • Docs: rotate documentation for 2513 distribution by @jpraynaud in #2390
  • docs: final CHANGELOG for 2513.0 distribution by @jpraynaud in #2395
  • Docs: add dev blog post for distribution 2513 by @jpraynaud in #2396
  • Feat(e2e): support multiple aggregators in the e2e tests by @jpraynaud in #2378
  • Docs: fix website documentation by @dlachaume in #2397
  • feat: Sign ancillary files in aggregator by @Alenar in #2394
  • Fix(infra): fix aggregator crash at startup in testing-preview network by @jpraynaud in #2399
  • chore: anticipate rust 1.86 by @Alenar in #2398
  • Refactor: rename master/slave signer registration by @jpraynaud in #2400
  • Feat(infra): split ssh keys for testing/production by @jpraynaud in #2401
  • chore(infra): add ssh key for 'testing' and 'production' by @turmelclem in #2404
  • Organize STM - Blst multi_sig module by @curiecrypt in #2405
  • Feat: record origin of client requests in metrics by @sfauvel in #2411
  • CI: include CardanoDatabase in the backward compatibility test by @dlachaume in #2413
  • Feat: include origin tag header for aggregator prover benchmark by @dlachaume in #2416
  • explorer: support latest ancillary & cardano database v2 developments by @Alenar in #2418
  • fix(aggregator): incorrect immutable files average and total size in cardano database v2 by @Alenar in #2419
  • Docs: blog post for the Cardano node database v2 certification by @dlachaume in #2417
  • Feat(infra): support follower aggregator in infra by @jpraynaud in #2407
  • Fix: signer infra volumes configuration by @jpraynaud in #2420
  • feat: Verify ancillary artifacts in client by @Alenar in #2414
  • Fix aggregator path in stress test by @sfauvel in #2421
  • Refactor: Simplify the configuration of commands in aggregator by @dlachaume in #2423
  • Refactor: Simplify the configuration of tools/era commands in aggregator by @dlachaume in #2434
  • fix(aggregator): ancillary signing on evolving files by @Alenar in #2425
  • feat(aggregator): Sign ancillary with GCP Kms by @Alenar in #2431
  • Simplify injection container in aggregator by @sfauvel in #2435
  • Refactor: Simplify the configuration of genesis command in aggregator by @dlachaume in #2432
  • Doc: update Cardano node database v2 dev blog post by @jpraynaud in #2439
  • Refactor: renaming and update aggregator node documentation by @dlachaume in #2438
  • refactor: shared workspace dependencies by @Alenar in #2440
  • Feat: support GCP KMS ancillary signature in infrastructure by @jpraynaud in #2433
  • doc(website): update cardano node boostrap page with ancillary verification by @Alenar in #2441
  • Chore: update dependencies for distribution 2517 by @jpraynaud in #2443
  • refactor: move SignaturePublisher to a dedicated module by @turmelclem in #2437
  • Feat: Support Cardano node 10.3.1 by @jpraynaud in #2447
  • test: use a in memory logger for tests that needs to check logs by @Alenar in #2442
  • Docs: update CHANGELOG for 2517.0 distribution release by @jpraynaud in #2444
  • Feat: support custom origin tags in infra by @jpraynaud in #2448

New Contributors

Full Changelog: 2513.0...2517.1

Crates Versions

Crate Version
mithril-aggregator 0.7.44
mithril-client 0.12.2
mithril-client-cli 0.12.1
mithril-client-wasm 0.9.0
mithril-common 0.5.27
mithril-signer 0.2.243
mithril-stm 0.3.45

Networks Compatibility ⚠️

Network Compatible
release-mainnet
release-preprod
pre-release-preview
testing-preview

Distributions Compatibility ⚠️

Compatibility mithril-signer mithril-client
2513.0 ✔️
2506.0 ✔️
2450.0 ✔️

Linux Requirements

The Linux binaries target glibc: to run them or install the .deb packages you must have glibc version 2.35+ installed.
Compatible systems include, but are not limited to, Ubuntu 22.04+ or Debian 12+ (Bookworm)).

Verify the authenticity of a downloaded asset

Detailed procedure to verify an asset

  • Step 1: Identify the downloaded asset on your computer YOUR_ASSET_FILE
  • Step 2: Download the signed checksum file from this link CHECKSUM.asc and save it in the same folder as the asset
  • Step 3: In your terminal, go to the asset folder by running:
cd ***YOUR_ASSET_FOLDER***
  • Step 4: Then verify the checksum of the asset by running:
sha256sum -c ./CHECKSUM.asc 2>/dev/null | grep ***YOUR_ASSET_FILE***

You must see:

./***YOUR_ASSET_FILE***: OK
  • Step 5: Download the public key file from this link public-key.gpg and save it in the same folder as the asset
  • Step 6: Then import the GPG public key:
gpg --import ./public-key.gpg

You must see something like:

gpg: key : public key "Input Output / Mithril <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
  • Step 7: Then verify the GPG signature of the checksum file:
gpg --verify ./CHECKSUM.asc

You must see something like:

gpg: Signature made Mon 05 Dec 2022 04:53:54 PM CET
gpg:                using RSA key 35EDE9D47BBA62A2F388E655899ACD26B8BCA0D2
gpg: Good signature from "Input Output / Mithril <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 35ED E9D4 7BBA 62A2 F388  E655 899A CD26 B8BC A0D2

The signature is valid if and only if:

  • there is a line with gpg: Good signature from "Input Output / Mithril <[email protected]>"
  • there is a line with Primary key fingerprint: 73FC 4C3D FD55 DBDC 428A D2B5 BE04 3B79 FDA4 C2EE
  • Step 8:
    If you successfully validated all the steps of this process, then you have successfully verified the authenticity of the asset ✔️
    If not, contact us at [[email protected]] and let us know of the outcome of your run of this process ⚠️