Skip to content

feat(dataset): admit omitted-parent failures and height 474294 - #4

Closed
deadmanoz wants to merge 3 commits into
mainfrom
missing-unconfirmed-parent
Closed

feat(dataset): admit omitted-parent failures and height 474294#4
deadmanoz wants to merge 3 commits into
mainfrom
missing-unconfirmed-parent

Conversation

@deadmanoz

Copy link
Copy Markdown
Collaborator

Summary

  • Add the omitted-unconfirmed-parent evidence rule, so a missing prevout that later confirms in a competing block can be admitted. That is a different bad-txns-inputs-missingorspent case from an in-block forward spend.
  • Add the 1Hash block at height 474294 (00000000000000000182acdf5657c93a0769dc6f9004047496b2e15efc6a4232). Transaction 110 spends b11a78c6…:1; that parent is not in the body and confirmed in the same-height main-chain competitor. The .bin matches the copy previously stored in stale-blocks.
  • Require coinbase height/scriptSig context on omitted-parent records, and treat parent_kind as a reviewed canonical claim rather than a provider lookup.

Test plan

  • python ci/sanity-check.py --fetch-prevouts (47 records, 6 block files)
  • python -m unittest discover -s ci -p 'test_*.py'
  • Header hashes to the recorded value; body merkle root matches; not an in-block forward spend
  • Parent tx authenticated in .cache/prevouts/; Esplora status and btc-01 both show confirmation at 474294 in 000000000000000000db2504327e272fe7658fac0dd0741f46b212256e500886
  • btc-01: stale and winner share canonical parent …e0084b3a; winner contains parent at index 809 and child a6655ca4… at 810

Companion removal: bitcoin-data/stale-blocks#139

The in-block forward-spend checker cannot see a parent that confirmed only
in a competing same-height block. Add that evidence rule and the 1Hash
body so ConnectBlock's missing-or-spent failure is re-derivable.
…loader

Keep two confirmation requests in flight and stop once a proving parent
is found.
Treat parent_kind as a reviewed claim, not a provider check.
deadmanoz added a commit to deadmanoz/stale-blocks that referenced this pull request Sep 11, 2026
1Hash block 00000000000000000182acdf5657c93a0769dc6f9004047496b2e15efc6a4232
spends an output whose parent confirmed only in the same-height
competitor. That is bad-txns-inputs-missingorspent at connect time,
not an in-block ordering error.

The replacement record and binary are in bitcoin-data/invalid-blocks#4.
Point the README at the companion repository rather than the pre-474294
tree snapshot.
@deadmanoz deadmanoz closed this Sep 11, 2026
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.

1 participant