Repository navigation
dkg: re-sign the proposer config on lock changes - #4836
Open
KaloyanTanev wants to merge 2 commits into
Open
KaloyanTanev wants to merge 2 commits into
KaloyanTanev wants to merge 2 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## kalo/proposer-config-create #4836 +/- ##
===============================================================
+ Coverage 68.26% 68.37% +0.10%
===============================================================
Files 264 264
Lines 34597 34793 +196
===============================================================
+ Hits 23618 23790 +172
- Misses 10978 11002 +24
Partials 1 1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
KaloyanTanev
force-pushed
the
kalo/proposer-config-lock-edits
branch
from
November 11, 2026 13:16
b09d8c3 to
f906149
Compare
|
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
There are no active review issues for the changes preserving proposer configuration across lock-changing ceremonies.
No open issues 🎉
1 file not reviewed
dkg/dkgpb/v1/proposerconfig.pb.go: Generated file
What changed in this PR
Preserves proposer configuration across Charon’s lock-changing ceremonies, supporting consistent validator and builder settings as clusters evolve.
Changes:
- Adds proposer-config and overrides inputs to all four lock-changing edit commands.
- Agrees on configuration before resharing, re-signs it under the new lock at revision 1, and writes it for the new operator set.
- Adds coverage for adoption, configuration mismatches, validation, signatures, and output handling.
| File | Description |
|---|---|
dkg/protocolsteps.go |
Adds agreement, signing, and proposer-config output steps. |
dkg/protocolsteps_internal_test.go |
Tests config signatures and artifact writing. |
dkg/protocol.go |
Stores proposer-config state in the protocol context. |
dkg/protocol_test.go |
Tests config preservation across edit ceremonies. |
dkg/protocol_reshare.go |
Wires config agreement into resharing. |
dkg/protocol_replaceoperator.go |
Wires config carryover into operator replacement. |
dkg/protocol_removeoperators.go |
Handles agreement and adoption during removal. |
dkg/protocol_addoperators.go |
Wires config carryover into operator addition. |
dkg/proposerconfig.go |
Implements adoption and validates carried configuration. |
dkg/proposerconfig_internal_test.go |
Tests adoption, validation, and mixed config states. |
dkg/dkgpb/v1/proposerconfig.proto |
Adds the configuration adoption flag. |
dkg/dkgpb/v1/proposerconfig.pb.go |
Updates generated protobuf bindings. |
dkg/dkg.go |
Adapts agreement calls and uses the shared output path. |
cmd/edit.go |
Logs config replacement only when output exists. |
cmd/edit_replaceoperator.go |
Adds config flags and output guidance. |
cmd/edit_removeoperators.go |
Adds config flags and output guidance. |
cmd/edit_recreateprivatekeys.go |
Adds config flags and output guidance. |
cmd/edit_internal_test.go |
Tests conditional output guidance. |
cmd/edit_addoperators.go |
Adds config flags and output guidance. |
cmd/createcluster.go |
Uses the shared proposer-config path helper. |
cluster/proposerconfig/file.go |
Adds the standard proposer-config path helper. |
app/proposerconfigservice.go |
Exposes reusable runtime compatibility validation. |
app/proposerconfigservice_internal_test.go |
Tests gas-limit and builder-setting validation. |
Review effort: Balanced
KaloyanTanev
marked this pull request as ready for review
November 11, 2026 13:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Carries the proposer config into the new lock of the lock-changing edits:
recreate-private-keys,add-operators,remove-operatorsandreplace-operatortake--proposer-config-fileand--overrides-file, agree on the current content before resharing, sign the revision 1 document under the new lock in the node signatures step and write it to<output-dir>/vc-config/proposer-config.json, which replaces the current file.Joining operators have no file and operators being removed sign nothing, so they adopt the content the remaining operators agree on (
adoptinMsgProposerConfigContent); a removed operator's revision 0 drift does not block its removal and it gets no file.category: feature
ticket: #4324