Repository navigation
Fix governance requests and compact block downloads - #313
Merged
minuszka merged 1 commit intoOct 19, 2026
Merged
Conversation
Bind governance object and vote responses to each peer's typed request state. Preserve another peer's download when an unsolicited reply arrives. Allow concurrent compact-block reconstruction from up to three peers and clean up requests per peer. Retain the fork's PoS signature rules and align the Python block models with the existing signature fields. Backport Dash #7442 and #7398 with the Bitcoin #27608 prerequisite. Upstream Dash authors: Pasta and PastaClaw. Original compact-block work: The Bitcoin Core developers.
3 tasks done
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.
Issue being fixed or feature implemented
When several peers announce or deliver the same data, governance responses and
compact-block downloads need consistent request state for each peer. This
backport preserves legitimate downloads while processing responses and allows
compact-block reconstruction to continue through another peer.
What was done?
peer and the full inventory entry.
and upstream fallback behavior.
governance, reconstruction and peer-protocol regressions.
Backports: Dash #7442,
Dash #7398 and the
Bitcoin #27608 prerequisite
(
4b4d96a6,8ffdf7ff,29151420). Upstream authors: Pasta, PastaClawand The Bitcoin Core developers. Adapted to this fork's interfaces.
How Has This Been Tested?
On local Linux/WSL, with the final approved tree
44205443and commitdb78dfa5:35be948e.(783 cases), all compiled Qt suites, strict LSan and its canary,
configure and no-wallet regressions.
and legacy-wallet PoS; separate
p2p_compactblocks.pyandp2p_mutated_blocks.pypassed.tests passed.
behavior; the original logs and all failed attempts were retained.
Hosted PR CI remains pending. Local unit exclusions and existing Qt skips are
unchanged from the workflow.
Breaking Changes
No consensus rule, RPC schema, production wire format or wallet format changes.
Peer request authorization and compact-block download selection intentionally change.
Limits
The earlier legacy PoS disconnect timeout remains unexplained; the retained
old/new binary diagnostic and this complete functional run passed, but do not
establish its cause. No fuzz campaign, signed-governance integration,
native Windows/macOS or live-network validation is claimed.
Checklist