Skip to content

feat(scripts): register Dijkstra-era pools with BLS keys, start fast flavor in target era directly - #157

Merged
mkoura merged 2 commits into
masterfrom
feat/dijkstra-bls-pool-keys
Aug 18, 2026
Merged

feat(scripts): register Dijkstra-era pools with BLS keys, start fast flavor in target era directly#157
mkoura merged 2 commits into
masterfrom
feat/dijkstra-bls-pool-keys

Conversation

@mkoura

@mkoura mkoura commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Generate BLS keypairs for pools and embed them in the pool registration certificate when both cardano-cli and cardano-node support Leios BLS (dijkstra node key-gen-BLS, --shelley-bls-key), gated on PROTOCOL_VERSION>=12.
    • Fast flavor (local_fast/leios_fast/mainnet_fast) embeds the BLS key directly in its one-shot pool registration cert.
    • Slow flavor (local_slow) registers pools early with a shelley-era cert (no BLS field available yet), then re-registers with a dijkstra-era cert + BLS key via a new reregister_pools_with_bls() step once hf_to_dijkstra confirms the chain reached Dijkstra.
  • Remove the TMP_PROTOCOL_VERSION clamp and hf_to_dijkstra() workaround from fast-flavor start: genesis now sets protocolParams.protocolVersion.major to the real PROTOCOL_VERSION and TestDijkstraHardForkAtEpoch=0 handles PV12, so the cluster runs in the target era from slot 0 instead of starting at PV11 and hard-forking afterward.

Generate BLS keypairs for pools and embed them in the pool registration
certificate when both cardano-cli and cardano-node support Leios BLS
(dijkstra node key-gen-BLS, --shelley-bls-key), gated on PROTOCOL_VERSION>=12.

Fast flavor embeds the BLS key directly since its one-shot pool
registration can land post-Dijkstra. Slow flavor registers pools early
(pre-Dijkstra, shelley-era cert has no BLS field) and re-registers with
a dijkstra-era cert once hf_to_dijkstra confirms the era.
@mkoura
mkoura force-pushed the feat/dijkstra-bls-pool-keys branch from c9283d8 to dcba3ef Compare August 18, 2026 11:59
Remove the TMP_PROTOCOL_VERSION clamp and hf_to_dijkstra() workaround.
Genesis now sets protocolParams.protocolVersion.major to the real
PROTOCOL_VERSION and TestDijkstraHardForkAtEpoch=0 handles the PV12
case, so the cluster runs in the target era from slot 0 instead of
starting at PV11 and hard-forking to Dijkstra after the fact.
@mkoura
mkoura force-pushed the feat/dijkstra-bls-pool-keys branch from dcba3ef to 759d814 Compare August 18, 2026 14:18
@mkoura
mkoura merged commit fc4cbe7 into master Aug 18, 2026
4 checks passed
@mkoura
mkoura deleted the feat/dijkstra-bls-pool-keys branch August 18, 2026 14:21
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.

1 participant