You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drops the threshold field from the restart-triggering criteria in participants_change_requires_restart, so a governance-threshold-only change is now absorbed live rather than tearing down the running job. Completes the follow-up planned in #3838: now that per-domain reconstruction thresholds drive the protocol (#3640), the network-wide governance threshold no longer affects a running job. The doc comment and the matching unit test are updated to reflect the new behavior.
Changes:
Remove the old.threshold != new.threshold branch (and its TODO(#3838)) from participants_change_requires_restart in crates/node/src/coordinator.rs.
Update the function-level doc comment to explain why a governance-threshold-only change no longer forces a restart.
Rename and flip the corresponding unit test to assert that a governance-threshold-only change does not require a restart.
Reviewed changes
Per-file summary
File
Description
crates/node/src/coordinator.rs
Drops threshold-based restart branch; updates doc comment; flips the threshold-change unit test to assert no restart.
Findings
Verified via grep that within crates/node/src, ParticipantsConfig::threshold is read in exactly one non-test production location — coordinator.rs:569 where it feeds sender.wait_for_ready(...) as a one-shot pre-flight gate at job startup. All the ongoing protocol paths (triple gen at providers/ecdsa/triple.rs:127, robust presign at providers/robust_ecdsa/presign.rs:57, ECDSA/EdDSA/robust sign paths) use only the participant list from mpc_config.participants.participants and the per-domain reconstruction_threshold. So the doc comment's claim ("per-domain reconstruction thresholds drive the running protocol") holds, and a live threshold change is safe to absorb — a new value only becomes effective at the next natural restart (epoch change, membership change, own-port change, TLS-key rotation, etc.), which is the intended outcome. The contract itself validates threshold <= n on any proposed governance change, so there is no risk of an unsatisfiable threshold sneaking in.
No blocking or non-blocking issues found. Small, well-scoped follow-up that closes #3838 cleanly.
gilcu3
deleted the
3838-governance-threshold-change-should-not-require-a-node-network-restart
branch
July 24, 2026 08:22
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
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.
Closes #3838