Skip to content

Unstable Development Builds

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Mar 09:21
e40622c

Crates Versions

Crate Version
mithril-aggregator 0.8.34
mithril-client 0.13.5
mithril-client-cli 0.12.43
mithril-client-wasm 0.9.12
mithril-common 0.6.56
mithril-signer 0.3.23
mithril-stm 0.9.29

Networks Compatibility ⚠️

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

Cardano Node Compatibility

Network Mithril Aggregator Mithril Signer
release-mainnet Cardano 10.5.2+(*) Cardano 10.5.2+(*)
release-preprod Cardano 10.5.2+(*) Cardano 10.5.2+(*)
pre-release-preview Cardano 10.5.2+(*) Cardano 10.5.2+(*)
testing-preview Cardano 10.5.2+(*) Cardano 10.5.2+(*)

*: Up to the latest Cardano node version released at the time of this release.

Platform Support

Summary of the platforms for which pre-built binaries are provided.

Binary Linux x64 Linux arm64 macOS arm64 Windows x64
mithril-aggregator ✔ ⁽*⁾
mithril-signer ✔ ⁽*⁾
mithril-client ✔ ⁽*⁾

⁽*⁾⚠️ Linux arm64 builds are provided on a best-effort basis and are not officially supported.

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

Fetch the latest version of the unstable tag

The unstable tag is updated with a new commit id when a new unstable release is published.
To fetch the latest version of the unstable tag, execute the command:
git tag -d unstable && git fetch origin tag unstable

Download a binary asset

To simplify the installation and updating of Mithril binaries, we have created a one line installer that downloads and installs the Mithril binaries for you.
This installer is available for Linux and macOS and supports the Mithril signer, Mithril aggregator, and Mithril client CLI.

