Unstable Development Builds
Pre-releaseCrates Versions
| Crate | Version |
|---|---|
| mithril-aggregator | 0.9.17 |
| mithril-client | 0.14.17 |
| mithril-client-cli | 0.13.19 |
| mithril-client-wasm | 0.10.8 |
| mithril-common | 0.7.13 |
| mithril-signer | 1.1.6 |
| mithril-stm | 0.11.2 |
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.6.2+(*) |
Cardano 10.6.2+(*) |
| release-preprod | Cardano 10.6.2+(*) |
Cardano 10.6.2+(*) |
| pre-release-preview | Cardano 10.7.1+(*) |
Cardano 10.7.1+(*) |
| testing-preview | Cardano 10.7.1+(*) |
Cardano 10.7.1+(*) |
*: Up to the latest Cardano node version released at the time of this release.
DMQ Node Compatibility
| Network | Mithril Aggregator | Mithril Signer |
|---|---|---|
| release-mainnet | DMQ 0.6.0.0+(*) |
DMQ 0.6.0.0+(*) |
| release-preprod | DMQ 0.6.0.0+(*) |
DMQ 0.6.0.0+(*) |
| pre-release-preview | DMQ 0.6.0.0+(*) |
DMQ 0.6.0.0+(*) |
| testing-preview | DMQ 0.6.0.0+(*) |
DMQ 0.6.0.0+(*) |
*: Up to the latest DMQ 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 | ✔ | ✔ ⁽*⁾ | ✔ | ✔ |
⁽*⁾
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/IntersectMBO/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/IntersectMBO/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/IntersectMBO/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-936eadd | ghcr.io/intersectmbo/mithril-aggregator:main-936eadd |
| mithril-signer | mithril-signer:main-936eadd | ghcr.io/intersectmbo/mithril-signer:main-936eadd |
| mithril-client | mithril-client:main-936eadd | ghcr.io/intersectmbo/mithril-client:main-936eadd |
What's Changed
- feat(stm): fixing merkle depth for all circuits by @damrobi in #3194
- ci/test: multi speed tiers for tests by @Alenar in #3221
- fix(nix): add native mithril-client-cli build for darwin and aarch64-… by @disassembler in #3224
- fix: authorize headers in signer relay in infra by @jpraynaud in #3228
- ci: run rusts tests in nightly dispatcher by @Alenar in #3226
- ci: publish crates all at once by @Alenar in #3232
- docs(website): improve homepage SEO metadata and messaging by @dalibran in #3199
- test(halo2_ivc): add Layer A encoding tests by @hjeljeli32 in #3222
- refactor: create internal crate for Merkle tree and map by @jpraynaud in #3223
- fix(halo2_ivc): split slow MockProver tests into mod slow and registe… by @hjeljeli32 in #3233
- docs: rotate documentation for
2617distribution by @jpraynaud in #3020 - docs: final CHANGELOG for
2617.0distribution by @jpraynaud in #3234 - docs: dev blog posts for
2617distribution by @jpraynaud in #3218 - refactor(stm): Accelerate snark tests by @damrobi in #3217
- ci: upgrade GitHub actions by @Alenar in #3237
- test(halo2_ivc): add Layer B State tests by @hjeljeli32 in #3229
- fix(stm): Fixing the flakiness in the circuit tests by @damrobi in #3236
- drop support for x86_64-darwin by @dermetfan in #3238
- Test the ledger snapshot conversion in the e2e test by @turmelclem in #3235
- feat(stm): detect circuit modification by @damrobi in #3225
- docs(website): fix doubled title on homepage by @dalibran in #3240
- fix(client): rare race condition when a file download finish by @Alenar in #3248
- Support 'current' and 'next' versions of open api by @turmelclem in #3247
- Fix artifact retrieval by specifying signed entity type by @turmelclem in #3252
- Remove mention of Open API documentation website in Open API files by @turmelclem in #3253
- Update Github runners to Ubuntu 24.04 by @turmelclem in #3255
- feat: enforce DMQ message id by @jpraynaud in #3256
- feat: support for Cardano
11.0configuration by @jpraynaud in #3258 - feat(stm): Non-unique Schnorr Signature support by @curiecrypt in #3239
- test(halo2_ivc): add Layer C1 in-circuit verification tests by @hjeljeli32 in #3241
- feat(stm): Trusted setup validation by @damrobi in #3249
- feat: SNARK-friendly protocol message by @jpraynaud in #3254
- test(halo2_ivc): add Layer C2 off-circuit verification tests by @hjeljeli32 in #3259
- Add a script to check dependency version consistency by @turmelclem in #3261
- Update minor version of mithril-stm dependency to 0.10.18 for consistency by @turmelclem in #3263
- refactor(ci): fix typo in log message of crate-version-checker script by @turmelclem in #3264
- refactor(halo2_ivc): replace temporary Certificate circuit with StmCertificateCircuit by @hjeljeli32 in #3266
- chore: add
CODEOWNERSby @jpraynaud in #3272 - chore: add genesis verification key for dev networks in infra by @jpraynaud in #3273
- feat(stm): Prepare prover input - Phase 1 and Phase 2 by @curiecrypt in #3267
- refactor: strengthen unknown and future signed entity support by @Alenar in #3265
- fix: cloud DNS site verification in infra by @jpraynaud in #3279
- feat(mithril-stm): add reproducible benchmarks for StmCertificateCircuit by @hjeljeli32 in #3275
- feat(stm): implement
SnarkVerifierSetupin helpers by @jpraynaud in #3281 - chore: SNARK support enhancements by @jpraynaud in #3280
- refactor(mithril-stm): structured error handling for halo2_ivc circuit by @hjeljeli32 in #3284
- refactor: remove cardano db v1 backend by @Alenar in #3285
- fix(aggregator): warn instead of error when parsing unknown signed entity by @Alenar in #3287
- Add a cache mecanism on immutable files synchronisation by @turmelclem in #3286
- docs: update security page with honest majority section by @jpraynaud in #3277
- fix(node-db): flush file after write to avoid race with tokio's async… by @perturbing in #3289
- docs: update dev blog post for distribution
2617.0by @jpraynaud in #3290 - feat(stm): Prepare prover input - Phase 3 by @curiecrypt in #3278
- refactor(mithril-stm): remove halo2_ivc helpers module by @hjeljeli32 in #3288
- docs(website): add Use Cases section with Light Wallets, Bridges; add Case Studies section with Daedalus by @dalibran in #3200
- feat(stm): add disk-backed VK/PK caching with TrustedSetupProvider wiring by @perturbing in #3282
- ignore racy key-cache constructor tests by @perturbing in #3299
- feature: custom genesis verification key support in explorer by @Alenar in #3291
- chore: update dependencies for distribution
2623by @Alenar in #3301 - fix flaky test race on shared SRS temp file by @perturbing in #3294
- refactor(mithril-stm): type consistency for halo2 IVC by @hjeljeli32 in #3293
- fix: pools tickers missing in mithril-explorer by @Alenar in #3312
- refactor(mithril-stm): align halo2 IVC naming by @hjeljeli32 in #3309
- Remove mithril nodes supports in mithril devnet by @turmelclem in #3311
- feat: SNARK-friendly genesis certificate primitives by @jpraynaud in #3304
- feat: dual-signature genesis certificate and wiring by @jpraynaud in #3306
- Removing nightly docker build of mithril legacy images by @turmelclem in #3314
- feat: updated DMQ message id enforcement by @jpraynaud in #3260
- refactor(end-to-end): promote scenario to commands, switch epoch length based wait duration, rework and cleanup assertions by @Alenar in #3316
- feat: ledger peers support for DMQ node by @jpraynaud in #3318
- docs: update CHANGELOG with
2624.0distribution by @jpraynaud in #3321 - feat: add DMQ node compatibility matrix in release notes by @jpraynaud in #3323
- feat(stm): Prepare prover input - Phase 4 by @curiecrypt in #3313
- Package only one ledger state snapshot for Cardano node version above 10.4 by @turmelclem in #3317
- feat(ci): e2e light scenario for snark running in nightly ci by @Alenar in #3325
- implement
verifyIVC proof over blake2b/poseidon by @perturbing in #3315 - chore(ci): extend timeout for e2e workflow to 120 minutes by @Alenar in #3331
- feat: certificate chain support for IVC SNARK by @jpraynaud in #3322
- fix(explorer): unresponsive UI by @Alenar in #3336
- refactor: genesis preimage ancillary data by @jpraynaud in #3335
- feat(mithril-stm): implement
IvcProver::proveby @hjeljeli32 in #3327 - feat: add missing ancillary data for IVC aggregate signature creation by @jpraynaud in #3340
- Improve balance build/run time for future snark tests in CI by @perturbing in #3342
- refactor: enhanced support for unknown signed entity by @Alenar in #3344
- Updating pallas version to 1.1.0 and making adaptations by @turmelclem in #3324
- Enhance versions bump script by @turmelclem in #3350
- feat(stm): wire IVC snark prover by @damrobi in #3348
- chore: apply prettier linting to docs by @jpraynaud in #3356
- fix: DMQ configuration docs by @jpraynaud in #3357
- Make kes_bytes file creation/write atomic for concurrent access by @turmelclem in #3353
- fix: aggregate signature verification uses a trusted genesis verification key by @jpraynaud in #3354
- refactor(stm): applying final comments of PR #3348 by @damrobi in #3352
- Mark stale issues and PRs with GitHub workflow by @turmelclem in #3359
- test: check unknown and discontinued signed entities in signers and aggregator integration tests by @Alenar in #3355
- fix(aggregator): reject legacy Lagrange genesis key and fix epoch pruning order by @jpraynaud in #3360
- fix(ci): Fixing issue and PR labels exclusion of stale job by @turmelclem in #3363
- fix(ci): Fixing issue and PR labels exclusion of stale job with Github format emojis by @turmelclem in #3364
- refactor(mithril-stm): refactor and stabilize the SNARK setups by @hjeljeli32 in #3349
- refactor(stm): Refactor prover input preparation by @curiecrypt in #3326
- feat(e2e): support
IvcSnarkproofs and harden the e2e test suite waits by @jpraynaud in #3365 - fix(ci): prevent GitHub Pages deploy failure on workflow re-runs by @jpraynaud in #3369
- refactor(stm): rename recursive-circuit backend aliases to meaningful names by @hjeljeli32 in #3368
- chore: update dependencies for distribution
2627by @jpraynaud in #3373 - feat(stm): add tests to circuit degrees are unchanged by @damrobi in #3370
- feat(ci): add
testing-2-previewnetwork by @jpraynaud in #3371 - fix(ci): configuration of
testing-2-previewnetwork by @jpraynaud in #3376 - refactor(mithril-stm): decouple halo2_ivc from Midnight types by @hjeljeli32 in #3374
- fix: anticipate Rust
1.97clippy warnings by @Alenar in #3391 - feat(aggregator): add state machine
blockedstate by @Alenar in #3372 - fix: harden the Mithril install script against GitHub API errors by @jpraynaud in #3401
- refactor(mithril-stm): enhance halo2_ivc modularity with gadgets by @hjeljeli32 in #3402
- Capture e2e execution logs in artifacts by @turmelclem in #3404
- Remove docker-build by @turmelclem in #3407
- refactor(stm): carry the non-recursive SNARK verifying key in ancillary verifier data by @hjeljeli32 in #3408
- feat(stm): upgrade midnight zk 2.3.3 and update the circuit keys by @damrobi in #3400
- refactor(signer): simplify registration retriever by @Alenar in #3415
- feat(stm): enable plutus friendly hash by @damrobi in #3417
- chore: update the repository for the
IntersectMBOorganization transfer by @jpraynaud in #3418 - docs: add dev blog post for the repository transfer to
IntersectMBOby @jpraynaud in #3419 - refactor(stm): refactor error handling from Midnight library by @hjeljeli32 in #3416
New Contributors
- @dalibran made their first contribution in #3199
- @dermetfan made their first contribution in #3238
- @perturbing made their first contribution in #3289
Full Changelog: 2617.0...unstable