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
Fix an issue where the SMT should not be verified for each block height while horizon sync is in progress, but only at the end.
Motivation and Context
The SMT can only be verified after all outputs have been downloaded, due to the way we optimize fetching
outputs from the sync peer. As an example:
inputs per block. All outputs that were created and spent within the tranche are never returned.
for headers from height 50 to 69, but due to the optimization, the sync peer would never know about it.
inputs per block, but in this case, only those inputs that are not an output of the current tranche of
outputs. Similarly, all outputs created and spent within the tranche are never returned.
for headers from height 110 to 179, but due to the optimization, the sync peer would never know about it.
SMT with the outputs that were created and spent within the tranche.
How Has This Been Tested?
System-level horizon sync test using a previous archival node that was converted to a pruned node.
What process can a PR reviewer use to test or verify this change?
Code review
Breaking Changes