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
This is a subtle startup corner case. When starting up,
We wait for the number of peers to pass a certain threshold before entering sync, but there is a delay between we pass that threshold and when we actually enter sync.
Meanwhile, we may have a peer that sends us a new block
We have logic that if we receive a block and we're not syncing, and the block is way too high, we consider the block as invalid and remember the block hash as invalid
When we then consider whether we're ready to enter sync, we throw away that peer because the peer's highest block is a known "invalid" block, therefore the peer is not eligible and we have not enough peers.
This cycle repeats.
Perhaps it makes sense to add a initial state, instead of NoSync, make it InitializingSync or something, during which we don't ban incoming blocks.
The text was updated successfully, but these errors were encountered:
* GC prints error because the head is at genesis. Return early in that
case. Otherwise while we're doing epoch sync because head remains at
genesis, this keeps spamming the logs.
* See #11930 for a header sync problem; a recently received block is
marked as invalid because its height is too far ahead of where our head
is (genesis). We fix this by not marking blocks as invalid if it's just
because of height. The reason why we mark a block as invalid is because
we think that the block can never be valid (e.g. due to some state
disagreement) so we should not bother trying it again, but if invalid
height is the issue, this is counterproductive.
Closes#11930Closes#11936
This is a subtle startup corner case. When starting up,
Perhaps it makes sense to add a initial state, instead of NoSync, make it InitializingSync or something, during which we don't ban incoming blocks.
The text was updated successfully, but these errors were encountered: