Skip to content

Prototype Mithril/Cardano bundle in Docker image #2616

@jpraynaud

Description

@jpraynaud

Why

We want to evaluate the feasibility of bundling Mithril and Cardano node together in the same Docker image (and maybe also the DMQ node when it is available). This will allow smooth (seamless?) integration of Mithril with Cardano for existing Cardano SPOs.

What

Prototype the implementation of a Docker image bundling the Cardano node (and tools) and the Mithril signer.

How

Phase 1

  • Build static binaries for signer and client
  • Assess the modifications that would be needed in the crates configuration (in particular usage of default features)
  • Use the existing Cardano Docker image and add the Mithril static binaries in it
  • Start the signer when the Cardano node is started
  • Create a mapping stored in the image of the Mithril network configurations by default for preview, preprod and mainnet (for seamless integration)
  • Use the default configurations mapping for the configuration of the signer based on the Cardano network which is used
  • Run the same command that is used to start a Cardano node on the new Docker image and make sure that Cardano and Mithril signer nodes are running properly

Next Phases

  • TBD:
    • How to integrate Phase 1 in the Hydra CI?
    • How to support Mithril relay and IP obfuscation of the block producer?

Ideas / Questions

  • Use the existing Cardano image and add the Mithril part in it?
  • Use the existing Mithril signer image and add the Cardano part in it?
  • How to support opt out Mithril signer?
  • How to start both nodes in the same Docker?
  • What if some Mithril parameters are missing: do we start only Cardano or does it fail?
  • Assess the friction introduced by the Mithril signer configuration parameters not needed for the Cardano node.
  • Try to mirror the way configuration switch by network is done with the Cardano node (if any)
  • Do we support default values with release-mainnet configuration (e.g. aggregator endpoint)?
  • What about the DMQ node (own socket path, connects to socket of the Cardano node, downloads a bootstrap peers list specific to the network)?
  • Use the Mithril client to fast bootstrap the Cardano node
  • ⚠️ How to deal with IP obfuscation of the block producer (vs current use of a proxy on the relay)?

Resources

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions