Apply Finality to blocks prior to L1 Finality Singal #13708
+17
−0
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.
When L1 processing on a node lags far behind the L1 processing of the Supervisor, the L1 Finality signal (which we only store the latest of) can't be used to determine L2 finality.
To fix that -- if the L1 finality signal is more recent than the L1 block the node is currently using, we can just deduce that the L2 blocks being derived currently are already finalized. This PR updates the
Finalized
function of ChainsDB to make such a determination.Testing
This issue was diagnosed via a local Kurtosis Devnet, where L2 finality was updating for a while, but stopped and never came back.
This is manually tested by observing a Kurtosis Devnet on this branch, which updates the Finalized L2 consistently.