Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/scripts/clippy-check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ clippy_all_crates() {
fi

if [[ " mithril-stm " == *" ${package_name} "* ]]; then
additional_args+=(--features "snark,benchmark-internals")
additional_args+=(--features "benchmark-internals")
fi

echo -e " Running clippy for package: ${package_name}"
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ on:
description: "Additional arguments to pass to the Mithril nodes build command"
required: false
type: string
default: "--features snark"
additional-e2e-runner-build-args:
description: "Additional arguments to pass to the end-to-end runner build command"
required: false
type: string
default: "--features snark"
workflow_call:
inputs:
cardano-node-versions:
Expand All @@ -59,12 +57,10 @@ on:
description: "Additional arguments to pass to the Mithril nodes build command"
required: false
type: string
default: "--features snark"
additional-e2e-runner-build-args:
description: "Additional arguments to pass to the end-to-end runner build command"
required: false
type: string
default: "--features snark"
secrets:
E2E_RUNNER_GCP_CREDENTIALS:
description: "Credentials of the service account starting and stopping the self-hosted runner"
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/test-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ jobs:
matrix:
include:
- os: ubuntu-24.04
test-args: --features full,unstable --workspace
test-args: --features full,unstable --workspace --exclude mithril-stm
cargo-profile: ci-tests
- os: ubuntu-24.04
test-args: --features snark -p mithril-stm -p mithril-common -p mithril-circuit-key-registry -p mithril-aggregator -p mithril-signer -p mithril-relay -p mithril-setup
artifact-suffix: -snark
test-args: -p mithril-stm
artifact-suffix: -stm
# Default to the fast profile; the `prepare` step upgrades to `slow-cargo-profile`
# only when the slow SNARK tests are actually in scope for this run (so we don't pay
# the opt-level 3 build cost on PRs that filter those tests out).
Expand All @@ -31,9 +31,11 @@ jobs:
- os: ubuntu-24.04-arm
test-args: --features full,unstable --workspace
cargo-profile: ci-tests
exclude-slow-tests: true
# Exclude nodes not officially supported on Windows and macOS (only mithril-client is supported)
- os: macos-15
cargo-profile: ci-tests
exclude-slow-tests: true
test-args: >
--features full,unstable --workspace
--exclude mithril-aggregator
Expand Down Expand Up @@ -74,7 +76,10 @@ jobs:
name: Prepare
shell: bash
run: |
if [[ "${{ inputs.include-slow-tests }}" == "true" ]]; then
if [[ "${{ matrix.exclude-slow-tests }}" == "true" ]]; then
FILTERSET="not test(#*slow::*)"
SLOW_TESTS=false
elif [[ "${{ inputs.include-slow-tests }}" == "true" ]]; then
FILTERSET="$(.github/workflows/scripts/filter-slow-tests.sh --all)"
SLOW_TESTS=true
else
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ As a minor extension, we have adopted a slightly different versioning convention

- Fix Cardano chain rollbacks missed by the Cardano blocks and transactions importer in the signer and aggregator.

- The SNARK proof systems are enabled by default in the Mithril nodes, client and libraries, and can be left out with `--no-default-features`.

## Mithril Distribution [2642.0] - 2026-10-20

- **REMOVED** support for `Gzip` compression in the Mithril aggregator and client:
Expand Down
22 changes: 11 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ debug = "line-tables-only"
# Not cached by `Swatinem/rust-cache`, so generating them is a waste of resources
incremental = false

# Variant of `ci-tests` used *only* by the `snark` Rust test job (selected via
# Variant of `ci-tests` used *only* by the `mithril-stm` Rust test job (selected via
# `--cargo-profile ci-tests-snark` in the matching CI matrix entry). All other test jobs keep
# using `ci-tests` and are unaffected by the `opt-level = 3` overrides below.
[profile.ci-tests-snark]
Expand Down
3 changes: 2 additions & 1 deletion demo/protocol-demo/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mithrildemo"
version = "0.1.58"
version = "0.1.59"
authors = { workspace = true }
edition = { workspace = true }
documentation = { workspace = true }
Expand All @@ -9,6 +9,7 @@ license = { workspace = true }
repository = { workspace = true }

[features]
default = ["snark"]
# Enable experimental SNARK support in mithril-stm and mithril-common.
snark = ["mithril-stm/snark", "mithril-common/snark"]

Expand Down
8 changes: 4 additions & 4 deletions docs/runbook/circuit-key-registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ version.
> [!NOTE]
> The `circuit-key-registry` command and the `circuit_verification_key_registry_url` parameter of
> the aggregator, and the `--circuit-verification-key-registry-path` parameter of the client, only
> exist in binaries built with the `snark` feature, which the distributions do not enable
> yet: a deployed Mithril network enforces the registry once its distribution is built with it.
> exist in binaries built with the `snark` feature. It is enabled by default, so they are only
> missing from binaries built with `--no-default-features`.

> [!IMPORTANT]
> `networks.json` only routes the clients to a registry, it is not trusted: a wrong entry can only
Expand Down Expand Up @@ -108,10 +108,10 @@ that changed, published before the first epoch certified with the new parameters

- The genesis secret key of the Mithril network, on the air-gapped machine used for signing
- The protocol parameters of the Mithril network
- A `mithril-aggregator` binary built with the `snark` feature:
- A `mithril-aggregator` binary built with the `snark` feature, which is enabled by default:

```bash
cargo build --release -p mithril-aggregator --features snark
cargo build --release -p mithril-aggregator
```

## Setup environment variables
Expand Down
8 changes: 4 additions & 4 deletions docs/runbook/update-circuit-keys/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ Reviewers:
Commands to run the integrity tests, once the [production SRS is downloaded](#download-of-the-production-srs):

```bash
cargo test -p mithril-stm --features snark --release integrity_test_for_non_recursive_production_key -- --ignored
cargo test -p mithril-stm --release integrity_test_for_non_recursive_production_key -- --ignored
```

and

```bash
cargo test -p mithril-stm --features snark --release integrity_test_for_recursive_production_key -- --ignored
cargo test -p mithril-stm --release integrity_test_for_recursive_production_key -- --ignored
```

Release manager:
Expand Down Expand Up @@ -83,13 +83,13 @@ Three more pinned values depend on the circuits. The public input counts, `CERTI
To update the production circuit verification keys, one needs to run the following commands, once the [production SRS is downloaded](#download-of-the-production-srs):

```bash
cargo test -p mithril-stm --features snark --release write_non_recursive_circuit_verification_key_for_production_to_file -- --ignored
cargo test -p mithril-stm --release write_non_recursive_circuit_verification_key_for_production_to_file -- --ignored
```

and

```bash
cargo test -p mithril-stm --features snark --release write_recursive_circuit_verification_key_for_production_to_file -- --ignored
cargo test -p mithril-stm --release write_recursive_circuit_verification_key_for_production_to_file -- --ignored
```

that will update the files holding the values of the production keys, `mithril-stm/src/circuits/halo2/non_recursive_circuit_verification_key_for_production.vkey` and `mithril-stm/src/circuits/halo2_ivc/recursive_circuit_verification_key_for_production.vkey`.
Expand Down
2 changes: 1 addition & 1 deletion examples/client-wasm-nodejs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/client-wasm-web/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@
isFakeAggregatorDefaultData = lib.hasInfix "/mithril-aggregator-fake/default_data/" path;
isTestsAsset = lib.hasInfix "/tests/assets/" path;
isGoldenVector = lib.hasInfix "/golden_vectors/" path;
isCircuitKeyOrAsset =
lib.hasInfix "/mithril-stm/src/circuits/" path
&& lib.any (suffix: lib.hasSuffix suffix base) [".asset" ".vkey"];
in
type == "directory" || matchesSuffix || isCargoFile || isCargoConfig || isOpenApiYaml
|| isFakeAggregatorDefaultData || isTestsAsset || isGoldenVector;
|| isFakeAggregatorDefaultData || isTestsAsset || isGoldenVector || isCircuitKeyOrAsset;

clean = root:
lib.cleanSourceWith {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ anyhow = { workspace = true }
async-trait = { workspace = true }
digest = { workspace = true }
hex = { workspace = true }
mithril-common = { path = "../../../mithril-common", version = "0.8.4" }
mithril-common = { path = "../../../mithril-common", version = "0.9.0" }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = "0.11.0"
Expand Down
2 changes: 1 addition & 1 deletion internal/mithril-aggregator-client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ include = ["**/*.rs", "Cargo.toml", "README.md"]
[dependencies]
anyhow = { workspace = true }
async-trait = { workspace = true }
mithril-common = { path = "../../mithril-common", version = "0.8.4" }
mithril-common = { path = "../../mithril-common", version = "0.9.0" }
reqwest = { workspace = true }
semver = { workspace = true }
serde = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion internal/mithril-aggregator-discovery/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ include = ["**/*.rs", "Cargo.toml", "README.md", ".gitignore"]
anyhow = { workspace = true }
async-trait = { workspace = true }
mithril-aggregator-client = { path = "../mithril-aggregator-client", version = "0.3.1" }
mithril-common = { path = "../../mithril-common", version = "0.8.4" }
mithril-common = { path = "../../mithril-common", version = "0.9.0" }
rand = { version = "0.10.3" }
reqwest = { workspace = true }
serde = { workspace = true }
Expand Down
5 changes: 3 additions & 2 deletions internal/mithril-circuit-key-registry/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "mithril-circuit-key-registry"
description = "Genesis-signed registry of the circuit verification keys trusted for Mithril SNARK certificates."
version = "0.1.3"
version = "0.1.4"
authors.workspace = true
documentation.workspace = true
edition.workspace = true
Expand All @@ -14,6 +14,7 @@ include = ["**/*.rs", "Cargo.toml", "README.md", ".gitignore"]
all-features = true

[features]
default = ["snark"]
# Enables the registry, which requires the SNARK implementation of the `mithril-common` dependency
snark = ["mithril-common/snark"]

Expand All @@ -27,7 +28,7 @@ anyhow = { workspace = true }
async-trait = { workspace = true }
chrono = { workspace = true }
futures = "0.3.34"
mithril-common = { path = "../../mithril-common", version = "0.8.4" }
mithril-common = { path = "../../mithril-common", version = "0.9.0" }
reqwest = { workspace = true, features = ["stream"] }
serde = { workspace = true }
serde_json = { workspace = true }
Expand Down
4 changes: 2 additions & 2 deletions mithril-aggregator/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mithril-aggregator"
version = "0.10.27"
version = "0.10.28"
description = "A Mithril Aggregator server"
authors = { workspace = true }
edition = { workspace = true }
Expand All @@ -10,7 +10,7 @@ license = { workspace = true }
repository = { workspace = true }

[features]
default = ["rustls"]
default = ["rustls", "snark"]
rustls = ["reqwest/rustls", "mithril-circuit-key-registry?/rustls"]

# The SRS download needs a TLS backend, which the removal of the `mithril-stm` TLS features no
Expand Down
4 changes: 2 additions & 2 deletions mithril-client-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mithril-client-cli"
version = "0.13.32"
version = "0.13.33"
description = "A Mithril Client"
authors = { workspace = true }
edition = { workspace = true }
Expand All @@ -22,7 +22,7 @@ name = "mithril-client"
path = "src/main.rs"

[features]
default = ["rustls"]
default = ["rustls", "snark"]
rustls = ["mithril-client/rustls"]
snark = ["mithril-client/snark"]

Expand Down
Loading
Loading