Skip to content

fix(rpc): report live catch-up status over HTTP and WebSocket - #826

Merged
LucienSong merged 1 commit into
mainfrom
codex/live-rpc-sync-status-20261019
Oct 19, 2026
Merged

LucienSong merged 1 commit into
mainfrom
codex/live-rpc-sync-status-20261019

Conversation

@LucienSong

@LucienSong LucienSong commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Description

During real block-range catch-up, v0.27.7 always returns false from eth_syncing and sends only an initial false to WebSocket syncing subscribers. The node health endpoint already reports the active catch-up correctly.

Publish that live node status to both RPC interfaces. Retain an atomic initial snapshot for late subscribers, then deliver progress and completion changes through the existing broadcast channel. HTTP and dedicated WebSocket listeners share the same state. Progress uses validated canonical heights; the guide explains that the protocol does not advertise a network-wide target height.

Type of Change

  • fix — Bug fix

Changes

  • Connect node catch-up readiness to HTTP and WebSocket sync reporting.
  • Cover late subscriptions, unchanged updates, canonical head rollback, completion and a new session through real HTTP/WS server tests.
  • Add --sync-status to the existing signed two-node acceptance script and run it in CI using the existing build and SDK installation.
  • Document the command, progress fields and the still-unreleased fix.

Testing

  • Focused HTTP/WS server regression passes for shared and dedicated listeners.
  • The original two-node failure passes with the candidate binary: 21 imported heads, observed active HTTP/WS reporting, completion false, and matching canonical hashes.
  • A fresh 21-transaction two-node run passes with a real follower process reopen, retained canonical block and idle HTTP/WS status. The same script reproduced the public v0.27.7 failure before the fix.
  • Production-feature node build, formatting, RPC documentation drift, JavaScript syntax and affected CI shell syntax pass.
  • Required hosted workspace tests, lint and remaining checks complete.

Protocol Invariant Checklist

This changes RPC observation of the existing readiness state. Transaction signing, AA execution, consensus, storage profiles, activation settings and protocol parameters retain their existing behavior. Standard eth_* camelCase quantity fields are preserved. startingBlock remains fixed for a catch-up session, while currentBlock follows the canonical head and highestBlock retains its observed maximum.

Notes

The real-node acceptance uses isolated RocksDB nodes, fresh keys, test balances and one ML-DSA-65 authority. It establishes the bounded catch-up/reopen behavior; publication of a matching release binary and verification through the public guide remain follow-up delivery requirements.

@LucienSong
LucienSong merged commit fad76e6 into main Oct 19, 2026
9 checks passed
@LucienSong
LucienSong deleted the codex/live-rpc-sync-status-20261019 branch October 19, 2026 05:29
@LucienSong LucienSong mentioned this pull request Oct 19, 2026
5 of 6 tasks
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