Date: 2026-09-16 (2025-2026 eras completed 2026-09-17) · Instrument: tools/research/perblock_validation.py Output: data/perblock_validation.json
The SCCR historical reconstruction derives era-level fee and block-size legs from daily aggregates (fee_btc_per_day, avg-block-size, blocks_per_day_est). That derivation is grade B: correct in aggregate but unverified at the per-block level. This strip samples actual per-block measurements across 2010-2026 so the aggregate legs can be checked against direct observations, and so the SegWit-era size/weight divergence (a block/state-size boundary question, row 4) is quantified.
| Source | Endpoint | Gives | Status |
|---|---|---|---|
| Blockstream esplora | /api/block-height/:h + /api/block/:hash | weight, size, tx_count, timestamp per block | Reachable; ~1 req/s sustained, ~500 credits/hr (429 beyond) |
| blockchain.info | /rawblock/:hash top-level fee (sat) | block-level total fees | Reachable; ~5 MB/block, infrequent, not rate-limited in practice |
Notes:
/api/v1/block/height/:h (has feeTotal) times out from here for historical heights; esplora's block object has no fee field. blockchain.info rawblock carries the block-level fee, so fees were sampled there./bitcoin/blocks remains HTTP 430 (rate-limited) for the continuous per-block scan — unchanged since utxo-series-reachability.md.For each era 2010-2026, three target days (~Jan 1, ~Jun, ~Dec) are converted to a block height by binary search over the main chain (greatest height with timestamp <= target), via esplora. For each sampled height the block summary is cached; the mid-era sample additionally gets a rawblock fetch for the block-level fee. fee_btc (sample) is compared to the era's reconstruction reference fee_btc_per_day / blocks_per_day_est.
Rate-limit handling: per-request retries with 90 s backoff on 429; per-era checkpointing so a quota-limited run resumes exactly where it stopped.
weight ≈ 4× size, pre-SegWit weight ≈ 4× size holds except deflationary 2015-16 blocks. Ordinals/Runes-era tx counts confirm congestion: 2023 sampled 2,924 txs/block, 2024 4,246 txs/block (vs ~1,400-1,700 in 2021-22), and the recent eras stay near-full — 2025 1.95 MB / 2,373 txs, 2026 1.68 MB / 5,522 txs (the highest sampled tx density).Full per-block reconstruction (B→A for rows 1, 4) is DOCUMENTED as blocked on a bulk continuous source: blockchair 430, mempool block-endpoint timeout, esplora no-fee. Two real completion paths: a synced local node (same R5 gate), or blockchair from a rate-limit-tolerant host.
data/perblock_validation.json — deterministic, frozen-input instrument; re-runnable offline.