Unstable Development Builds
Pre-releaseCrates Versions
| Crate | Version |
|---|---|
| mithril-aggregator | 0.8.11 |
| mithril-client | 0.13.2 |
| mithril-client-cli | 0.12.38 |
| mithril-client-wasm | 0.9.11 |
| mithril-common | 0.6.43 |
| mithril-signer | 0.3.4 |
| mithril-stm | 0.9.4 |
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.4.1+(*) |
Cardano 10.4.1+(*) |
| release-preprod | Cardano 10.4.1+(*) |
Cardano 10.4.1+(*) |
| pre-release-preview | Cardano 10.4.1+(*) |
Cardano 10.4.1+(*) |
| testing-preview | Cardano 10.4.1+(*) |
Cardano 10.4.1+(*) |
*: 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 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 <[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⚠️
Download a Docker image
You can directly pull prebuilt Mithril Docker images:
| Binary | Image name | URL |
|---|---|---|
| mithril-aggregator | mithril-aggregator:main-28a9912 | ghcr.io/input-output-hk/mithril-aggregator:main-28a9912 |
| mithril-signer | mithril-signer:main-28a9912 | ghcr.io/input-output-hk/mithril-signer:main-28a9912 |
| mithril-client | mithril-client:main-28a9912 | ghcr.io/input-output-hk/mithril-client:main-28a9912 |
What's Changed
- Decentralization of configuration parameters phase 1 - new aggregator route by @turmelclem in #2741
- fix: Rust
1.91clippy warnings by @Alenar in #2757 - refactor: use shared aggregator client for signer and aggregrator by @Alenar in #2755
- docs: rotate documentation for
2543distribution by @jpraynaud in #2748 - docs: final CHANGELOG for '2543.0' distribution by @jpraynaud in #2751
- docs: add dev blog posts for distribution
2543by @jpraynaud in #2752 - ci: enhance npm publish workflow by @Alenar in #2753
- docs: update blog post distribution 2543 by @jpraynaud in #2774
- fix: apply hotfix of
2345.1-hotfixby @jpraynaud in #2773 - fix: install on aarch64 by @SupernaviX in #2776
- fix: syntax error in shell script by @SupernaviX in #2777
- refactor(signer): split signer aggregator client into several small business services by @Alenar in #2775
- Decentralization of configuration parameters phase 1 - Aggregator local parameters by @turmelclem in #2736
- chore: remove uneeded crates type from most
Cargo.tomlby @Alenar in #2783 - ci(test-client): check fast bootstrap after lmdb conversion by @Alenar in #2778
- chore(ci): upgrade actions versions by @Alenar in #2784
- fix(ci): support hotfix branches in backcompat workflow by @Alenar in #2787
- fix: docs and explorer websites vulnerabilities by @jpraynaud in #2788
- Stm error handling with anyhow by @curiecrypt in #2765
- refactor: support optional cardano transaction signing config by @Alenar in #2789
- Implementation of Schnorr signature module for mithril-stm. by @damrobi in #2761
- ci: add a backward compatibility checks to the end-to-end runner by @Alenar in #2816
- feat: stabilize cardano database v2 - phase4 by @Alenar in #2819
- SNARK-friendly STM: Re-organize modules by @curiecrypt in #2804
- chore: update signed entity type timeouts by @jpraynaud in #2829
- fix: websites vulnerabilities by @jpraynaud in #2834
- feat: stabilize cardano database v2 - phase4 - wasm client by @Alenar in #2821
- fix: client wasm ci-test using removed
snapshotfunction by @Alenar in #2840 - feat: create new
LagrangeMithril era by @jpraynaud in #2839 - fix: explorer dependency vulnerability by @jpraynaud in #2841
- feat: prepare aggregator client usage in mithril client and publication by @Alenar in #2842
- fix: wrong output type for
GetCardanoDatabaseListQueryby @Alenar in #2843 - feat: simple aggregator discovery by @jpraynaud in #2779
- fix: add missing published crates in CI by @jpraynaud in #2846
- refactor(mithril-client-library): switch http backend to new shared
mithril-aggregator-clientby @Alenar in #2847 - ci: Check external crates licenses compatibility by @Alenar in #2848
- fix(ci): crates already published guard was not working by @Alenar in #2849
- ci: accelerate hydra ci by @Alenar in #2851
- fix: Rust
1.92clippy warnings by @Alenar in #2853 - feat(client-cli): add cardano docker run command to snapshot converter output by @Alenar in #2852
- ci(client multiplatform test): add a new download + conversion case for conversion to legacy legder snapshot by @Alenar in #2854
- Moving mithril-stm errors into corresponding module by @damrobi in #2850
- chore: enhance and align usage of the anyhow across crates by @Alenar in #2858
- feat: support Haskell DMQ node pool id authentication by @jpraynaud in #2859
- feat: activate DMQ protocol by @jpraynaud in #2862
- enhance errors context by @Alenar in #2863
- SNARK-friendly STM: Remove basic verifier by @curiecrypt in #2845
- feat: add "total successful" metrics for signature and signer registrations by @Alenar in #2865
- fix: avoid DMQ node flooding on consumer error by @jpraynaud in #2868
- SNARK-friendly STM: Revise Generic Digest to support multiple hash functions by @curiecrypt in #2864
- fix: KES signer period by @jpraynaud in #2867
- SNARK-friendly STM: jubjub wrapper by @curiecrypt in #2828
- Golden Tests for Merkle Tree Batch Commitment by @curiecrypt in #2874
- SNARK-friendly STM: Support multiple Merkle Tree leaves by @curiecrypt in #2866
- Golden Tests for Single Signature by @curiecrypt in #2877
- fix: better support for signature registration errors in aggregator signature processor by @jpraynaud in #2873
- doc: add DMQ node setup in Mithril signer guide by @jpraynaud in #2872
- doc: add aggregator setup guide by @jpraynaud in #2876
- refactor: introduce
KesEvolutionstype by @jpraynaud in #2869 - SNARK-friendly STM: Remove Deprecated Items by @curiecrypt in #2881
- SNARK-friendly STM: Single signature of concatenation proof by @curiecrypt in #2875
- feat: use final DMQ magic numbers by @jpraynaud in #2885
- docs: add dev blog post for multiple aggregators testing program by @jpraynaud in #2884
- docs: add dev blog post for DMQ testing program with SPOs by @jpraynaud in #2883
- ci: fix aggregator stress test parameters handling by @Alenar in #2900
- Golden test for Closed Key Registration by @curiecrypt in #2901
- feat: use released Haskell DMQ node in e2e tests by @jpraynaud in #2902
- fix(cli): handle file write errors in verification report by @leepl37 in #2899
- ci: optimize rust test disk space usage by @Alenar in #2916
- feat(aggregator): replace cexplorer pools ticker retriever with a blockfrost based implementation by @Alenar in #2896
- feat: add
ConfigSecrettype and use it for aggregator blockfrost configuration by @Alenar in #2919 - Golden test for avk by @curiecrypt in #2904
- chore: update dependencies for distribution
2603by @jpraynaud in #2920 - Rename mithril-stm schnorr module by @damrobi in #2903
- refactor(client): optimize uncompressed file download using io::copy by @leepl37 in #2921
- feat: add debug DMQ message ids by @jpraynaud in #2923
- feat: add new
CardanoBlocksTransactionstoSignedEntityTypesby @Alenar in #2922 - feat: DMQ node infrastructure by @jpraynaud in #2870
- fix: activation of P2P DMQ protocol in infra by @jpraynaud in #2927
- chore: enhance DMQ messages and Single Signature logs in aggregator by @jpraynaud in #2928
New Contributors
- @SupernaviX made their first contribution in #2776
- @leepl37 made their first contribution in #2899
Full Changelog: 2543.0...unstable