You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For situation such as current goerli, there are 2-3 long competing branches spanning hundreds of epochs, but with only very few blocks on each of them.
When sync manager discovers a new head of such a long branch, block verifier returns MissingParent. Sync manager then rewinds to an earlier epoch to attempt to obtain the parent. If it repeatedly fails to obtain the same block, the rewinds grow larger until it eventually finds it.
While this works well for a few epochs of being behind, it doesn't work well for larger gaps, as is happening on goerli on all of the branches. To better support discovery of such branches, we could ask the peer that gave us the new head (with MissingParent) to also give us the parent directly (with beaconBlocksByRoot) -- request_manager is suspended while sync manager is running, so it cannot help us with this task!
If the peer that gave us the head also gives us the parent (which it should), then we can provide that as a hint for the next rewind point and resume syncing by range once more.
The text was updated successfully, but these errors were encountered:
For situation such as current goerli, there are 2-3 long competing branches spanning hundreds of epochs, but with only very few blocks on each of them.
When sync manager discovers a new head of such a long branch, block verifier returns
MissingParent
. Sync manager then rewinds to an earlier epoch to attempt to obtain the parent. If it repeatedly fails to obtain the same block, the rewinds grow larger until it eventually finds it.While this works well for a few epochs of being behind, it doesn't work well for larger gaps, as is happening on goerli on all of the branches. To better support discovery of such branches, we could ask the peer that gave us the new head (with
MissingParent
) to also give us the parent directly (withbeaconBlocksByRoot
) --request_manager
is suspended while sync manager is running, so it cannot help us with this task!If the peer that gave us the head also gives us the parent (which it should), then we can provide that as a hint for the next rewind point and resume syncing by range once more.
The text was updated successfully, but these errors were encountered: