Skip to content

confirm: one in-hand rule for hole, densify, receive - #138

Open
rearden-grok[bot] wants to merge 2 commits into
masterfrom
confirm/have-body
Open

confirm: one in-hand rule for hole, densify, receive#138
rearden-grok[bot] wants to merge 2 commits into
masterfrom
confirm/have-body

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Why

After loadq take_raw, densify skipped H ≤ lookup_taken_hi but hole= / tip-hole cover still treated those heights as a fetch gap (BQ row is gone). Cover raced each “hole” to 4 peers; receive mark_pending’d the drop; zombie demote re-issued getdata. Host: hole>0 windows issued ~391 getdata/5s vs ~76 at hole=0, same confirm rate.

What

One occupancy ask (claim_ready):

confirmed ∨ matching BQ hash ∨ H ≤ lookup_taken_hi

Hole, densify, and receive all use it. Taken frames are dropped without mark_pending. No BQ stub rows (would inflate bq soft=n and stall after disconnect).

Test

cargo test -p rbitcoin-net --lib claim_ready_taken_prefix_is_not_a_fetch_hole
cargo test -p rbitcoin-net --lib cover_tip_holes_
cargo test -p rbitcoin-net --lib apply_peer_event_block_framed_bq_horizon_and_headers_done

rearden-grok Bot added 2 commits August 18, 2026 13:47
take_raw deletes the BQ row, so hole= and tip-hole cover treated
the loadq prefix as a fetch gap and 4-peer re-raced it. claim_ready
is now confirmed ∨ matching BQ hash ∨ H ≤ lookup_taken_hi. Cover
and receive use that helper; taken frames are dropped without
mark_pending (no zombie loop).
api_log_records_electrum_method hit AlreadyExists on store/meta
under /tmp; unrelated to have-body.
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.

0 participants