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.
Fix #2946
The behavior of
prefix_proof
is currently buggy. When a node isn't found in the proof that the remote sent us, we simply discard it instead of adding it to the list of keys to query at the next iteration.The consequence is that
state_getKeysPaged
was wrong most the time.In order to fix this, I had to reorganize the entire function.
There's still an issue because we're asking for too much data, which leads the remote to shutdown the connection, so queries still occasionally fail. But this other issue is not the fault of the
prefix_proof
module, and this PR is only about fixingprefix_proof
.