Skip to content

Cardano-config revamped with newer cardano-node options - #2080

Closed
jasagredo wants to merge 8 commits into
mainfrom
js/cardano-config-revamped
Closed

Cardano-config revamped with newer cardano-node options#2080
jasagredo wants to merge 8 commits into
mainfrom
js/cardano-config-revamped

Conversation

@jasagredo

Copy link
Copy Markdown
Contributor

Includes changes from IntersectMBO/cardano-node#6604 and IntersectMBO/cardano-node#6526. Deprecated aliases are deleted.

@jasagredo jasagredo self-assigned this Jun 18, 2026
@jasagredo jasagredo moved this to 🏗 In progress in Consensus Team Backlog Jun 18, 2026
@jasagredo
jasagredo force-pushed the js/cardano-config-revamped branch from ae823a0 to 1ad4575 Compare June 18, 2026 17:16
Introduce a new standalone cardano-config library that provides a single entry point for parsing the cardano-node configuration (CLI options and JSON/YAML files). Wire it into the cabal project and the cabal-gild CI script.
Add the configuration defaulting helper (Basics) and the types shared between the CLI arguments and the configuration files, such as NodeDatabasePaths (Common).
Add the optparse-applicative parser for the cardano-node command-line options (CliArgs), covering storage, credentials, host, tracing and shutdown options.
Add the FromJSON parsers for each configuration component: Storage (LedgerDB backend selection and snapshot policy), Consensus (Praos/Genesis mode), Protocol (per-era genesis files and hashes), Network, Mempool and Testing.
Add the top-level configuration file parser, which supports splitting the configuration across per-component sub-files and a ConfigurationVersion field (File), and resolveConfiguration, which combines the CLI arguments and the parsed files into a final NodeConfiguration.
Add example configurations, including a full single-file config and an example of splitting the configuration across per-component files.
@jasagredo
jasagredo force-pushed the js/cardano-config-revamped branch from 1ad4575 to 5c11514 Compare June 18, 2026 18:03
Adopt the predictable-snapshots LedgerDB model from the upcoming node (f-f/prepare-11.1, predictable-snapshots): the LedgerDB Snapshots key is either a named policy (e.g. "Mithril") or an explicit options object (SnapshotInterval, SlotOffset, RateLimit, MinDelay, MaxDelay, NumOfDiskSnapshots), replacing the flat snapshot fields. The example configs are updated to match.

The parsers remain hand-written FromJSON, for consumers who want the plain-JSON configuration without autodocodec.
@jasagredo jasagredo mentioned this pull request Jun 18, 2026
Parse the LedgerDB @LSMExportPath@ key alongside @LSMDatabasePath@: an optional
directory into which the LSM-tree backend exports snapshots as it takes them.
Like the database path, it is only meaningful for the V2LSM backend, so it is
carried as a second field of the V2LSM selector.
@jasagredo

Copy link
Copy Markdown
Contributor Author

Superseded by IntersectMBO/cardano-base#671

@jasagredo jasagredo closed this Jun 19, 2026
@github-project-automation github-project-automation Bot moved this from 🏗 In progress to ✅ Done in Consensus Team Backlog Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant