Preserve applied blocks through recursive chain fallback - #2515
Open
a-shannon wants to merge 1 commit into
Open
Conversation
a-shannon
marked this pull request as ready for review
September 6, 2026 21:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 recursive chain fallback reaches a state already at its branching point, the holder now retains the blocks applied earlier in the same update. Their transactions reach final mempool reconciliation and their blocks reach wallet scanning.
Validation: JDK 8, Scala 2.12.20; four focused holder tests and 18 existing holder regression configurations pass. The two no-rollback cases fail against the original implementation. The focused fixture exercises the real recursive holder and its mempool, wallet and event consumers, with controls for an empty prefix and an actual rollback. Independent source and test review completed.
Integration with #2424: retain this suffix in its same-version branch while preserving that PR's rollback helper and identifier conversion.
CI: all eight checks passed on
7fa13e88ad7d381a821d2477fbc3073d2b3d7835, including node integration tests. CI run.