Don't persist IBFT2 proposal blocks, just validate them #7631
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.
PR description
This PR fixes a bug with IBFT2 chains where blocks are persisted at block-proposal time instead of block-import time. With Bonsai DB this causes issues updating the flat DB because if a round change happens the original proposal isn't actually the block that's accepted for that round. Since a flat-DB entry already exists for the proposed (but not accepted) block the imported block isn't actually persisted to the DB leaving the world state corrupted.
I've manually tested this with both
BONSAI
andFOREST
DBs to check that state updates are still persisted correctly by doing the following in both DB modes:Fixed Issue(s)
Fixes #7629