feat(dataset): admit the remaining 82 P2SH failures from proof files - #15
Merged
Merged
Conversation
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.
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.
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
scrapeobservations. 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-prevoutsdownloaded 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.