Skip to content

fix(arbnode): require external sync evidence before reporting synced - #4738

Open
Tyagiquamar wants to merge 1 commit into
OffchainLabs:masterfrom
Tyagiquamar:fix/sync-monitor-require-external-target-4733
Open

Tyagiquamar wants to merge 1 commit into
OffchainLabs:masterfrom
Tyagiquamar:fix/sync-monitor-require-external-target-4733

Conversation

@Tyagiquamar

Copy link
Copy Markdown

Summary

  • SyncMonitor.Synced() now returns false on cold-start until the node has observed a non-local sync target when feed input or a seq coordinator is configured.
  • Tracks seenExternalSyncTarget when feed pending message count becomes nonzero, or when the coordinator reports a message count above the local head.
  • Passes feedInputEnabled from Node startup based on whether broadcast clients are configured.

Fixes #4733.

Test plan

  • Added TestSyncMonitorRequiresFeedBeforeReportingSynced and TestSyncMonitorAllowsLocalSyncWithoutFeedOrCoordinator in arbnode/sync_monitor_test.go
  • go test -run TestSyncMonitor ./arbnode/ (requires generated solgen/go; could not run locally on Windows without Foundry contract build)

Nodes with feed input or a seq coordinator must observe a non-local sync target before SyncMonitor.Synced returns true. Prevents eth_syncing from reporting false on cold-start read-replicas with a warm database.

Fixes OffchainLabs#4733
@CLAassistant

CLAassistant commented Sep 8, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@Tyagiquamar

Copy link
Copy Markdown
Author

Hi, friendly ping for review on this PR when you have a moment. Happy to address any feedback. Thanks!

@Tyagiquamar

Copy link
Copy Markdown
Author

Hi, just following up on this when you get a chance. The PR is ready from my side. Happy to address any feedback, including anything on the test setup. Thanks!

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.

SyncMonitor.Synced() returns true against a stale local head during cold-start, so eth_syncing reports false on an unsynced node

2 participants