Skip to content

Commit 139d663

Browse files
dzhelezovclaude
andauthored
docs(validation): refresh stale issue states in §5.1/§5.2 (#32/#33/#36 → CLOSED) (#126)
The §5.1 cross-validation findings table labelled #32, #33, and #36 as OPEN, but all three are now closed — and the just-merged §5.8 correctly states #33 CLOSED, so §5.1 read as an internal contradiction. Refresh each row's State to CLOSED with an accurate close note (no fabrication; close reasons verified): - #32: fork defect fixed+proven FAIL→PASS on arbitrum/base/avalanche (§5.6); residual is the upstream #83-family column gap (honest NULL, not fabrication). - #33: not a reorg (third-party-confirmed canonical blocks); closed 2026-07-04 by the 409 fork negotiation (§5.8 (B)); stream path stays experimental. - #36: fork-side root cause (tail-chunk child-registry re-seed dropped children below the floor), fixed on main. Also update the §5.2 "#33 remains open" line to reflect the close. #27 and #23 remain correctly OPEN. Docs-only. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 58352df commit 139d663

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

VALIDATION.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,10 +1094,10 @@ record of what has been observed, not a claim that the Portal path is defect-fre
10941094
| Issue | State | Finding | Attribution / third-party |
10951095
|-------|-------|---------|---------------------------|
10961096
| [#27](../../issues/27) | OPEN | RPC-mode realtime stores `access_list` as **NULL** for realtime-ingested typed txs — **including txs that had a real access list on chain**. Upstream Ponder tolerates a provider that omits the `accessList` key and persists NULL permanently. The Portal `/stream` leg **preserves** the access list. | Leg-A defect. Third-party confirmed via an independent public node; the Portal leg matches the real on-chain access list. Loud-fail hardening for the provider-omits-key case landed via **[#31](../../issues/31)** (merged). |
1097-
| [#32](../../issues/32) | OPEN | A **single** transaction with a **fabricated-empty** `access_list` (`[]`) in one of two independently-synced stores (chain 42161). | A single anomalous row surfaced by the differ; pinned as a known-bad row (see §5.3) so it does not mask new drift. **Update:** the Portal *historical-backfill* fork side no longer fabricates `"[]"` for a dropped `access_list` column — [#110](../../pull/110)/[#111](../../pull/111) store honest **NULL** instead (§5.6). The Layer-E Portal-vs-RPC comparison also shows this shape is **systematic on arbitrum**, not a single row (§5.6), so #32's single-hash pin under-covers; #32 stays OPEN for the upstream column gap. |
1098-
| [#36](../../issues/36) | OPEN | RPC-mode realtime store **missing on-chain logs** (and block rows) of long-established addresses at **scattered recent blocks** — the loss is `(block, address)`-scoped. The Portal store is **complete**. | Leg-A defect. Third-party confirmed; the Portal leg holds the missing rows. |
1097+
| [#32](../../issues/32) | CLOSED | A **single** transaction with a **fabricated-empty** `access_list` (`[]`) in one of two independently-synced stores (chain 42161). | A single anomalous row surfaced by the differ; pinned as a known-bad row (see §5.3) so it does not mask new drift. **Update:** the Portal *historical-backfill* fork side no longer fabricates `"[]"` for a dropped `access_list` column — [#110](../../pull/110)/[#111](../../pull/111) store honest **NULL** instead (§5.6). The Layer-E Portal-vs-RPC comparison also shows this shape is **systematic on arbitrum**, not a single row (§5.6), so #32's single-hash pin under-covers. **#32 is now CLOSED**the fork defect is fixed and proven **FAIL→PASS on all three affected chains** (arbitrum/base/avalanche, §5.6); the residual Portal-`NULL`-vs-RPC-populated divergence is the upstream #83-family column gap (honest NULL now, not fabrication). |
1098+
| [#36](../../issues/36) | CLOSED | RPC-mode realtime store **missing on-chain logs** (and block rows) of long-established addresses at **scattered recent blocks** — the loss is `(block, address)`-scoped. The Portal store is **complete**. | Leg-A defect. Third-party confirmed; the Portal leg holds the missing rows. **CLOSED** — root cause identified as fork-side/client-side (leg A ran `0.16.6-sqd.1`, predating two interacting fixes: on restart the in-memory child registry re-seeded only from the tail chunk's floor, so children registered **below** it went unmatched and their rows were dropped while the interval still read complete), fixed on `main`. |
10991099
| [#23](../../issues/23) | OPEN | RPC-mode realtime **deterministic crash** when a single block's full-block `eth_getLogs` response exceeds viem's 10 MiB body cap (dense blocks). The Portal `/stream` leg streams through such blocks. | Leg-A (RPC transport) failure mode; documented as an objective datapoint where the Portal path is more robust. |
1100-
| [#33](../../issues/33) | OPEN | Stream-realtime: a canonical block fataled with "unknown parent" where the parent **was** the canonical block at N−1 (no reorg involved). | Stream-realtime robustness finding on the **Portal** leg — recorded openly. Part of the stream-realtime hardening tracked by PR #26 and follow-ups; the stream path is under an experimental label until closed out. |
1100+
| [#33](../../issues/33) | CLOSED | Stream-realtime: a canonical block fataled with "unknown parent" where the parent **was** the canonical block at N−1 (no reorg involved). | Stream-realtime robustness finding on the **Portal** leg — **not a reorg** (third-party-confirmed the fatals were on canonical blocks). **CLOSED 2026-07-04** by the 409 delivered-hash-ring / step-down fork negotiation (§5.8 (B)); the stream path remains under an experimental label. |
11011101

11021102
Two closed items for completeness:
11031103

@@ -1111,7 +1111,8 @@ Two closed items for completeness:
11111111
PR **[#26](../../pull/26)** (merged 2026-07-04) landed a wave of stream-realtime correctness fixes:
11121112
same-block child logs, a finality anchor, reorg pruning of factory children, a finalized-head pin, and
11131113
population of parent transactions on the stream wire. The realtime path continues to be treated as
1114-
**experimental** pending the longer soak; #33 remains open against it.
1114+
**experimental** pending the longer soak; [#33](../../issues/33) (the false-`unknown-parent` fatal it
1115+
hardened against — **not a reorg**) is now **closed** (§5.8).
11151116

11161117
### 5.3 Benign / tolerated diff classes (declared, bounded, removable)
11171118

0 commit comments

Comments
 (0)