Skip to content

Leios PParams - #1317

Open
ch1bo wants to merge 8 commits into
leios-mainfrom
leios-pparams-cip164
Open

Leios PParams#1317
ch1bo wants to merge 8 commits into
leios-mainfrom
leios-pparams-cip164

Conversation

@ch1bo

@ch1bo ch1bo commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Re-opening of #1299, this time from the main repository.

Meanwhile, the pparams got merged into the ledger implementation already: IntersectMBO/cardano-ledger#6002

williamdemeo and others added 8 commits August 31, 2026 12:47
CIP-164 makes nine parameters of the Leios protocol governance-tunable, and
the cardano-ledger proposal #5965 maps them onto the Dijkstra PParams.  Add
them as fields: three periods of a Leios round, four bounds on an endorser
block, and the committee stake coverage and quorum stake threshold.  The
ranking-block max size of CIP-164's Table 3 is the existing maxBlockSize, so
no field is added for it.

Wire them through the mechanical companions -- the PParamsUpdate fields,
applyPParamsUpdate, and the network- and security-group predicates, the two
groups #5965 assigns them.

AI-assisted development: Claude Opus 5 (Anthropic)
CIP-164's Table 3 makes τ < σ_c normative: the quorum stake threshold must
lie strictly below the committee's stake coverage, so that a fully keyed
committee can arithmetically reach a quorum.  Impose it in paramsWellFormed,
alongside positivity of the three Leios periods and the three Leios size
bounds, which positivePParams and paramsUpdateWellFormed now list.

The constraint relates two fields, so a PParamsUpdate cannot be checked for
it in isolation; ppdWellFormed imposes it on the parameters an update
yields.

AI-assisted development: Claude Opus 5 (Anthropic)
CIP-164 now governs the voting committee by size: leiosCommitteeSize
replaces leiosCommitteeStakeCoverage, and the quorum constraint τ <
σ(N_c) becomes a property of the stake distribution rather than of the
parameters, so paramsWellFormed can no longer impose it.
Co-authored-by: William DeMeo <williamdemeo@gmail.com>
The Use-Milliseconds amendment typed the update record's periods as
Maybe Milliseconds without restoring the alias it had removed, and left
the PParams record's periods at plain naturals.  Restore the alias in
Ledger.Prelude.Base and type the record's three periods with it.
@ch1bo
ch1bo marked this pull request as ready for review September 9, 2026 17:14
@ch1bo
ch1bo changed the base branch from master to leios-main September 9, 2026 17:15
@ch1bo
ch1bo added this pull request to stack #1318 September 9, 2026 17:16
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.

2 participants