fix: fork block handling in parlia engine and rewinding blocks to the block before the finalized block issue #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Rationale
We need to trust the finalized hash instead of the latest unsafe hash.
When the parent hash does not match, we need to obtain and insert the (latest - finalized) blocks to determine whether reorg has occurred.
full logs -> debug.log.3.zip
When stage sync detects that the hash is incorrect, it will perform a rollback.
At this time, three blocks will be forced to be rolled back.
But the finalized block of bsc is relatively early.
Will cause a rollback to the state before the finalized block.
However, the finalized hash tag of chain_state will not be rolled back.
As a result, the static file still increments the index based on the finalized hash.
In the end, the static file index cannot match the next stage sync block chase.
Example
n/a
Changes
Notable changes:
Potential Impacts