merkledb
/ sync
-- Disambiguate no end root from no start root
#2437
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.
Why this should be merged
When a sync client asks a sync server for a change proof, and the server doesn't have sufficient history to generate and return a change proof, it falls back to trying to generate and return a range proof. However, we might find out while trying to generate the change proof that we lack sufficient history to return even a range proof. If this is the case, we shouldn't fall back to generating a range proof.
How this works
Add an additional
ErrNoEndRoot
type, which indicates that we lack sufficient history to generate even a range proof. IfGetChangeProof
returnsErrNoEndRoot
, we immediately return drop the request instead of trying to generate a range proof.How this was tested
Update existing UT.