After the 4 Oct 2026 stall (no block stored from 11:57 to 13:15 UTC, then 7,022 blocks in two minutes). Notifications only enqueue; a drain loop handles them in bounded batches. Block flush, colour marking and certificate work each run on their own timer and never wait on one another. Mergesets come from the notification's verbose data (bounded cache); getBlock only on a miss, four at a time. live_state gains observer_lag_s and queue_depth; the API serves them; the page shows "observer N s behind" past 30 s instead of waiting for the first block. blocks_per_minute and blocks_60s are bucketed by the block's own timestamp and reseeded from the table on start, so a catch-up fills past minutes instead of painting a spike. If no blockAdded arrives for 60 s while the node's block_count advances, the observer resubscribes; after two failed attempts it exits 2 and tools/observer/run.sh restarts it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ci | ||
| evm-smoke | ||
| exec-attacks | ||
| finality-attacks | ||
| harness | ||
| observer | ||
| prove-fixtures | ||
| upstream | ||
| logs.mjs | ||
| relay.mjs | ||