Fix transaction ETA calculation #3714
Merged
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.
resolves #3695 and resolves #2871
The current ETA calculation chooses the last projected block in which the fee span includes the transaction's effective rate.
Because of the issues discussed in #3566, when the mempool is extremely large that means it almost always chooses the final "overflow" mempool block (since the very high number of transactions ensures the fee span is very wide):
This PR switches the ETA calculation to choose the first matching projected block, which should be correct for the majority of transactions.
However there are still a few edge cases from #3566 where this will underestimate the ETA, so we still need PR #3673 to completely fix the calculation.