Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Range sync rate limit exhaust when execution node is syncing #6435

Open
nazarhussain opened this issue Feb 16, 2024 · 0 comments
Open

Range sync rate limit exhaust when execution node is syncing #6435

nazarhussain opened this issue Feb 16, 2024 · 0 comments
Labels
meta-bug Issues that identify a bug and require a fix. meta-discussion Indicates a topic that requires input from various developers.

Comments

@nazarhussain
Copy link
Contributor

Describe the bug

When beacon node start and tries to sync from genesis, it usually fall back to range sync because head of connected peers are too far in the future.

  1. It tries to call BeaconBlocksByRange method to get blocks from connected peer.
  2. If the execution engine in the meanwhile is syncing it failed to process the blocks with
Batch process error id=Finalized, startEpoch=4, status=Processing, code=BLOCK_ERROR_EXECUTION_ERROR, execStatus=UNSAFE_OPTIMISTIC_STATUS, errorMessage=not safe to import SYNCING payload within 128 of currentSlot
  1. It does not stop with this error and keep calling BeaconBlocksByRange continuously.
  2. This exhaust the rate limit for BeaconBlocksByRange which is 1024 blocks per 10s.
    byPeer: {quota: MAX_REQUEST_BLOCKS, quotaTimeMs: 10_000},
  3. Till the connected execution engine sync, beacon node can't proceed sync further because of rate limit on BeaconBlocksByRange.

Expected behavior

It should be able to proceed with range sync after waiting the execution node to be synced.

Possible solution could be to wait for the execution engine to sync before initiating multiple concurrent BeaconBlocksByRange requests.

Steps to reproduce

  1. Run a node pair and wait for couple of epochs
  2. Run the second node pair in sequence that beacon node and execution node starts same time.

Additional context

Look for the logs of range-sync-node-beacon-lodestar.log

multi-fork.zip

Operating system

Linux

Lodestar version or commit hash

unstable

@nazarhussain nazarhussain added the meta-bug Issues that identify a bug and require a fix. label Feb 16, 2024
@nazarhussain nazarhussain changed the title range sync rate limit exhaust when execution node is syncing Range sync rate limit exhaust when execution node is syncing Feb 16, 2024
@wemeetagain wemeetagain added the meta-discussion Indicates a topic that requires input from various developers. label Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta-bug Issues that identify a bug and require a fix. meta-discussion Indicates a topic that requires input from various developers.
Projects
None yet
Development

No branches or pull requests

2 participants