Skip to content

chore: job restart not needed when governance threshold changes - #3955

Merged
gilcu3 merged 1 commit into
mainfrom
3838-governance-threshold-change-should-not-require-a-node-network-restart
Jul 24, 2026
Merged

chore: job restart not needed when governance threshold changes#3955
gilcu3 merged 1 commit into
mainfrom
3838-governance-threshold-change-should-not-require-a-node-network-restart

Conversation

@gilcu3

@gilcu3 gilcu3 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Closes #3838

@gilcu3 gilcu3 linked an issue Jul 24, 2026 that may be closed by this pull request
@claude

claude Bot commented Jul 24, 2026

Copy link
Copy Markdown

Pull request overview

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.

✅ Approved

@gilcu3
gilcu3 enabled auto-merge July 24, 2026 07:43
@gilcu3
gilcu3 added this pull request to the merge queue Jul 24, 2026
Merged via the queue into main with commit 67d4d5d Jul 24, 2026
16 checks passed
@gilcu3
gilcu3 deleted the 3838-governance-threshold-change-should-not-require-a-node-network-restart branch July 24, 2026 08:22
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.

Governance threshold change should not require a node network restart

4 participants