Guess the Mithril signer and DMQ node parameters for the `mithril-setup` command

Open
#3,678 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
blockchain

Research direction

Start by locating the mithril-setup command, its build script, and the repository’s embedded Mithril network values. Then trace how the setup discovers Cardano node facts and selects signer and DMQ configuration; the issue leaves defaults and the guessing interface open for design. Done means the binary can propose the listed parameters without downloading values at runtime.

Written by the indexing model from the issue text.

Description

feature :rocket:

Why

The setup of the Mithril signer and of the DMQ node must propose their configuration without asking the operator to look up values that depend on the Cardano network and that the Mithril repository already holds.

What

Guess the parameters of the Mithril signer and of the DMQ node from the discovered Cardano node facts and from the Cardano network, using only values embedded in the setup binary from the information available in the repository (no external download).

How

  • Embed in the setup binary the values of each Mithril network that the repository holds, so that no value is downloaded at runtime (build script)
  • Guess the parameters of the Mithril signer:
    • NETWORK and NETWORK_MAGIC
    • DB_DIRECTORY
    • AGGREGATOR_ENDPOINT
    • ERA_READER_ADAPTER_TYPE and ERA_READER_ADAPTER_PARAMS
    • PROTOCOL_CONFIGURATION_READER_ADAPTER_CONFIG
    • DATA_STORES_DIRECTORY, STORE_RETENTION_LIMIT and RUN_INTERVAL? (or maybe they are default values of the fields)
    • ENABLE_METRICS_SERVER, METRICS_SERVER_IP and METRICS_SERVER_PORT? (or maybe they are default values of the fields)
  • Guess the parameters of the DMQ node:
    • NetworkMagic
    • PeerSharing
  • Design the guessing behind a trait (guessing depends on the Cardano network), whose return type is either an associated type or a reusable type (e.g. a map of parameter names to text values) (depends on the prototype outcome)
Dominant language
Rust
Stars
155
Forks
52
Avg merge
2d 17h
Merged PRs (30d)
37

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IntersectMBO/mithril

All issues in IntersectMBO/mithril

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.