Use the following commands to install the Mithril nodes:

  • Download the Mithril signer in the current directory:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/input-output-hk/mithril/refs/heads/main/mithril-install.sh | sh -s -- -c mithril-signer -d unstable -p $(pwd)
  • Download the Mithril client CLI in the current directory:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/input-output-hk/mithril/refs/heads/main/mithril-install.sh | sh -s -- -c mithril-client -d unstable -p $(pwd)
  • Download the Mithril aggregator in the current directory:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/input-output-hk/mithril/refs/heads/main/mithril-install.sh | sh -s -- -c mithril-aggregator -d unstable -p $(pwd)

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 <mithril@iohk.io>" 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 <mithril@iohk.io>" [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 <mithril@iohk.io>"
  • 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 [mithril@iohk.io] and let us know of the outcome of your run of this process ⚠️

Download a Docker image

You can directly pull prebuilt Mithril Docker images:

Binary Image name URL
mithril-aggregator mithril-aggregator:main-e40622c ghcr.io/input-output-hk/mithril-aggregator:main-e40622c
mithril-signer mithril-signer:main-e40622c ghcr.io/input-output-hk/mithril-signer:main-e40622c
mithril-client mithril-client:main-e40622c ghcr.io/input-output-hk/mithril-client:main-e40622c

What's Changed

  • fix(signer): avoid panic on invalid signed_beacon id by @leepl37 in #2940
  • core(stm/snark): integrate certificate circuit prototype as it is (future_snark) by @hjeljeli32 in #2938
  • feat(stm): Implementation of the digest trait for the Poseidon hash from Midnight by @damrobi in #2936
  • SNARK-friendly STM: New Key Registration by @curiecrypt in #2880
  • refactor: SNARK-friendly version of Aggregate Verification Key by @jpraynaud in #2951
  • fix(signer): avoid sqlite bind panic by @leepl37 in #2953
  • feat(stm): Merkle Tree Leaf for Snark proof by @curiecrypt in #2957
  • docs: rotate documentation for 2603 distribution by @jpraynaud in #2924
  • docs: final CHANGELOG for 2603.1 distribution by @jpraynaud in #2962
  • docs: add dev blog posts for distribution 2603 by @jpraynaud in #2965
  • feat: also import blocks into cardano database when importing data from chain by @Alenar in #2960
  • refactor(stm): Remove possibility of panic during conversion from KeyRegistration to MerkleTree by @damrobi in #2959
  • feat(stm): Implementing pre-aggregation primitives and fixes by @damrobi in #2964
  • docs(website): fix k protocol parameter description by @jpraynaud in #2975
  • feat: optional throttling when reading blocks from the chain by @Alenar in #2966
  • Implement artifacts builder for cardano blocks and transactions by @turmelclem in #2963
  • Update 2026-01-29-distribution-2603.md by @olgahryniuk in #2986
  • fix: synchronization from incomplete certificate chain in follower aggregator by @jpraynaud in #2978
  • feat: implement a DMQ consumer deduplicator by @jpraynaud in #2977
  • test(snark): Golden tests for the STM Halo2 circuit by @hjeljeli32 in #2968
  • implement artifact rest api routes for cardano blocks and transactions by @turmelclem in #2980
  • refactor: preliminary works before addition of CardanoBlocksTransactions signable builder by @Alenar in #2992
  • fix: DMQ publisher error on rejected local submission response by @jpraynaud in #2972
  • fix(devnet): Docker images by @jpraynaud in #2996
  • fix(stm): Fix the implementation difference for schnorr signature between cpu and circuit by @damrobi in #2994
  • feat: add Copilot review guidelines in CI by @jpraynaud in #2999
  • feat: compute and persist blocks transactions block range roots by @Alenar in #2995
  • implement signing configuration for cardano blocks and transactions by @turmelclem in #2991
  • feat(stm): SNARK Key registration by @curiecrypt in #2976
  • feat: support Cardano node 10.6 by @jpraynaud in #2838
  • fix(ci): correct file name for Copilot review instructions by @jpraynaud in #3006
  • ci: fix publish to crates and package promote to npm by @Alenar in #3007
  • feat: add cardano blocks transactions signable builder by @Alenar in #3003
  • refactor(snark): remove halo2/off-circuit and switch to STM types by @hjeljeli32 in #3002
  • feat(stm): Computation of the target value for the SNARK lottery by @damrobi in #2979
  • fix: snapshot converter breaking change since cardano version 10.6.2 by @turmelclem in #3014
  • feat: update protocol parameters for release/pre-release networks by @jpraynaud in #3019
  • chore: update dependencies for distribution 2608 by @jpraynaud in #3018
  • fix: panic at startup in aggregator by @jpraynaud in #3024
  • fix: panic at startup in aggregator v2 by @jpraynaud in #3025
  • feat(stm): Add from_raw conversion function for BaseFieldElement by @damrobi in #3027
  • fix(persistence): avoid hitting SQLite limits when doing blocks and transactions bulk storage by @Alenar in #3045
  • Remove legacy db restauration message for version 10.6.2 and upper by @turmelclem in #3044
  • perf: tune cardano blocks and transactions import throttling by @Alenar in #3048
  • fix: flakiness in STM tests with future_snark in CI by @jpraynaud in #3026
  • fix: add timeout to Pallas chainsync calls in Pallas chain reader by @jpraynaud in #3052
  • perf: optimize blocks and transactons retrieval from sqlite by @Alenar in #3057
  • feat(aggregator): implement v2 routes for cardano transaction and block proofs(#2988) by @leepl37 in #3005
  • refactor(stm): Fix the number of iterations for lottery target computation by @damrobi in #3046
  • feat: authenticated SNARK signer registration by @jpraynaud in #3016
  • feat: support aggregator capabilities in aggregator discovery by @jpraynaud in #2844
  • test(stm): add negative single-signature tests by @leepl37 in #2985
  • feat(ci): manually trigger Pre-Release and Release workflows by @jpraynaud in #3059
  • refactor(stm): align circuit domain separation tags by @hjeljeli32 in #3051
  • refactor: rework sqlite connection pool by @Alenar in #3060
  • fix: apply cargo sort -w formatting following its 2.1 version by @Alenar in #3064
  • docs: fix DMQ setup documentation by @jpraynaud in #3063
  • feat(stm): Signer and Signature for SNARK Proof System by @curiecrypt in #3009
  • refactor(stm): error handling by @hjeljeli32 in #3055
  • fix: apply cargo sort -w following release of version 2.1.1 by @jpraynaud in #3077
  • refactor(stm): Ensuring type consistency for SNARK circuit by @damrobi in #3071
  • refactor+test: prover preparatory work by @Alenar in #3072
  • perf: fix cardano blocks with transactions retrieval in mainnet network by @Alenar in #3081
  • refactor(halo2): Decouple circuit from Midnight types by @hjeljeli32 in #3076
  • feat(stm): Compute the Lottery Target Value in MerkleTreeSnarkLeaf by @damrobi in #3082
  • refactor(halo2): align circuit's naming to STM by @hjeljeli32 in #3084
  • feat: SNARK-friendly certificate chain by @jpraynaud in #3073

New Contributors

Full Changelog: 2603.1...unstable