Skip to content

feat(subnet-splitting): preemptively load the post-split DKG transcripts in the key manager - #11205

Draft
pierugo-dfinity wants to merge 1 commit into
pierugo/subnet-splitting/cup-makerfrom
pierugo/subnet-splitting/dkg-key-manager
Draft

feat(subnet-splitting): preemptively load the post-split DKG transcripts in the key manager#11205
pierugo-dfinity wants to merge 1 commit into
pierugo/subnet-splitting/cup-makerfrom
pierugo/subnet-splitting/dkg-key-manager

Conversation

@pierugo-dfinity

Copy link
Copy Markdown
Contributor

When a subnet split is scheduled, the DKG interval of the Scheduled summary is skipped, so its transcripts are never used. Instead, the DKG key manager should load the transcripts of the soon-to-be created post-split block as soon as such a summary is detected. This is needed to have the necessary key material needed to sign shares for the post-split CUP.
We also make sure to retain the transcripts in the concurrent key removal so the keys it just loaded don't get dropped again.

When a subnet split is scheduled, the DKG interval of the `Scheduled`
summary is skipped, so its transcripts are never used. Instead the key
manager computes the post-split summary from the registry and loads its
transcripts, and retains them in the concurrent key removal so the keys
it just loaded don't get dropped again.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Preloads post-split DKG transcripts when a scheduled subnet split is finalized and retains their key material during concurrent cleanup.

Changes:

  • Detects scheduled splits and loads the appropriate post-split transcripts.
  • Retains newly loaded transcripts during inactive-key removal.
  • Updates constructors and adds split coverage.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
rs/replica/setup_ic_network/src/lib.rs Supplies registry and replica configuration.
rs/replay/src/validator.rs Updates replay key-manager construction.
rs/consensus/tests/payload.rs Updates test construction.
rs/consensus/tests/framework/runner.rs Updates framework construction.
rs/consensus/src/consensus.rs Updates consensus test setup.
rs/consensus/dkg/src/payload_validator.rs Updates validator test setup.
rs/consensus/dkg/src/lib.rs Propagates new constructor dependencies.
rs/consensus/dkg/src/dkg_key_manager.rs Implements post-split loading, retention, and tests.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread rs/consensus/dkg/src/dkg_key_manager.rs
Comment thread rs/replay/src/validator.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI_ALL_BAZEL_TARGETS Runs all bazel targets feat

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants