Skip to content

feat(dataset): admit the remaining 82 P2SH failures from proof files - #15

Merged
deadmanoz merged 1 commit into
mainfrom
p2sh-proofs-bulk
Sep 21, 2026
Merged

deadmanoz merged 1 commit into
mainfrom
p2sh-proofs-bulk

Conversation

@deadmanoz

Copy link
Copy Markdown
Collaborator

Summary

With #14's proof-file path in place, this admits every other block known to carry the 2012 P2SH-invalid spend: 82 records and 82 proof files, bringing the rule's total to 89, four with bodies and 85 from proofs, and the dataset to 143 records. Each proof file holds the 123-byte transaction and the block's complete ordered txids; CI checks that the list reproduces the header's merkle root, that the transaction is in it, and that its input passes without P2SH and fails with it against the same authenticated funding output (schema section). No validator or schema change is needed, and no new previous transaction is fetched.

Every new record carries two scrape observations. The first names where its ordered txids came from: for 42 of the 85 proof records a Wayback Machine capture of the blockchain.info block-index page from April 2012 (for example 173948), and for 43 a member of the Decker and Wattenhofer orphan archive preserved in mergedmonitor, whose recovered order reproduces each header's merkle root. The second is the June 2012 capture of the transaction's own blockchain.info page, which lists 88 of the 89 blocks that included it. Context is the canonical parent and the failing outpoint; no pool is attributed, since the coinbase bytes of these blocks are not recovered. The incident note gains the source split and the June capture (notes).

Testing

python ci/sanity-check.py --fetch-prevouts downloaded nothing and passed with 143 blocks, 143 contexts, 377 observations, 16 block files and 85 proof files; the offline run passes against the same cache. All 43 tests pass. The 82 proof files total 668 KB. A contextless review re-derived every header, merkle root and transaction position, checked a sample of parents against mempool.space and a sample of captures against the Wayback Machine, and confirmed that all 89 cases in the reconstruction bundle are now present exactly once.

Every block known to carry the 2012 P2SH-invalid spend is now recorded:
four with bodies and 85 from proof files. Each new record cites the source
of its ordered txids, a Wayback capture of the blockchain.info block page
or the Decker and Wattenhofer orphan archive in mergedmonitor, and the June
2012 capture of the transaction's own page, which lists 88 of the 89
blocks.
@deadmanoz
deadmanoz merged commit 861a7c9 into main Sep 21, 2026
1 check passed
@deadmanoz
deadmanoz deleted the p2sh-proofs-bulk branch September 21, 2026 11:32
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