Remove Merkle Proof Generation from Foreign API get_outputs
#3792
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.
As evidenced by #3791, Merkle proof generation is an experimental feature that currently isn't being used but also has the potential to grind nodes to a halt, as a request for a proof for an early output requires the chain to rewind to that position. This is an obvious problem for archival nodes, but also an issue on non-archival nodes due to the ability to request the genesis coinbase output and force a rewind of the entire chain.
This functionality had been turned off for the
get_block
function, but for some reason remained within theget_outputs
function.#3487
Note there's no known use for these Merkle proofs as present (PIBD uses a form of them, but has its own code for proof generation and never requires a rewind due to it only operating on tree states at the horizon). This PR modifies the foreign API call to ignore the
include_merkle_proof
field in theget_outputs
foreign api, while leaving the parameter in place to avoid breaking existing installations. Instructions to turn it back on are embedded.Once merged into master, will cherry-pick to 5.3.x branch and rebuild.