Skip to content

fix(dashmate): empty masternode status while syncing - #970

Merged
shuplenkov merged 1 commit into
v0.24-devfrom
fix/dashmate_masternode_status
Apr 25, 2023
Merged

fix(dashmate): empty masternode status while syncing#970
shuplenkov merged 1 commit into
v0.24-devfrom
fix/dashmate_masternode_status

Conversation

@shuplenkov

Copy link
Copy Markdown

Issue being fixed or feature implemented

Dashmate status shows empty masternode status while syncing

What was done?

Dashmate status now shows UNKNOWN masternode status while it is syncing

How Has This Been Tested?

Manual

Breaking Changes

No

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

@shuplenkovshuplenkov added this to the v0.24.0 milestone Apr 24, 2023
@shuplenkov
shuplenkov merged commit dba42a7 into v0.24-devApr 25, 2023
@shuplenkov
shuplenkov deleted the fix/dashmate_masternode_status branch April 25, 2023 07:53
romchornyi pushed a commit that referenced this pull request Aug 22, 2026
…ashcore-dev-961
Two conflicts, both about the rust-dashcore pin, plus one semantic
break the textual merge hid.
`v4.2-dev` pinned `a97b32c6` in #4455, which turns out to be a side
branch off the old `173ffac0` carrying cherry-picks of the seed refresh
and the BIP-39 fix. This branch pinned `5877d15f`, on `dev`'s mainline.
Neither contains the other. Resolved onto `dev`'s head `b66db390`, which
is a superset of both: it carries the seed refresh (#970) and the BIP-39
fix (#980) that `v4.2-dev` wanted, plus #966 and #969 that this branch
needs, plus the QRInfo masternode-sync recovery (#947).
The hidden break: `v4.2-dev` added `get_wallet_blocking`, which calls
`blocking_read()` on the wallets map — a method this branch removed when
the map became an `ArcSwap`. Git merged the file cleanly and the build
failed. The accessor now loads wait-free; its name is kept so the FFI
callers that predate the change still compile.
romchornyi pushed a commit that referenced this pull request Aug 25, 2026
Per the decision on the blocker: the pinned branch is re-cut without
#866's `rescan_committed_range`.
Two reasons, and the second is the one that decides it. The Codex finding
stands — the sweep accumulates every match from the birth height into one
`BTreeMap` and queues them together, so an eclipsing compact-filter peer
can turn a full-history rescan into a chain-length allocation followed by
millions of block requests, and nothing upstream bounds it yet.
More decisive is the honest case. On a real long-history CoinJoined
restore the #846 backward sweep ran 191 times, reached a 2.9 GB
footprint, and was killed by jetsam before finishing; the coalescing fix
for that is dashpay/rust-dashcore#974, which is not merged. Shipping #866
without #974 would trade a mid-sync stall for a restore that kills the
app — and long-history migrated wallets are exactly this release's
audience.
What the pin still carries is the point of this PR: #964, #960, #955,
#947 and #946, the six sync-stall fixes, plus #945, #928, #963, #965,
#967, #970 and #980. Dropping #866 restores the status quo of the
previous pin rather than introducing a regression — #846's mid-sync
invisibility was never fixed in what shipped — and the migrated-wallet
heal (#4377) does a full rescan, so it does not lean on this sweep.
#866 and #974 come back together next cycle, with a bounded drain for the
accumulation finding.
Branch: dashpay/rust-dashcore@chore/sync-fixes-without-swept, re-cut at
33030acf (base #945 plus eight cherry-picks, #866 omitted).
romchornyi pushed a commit that referenced this pull request Aug 25, 2026
The repin was rolling the bootstrap pool back. `a97b32c6` — the revision
`v4.2-dev` pins today — carries the 2026-08-19 probe at tip height
2,524,354; the curated branch stopped at the 2026-08-17 one at 2,523,213,
losing three endpoints including the evonodes 5.199.166.45 and
65.109.84.202 that the newer probe recorded as reachable with valid
Platform TLS. `dash-network-seeds` embeds this file with `include_str!`,
so that is a live regression in the shipped seed list, not a metadata
detail.
My check for "the current pin loses nothing" compared commit subjects,
and both refreshes are titled `chore(seeds): refresh mainnet seed list`,
so #970 looked like the same change. It is not: #970 is a 36/34-line
refresh that went into `dev`, while `a97b32c6` is a separate 204/153-line
probe that only ever existed on the side branch. Matching on subject was
too weak a test for a generated data file.
The branch now cherry-picks `a97b32c6` after the sync fixes, so
`mainnet.txt` is byte-identical to what the current pin ships.
Re-verified: 560 dash-spv tests, 13 dash-network-seeds tests, and
`cargo check --workspace` clean at the new revision.
Branch: dashpay/rust-dashcore@chore/sync-fixes-without-swept at 3d13d983.
Sign up for freeto 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.

2 participants

@shuplenkov@shumkov