Skip to content

Say that catch-up is proven live, and say what still is not - #31

Merged
Wired4ncer merged 1 commit into
mainfrom
docs/catchup-proven-live
Aug 9, 2026
Merged

Wired4ncer merged 1 commit into
mainfrom
docs/catchup-proven-live

Conversation

@Wired4ncer

Copy link
Copy Markdown
Owner

Chain catch-up now has a result against the production node (#24), so two documents were saying something false.

What changed in fact

An induced six-block gap, repaired. The deposit and its spend were both in blocks the subscriber never received, and the alarm fired from the refetch — which is the entire claim reconciliation makes. Across two runs, 68,000+ real mainnet transactions went through the parser with none malformed; until that point it had only ever seen its own synthetic fixtures.

  PASS  refetched exactly the 6 missed blocks
  PASS  the deposit was seen (INCOMING)
  PASS  the spend raised the alarm (OUTGOING)
  PASS  the follower ended at the tip (961776)

8/8 checks passed · 33928 transactions confirmed into the record

The README said the block path had "run only against fixtures". That is a public claim, and it was false the moment the run finished, so it goes first.

The more useful half

The same sections now say what is still not proven, in the same place a reader finds the good news:

  • Reorg handling — detected and refused rather than repaired, and a reorg cannot be induced to order. Needs the UTXO-set diff in #21.
  • Drop behaviour under load — the sockets have been watched live without a single dropped message, which says nothing whatsoever about a period that does drop them. That is #25.
  • Whitelist compatibility, dynamically — the proof authenticated with the node's cookie, which bypasses rpcwhitelist. Compatibility was checked by inspection instead: every method the code calls appears in the configured line. Sound for a per-method list, but inspection is not a live run and should not be written as one.

A status section that only accumulates good news stops being read, and the point of having one is that someone picking this up can tell what is load-bearing from what is aspiration.

Checks

Documentation only. 194 tests, ruff clean.

Refs #24

🤖 Generated with Claude Code

An induced six-block gap was repaired against the production node: the deposit
and the spend were both in blocks the subscriber never received, and the alarm
fired from the refetch. Two runs put 68,000+ real mainnet transactions through
the parser with nothing malformed.

The README claim that the block path had 'run only against fixtures' was
therefore false, and it is a public claim, so it goes first.

The more useful half of this change is the list of what is still not proven,
kept in the same place: reorg handling is detected-and-refused rather than
repaired and cannot be induced to order; the sockets have been watched live
without a single drop, which says nothing about a period that does drop; and the
proof authenticated with the node's cookie, which bypasses rpcwhitelist, so
whitelist compatibility rests on inspection rather than a live run.

A status section that only accumulates good news stops being read.

Refs #24

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Wired4ncer
Wired4ncer merged commit 9c95041 into main Aug 9, 2026
4 checks passed
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