Skip to content

Conversation

@Alenar
Copy link
Collaborator

@Alenar Alenar commented Nov 19, 2025

Content

This PR makes optional the cardano transaction signing configuration everywhere.

This move the error raised when this configuration is missing from the nodes startup (for the aggregator), or when deriving any time point to a signed entity (in the signer state machine), to deriving the specific derivation of a time point to the CardanoTransactions signed entity.

This will allow to remove this parameter, if needed in the future, without making any nodes fails without any ways to recover.

Details

Mithril common

  • SignedEntityConfig:
    • make field cardano_transactions_signing_config optional
    • raise an error in time_point_to_signed_entity when the asked discriminant is CardanoTransactions and the cardano_transactions_signing_config is None

Mithril protocol config

  • remove the error raised when calling HttpMithrilNetworkConfigurationProvider::get_network_configuration and configuration_for_aggregation.signed_entity_types_config.cardano_transactions is None.

Mithril aggregator

  • epoch service: store and expose the MithrilNetworkConfiguration directly in a network_configuration method, the three protocol parameters methods are now shortcut to the network_configuration
  • cardano_transactions_signing_config field is now optional in AggregatorEpochSettings
  • database :
    • cardano_transactions_signing_config field is now optional in EpochSettingsRecord
    • add a migration to make the cardano_transactions_signing_config field nullable in the epoch_setting table
    • adapt record insertion and retrieval
  • adapt to SignedEntityConfig changes

Mithril signer

  • adapt to SignedEntityConfig changes

Pre-submit checklist

  • Branch
    • Tests are provided (if possible)
    • Crates versions are updated (if relevant)
    • CHANGELOG file is updated (if relevant)
    • Commit sequence broadly makes sense
    • Key commits have useful messages
  • PR
    • All check jobs of the CI have succeeded
    • Self-reviewed the diff
    • Useful pull request description
    • Reviewer requested
  • Documentation
    • No new TODOs introduced

Issue(s)

Closes #2780

this simplify a bit the management and usage of its stored values
…ochSettings`

Note: this commit compiles, but break aggregator tests as init of test
data in db will fails because of missing config when inserting to
`epoch_setting` table.
…base

Note: this commit compiles, but aggregator tests are still failing
because `EpochService::inform_epoch` still need a ctx signing config.
…ignedEntityConfig`

This make the network resilient to a removal of this configuration at
the expense of moving the error handling to nodes 'beacon to sign'
computations (done in their state machines).

Notes: leader aggregator will fails directly at startup if an incoherent
configuration, which enable cardano transactions but don't specifies the
associated configuration, is provided.
@Alenar Alenar requested a review from jpraynaud November 19, 2025 12:07
@Alenar Alenar self-assigned this Nov 19, 2025
@github-actions
Copy link

Test Results

    4 files  ± 0    168 suites  ±0   23m 7s ⏱️ +15s
2 214 tests + 4  2 214 ✅ + 4  0 💤 ±0  0 ❌ ±0 
6 905 runs  +10  6 905 ✅ +10  0 💤 ±0  0 ❌ ±0 

Results for commit 8ccc27e. ± Comparison against base commit c02d65e.

@Alenar Alenar temporarily deployed to testing-preview November 19, 2025 12:44 — with GitHub Actions Inactive
Copy link
Member

@jpraynaud jpraynaud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

SqlMigration::new(
37,
r#"
-- disable foreign keys since `signer_registration` have a foreign key constraint on `epoch_setting`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
-- disable foreign keys since `signer_registration` have a foreign key constraint on `epoch_setting`
-- disable foreign keys since `signer_registration` has a foreign key constraint on `epoch_setting`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support optional cardano_transactions_signing_config

3 participants