Skip to content

perf: masternode verify quorum once - #1067

Merged
ZocoLini merged 1 commit into
devfrom
perf/masternode-verify-quorum-once
Sep 26, 2026
Merged

ZocoLini merged 1 commit into
devfrom
perf/masternode-verify-quorum-once

Conversation

@ZocoLini

@ZocoLini ZocoLini commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

verify_non_rotating_masternode_list_quorums runs after every masternode
sync step and validated every non-rotating quorum of the list each time,
Verified or not. A quorum commitment is identified by its type and hash and
cannot change, so re-validating one that already passed only redoes the
BLS work, and it needs the list at the quorum's work block (DIP-6) to still
be there: once that list is gone, a Verified quorum would regress to a
failed status.

A quorum already Verified keeps its status; every other status is
validated as before. Rotated quorums are unaffected, they take their status
from the stored cycle.

Test: a Verified quorum with too few signers for its type and no list at
its work block stays Verified; it becomes Invalid(InsufficientSigners)
without this change.

PR Hygiene · 6101a3e

  • Bots — coderabbitai ✓
  • Self-review — post /self-reviewed
  • Within your 5 open PRs
  • Build green
  • Approvals
    • files with no dedicated owner (dash/src/sml/masternode_list_engine/helpers.rs, dash/src/sml/masternode_list_engine/mod.rs) — QuantumExplorer or xdustinface

When every box is checked the PR Hygiene check passes and this can merge.

@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 48 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: dashpay/rust-dashcore/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 617ad356-fb02-49ca-ae03-eab38ae85665

📥 Commits

Reviewing files that changed from the base of the PR and between 30d1bfc and 6101a3e.

📒 Files selected for processing (2)
  • dash/src/sml/masternode_list_engine/helpers.rs
  • dash/src/sml/masternode_list_engine/mod.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

This PR has merge conflicts with the base branch. Please rebase or merge the base branch into your branch to resolve them.

@github-actions github-actions Bot added the merge-conflict The PR conflicts with the target branch. label Sep 25, 2026
@ZocoLini
ZocoLini force-pushed the perf/masternode-verify-quorum-once branch from 76c0419 to c3b039c Compare September 25, 2026 16:04
@github-actions github-actions Bot removed merge-conflict The PR conflicts with the target branch. labels Sep 25, 2026
@ZocoLini
ZocoLini force-pushed the perf/masternode-verify-quorum-once branch from c3b039c to 9453346 Compare September 25, 2026 16:34
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.70%. Comparing base (30d1bfc) to head (6101a3e).
⚠️ Report is 1 commits behind head on dev.

Files with missing lines Patch % Lines
dash/src/sml/masternode_list_engine/mod.rs 50.00% 3 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##              dev    #1067   +/-   ##
=======================================
  Coverage   77.69%   77.70%           
=======================================
  Files         317      317           
  Lines       80742    80758   +16     
=======================================
+ Hits        62733    62750   +17     
+ Misses      18009    18008    -1     
Flag Coverage Δ
core 78.91% <85.00%> (+<0.01%) ⬆️
ffi 52.99% <ø> (ø)
rpc 20.00% <ø> (ø)
spv 92.09% <ø> (+0.01%) ⬆️
wallet 80.22% <ø> (ø)
Files with missing lines Coverage Δ
dash/src/sml/masternode_list_engine/helpers.rs 96.35% <100.00%> (+0.21%) ⬆️
dash/src/sml/masternode_list_engine/mod.rs 89.04% <50.00%> (-0.17%) ⬇️

... and 3 files with indirect coverage changes

@github-actions github-actions Bot added the merge-conflict The PR conflicts with the target branch. label Sep 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This PR has merge conflicts with the base branch. Please rebase or merge the base branch into your branch to resolve them.

@ZocoLini
ZocoLini force-pushed the perf/masternode-verify-quorum-once branch from 9453346 to 5015518 Compare September 25, 2026 22:51
@github-actions github-actions Bot removed the merge-conflict The PR conflicts with the target branch. label Sep 25, 2026
@ZocoLini ZocoLini changed the title Perf/masternode verify quorum once perf: masternode verify quorum once Sep 26, 2026
@ZocoLini
ZocoLini marked this pull request as ready for review September 26, 2026 09:38
@github-actions

Copy link
Copy Markdown
Contributor

@coderabbitai review

No review for 5015518e yet, so PR Hygiene is asking once. If nothing arrives, the requirement is dropped for this commit and the pull request is labelled bot-review-skipped.

@github-actions github-actions Bot added the waiting-bots Waiting for the review bots to report on this head label Sep 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Bots are done — your move: post /self-reviewed.
Full checklist in the description.

@github-actions github-actions Bot added waiting-self-review Waiting for the author to post /self-reviewed bot-review-skipped A required review bot did not report; it was skipped by the window or by a person. and removed waiting-bots Waiting for the review bots to report on this head labels Sep 26, 2026
`verify_non_rotating_masternode_list_quorums` runs after every masternode
sync step and validated every non-rotating quorum of the list each time,
Verified or not. A quorum commitment is identified by its type and hash and
cannot change, so re-validating one that already passed only redoes the BLS
work, and it needs the list at the quorum's work block (DIP-6) to still be
there: once that list is gone, a Verified quorum would regress to a failed
status.

A quorum already `Verified` keeps its status; every other status is
validated as before. Rotated quorums are unaffected, they take their status
from the stored cycle.

Test: a Verified quorum with too few signers for its type and no list at
its work block stays Verified; it becomes `Invalid(InsufficientSigners)`
without this change.

Verified: fmt, clippy --workspace --all-features --all-targets -D warnings,
dashcore 619, dash-spv 570 + dashd_masternode 10 + dashd_sync 32,
dash-spv-ffi 49 + dashd_sync 7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ZocoLini
ZocoLini force-pushed the perf/masternode-verify-quorum-once branch from 5015518 to 6101a3e Compare September 26, 2026 09:45
@ZocoLini

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@github-actions

Copy link
Copy Markdown
Contributor

Bots are done — your move: post /self-reviewed.
Full checklist in the description.

@ZocoLini

Copy link
Copy Markdown
Collaborator Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented Sep 26, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Comments resolved and changes approved.

@ZocoLini
ZocoLini merged commit 10915ae into dev Sep 26, 2026
36 of 37 checks passed
@ZocoLini
ZocoLini deleted the perf/masternode-verify-quorum-once branch September 26, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot-review-skipped A required review bot did not report; it was skipped by the window or by a person. waiting-self-review Waiting for the author to post /self-reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant