fix incorrect assert in create_block_generator2() #20015
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.
Purpose:
correct the block cost accounting in
create_block_generator2()
. This function is still disabled by default.The variable
block_cost
is an estimate of the current cost of the block + the cost of the current batch of transactions that haven't been added yet.Current Behavior:
The
block_cost
estimate is assumed to match the final cost returned by the BlockBuilder. This is not a safe assumption.New Behavior:
Disregard
block_cost
once the block is built, and just look atcost
instead, which is the cost returned by theBlockBuilder
object.Testing Notes:
The new test exercises the path where the last batch is attempted to be added to the block, but fails. In this scenario, the estimated block cost is still incremented with the next transaction, even though it's never added. This case would cause the assertion to fail (before this PR removes it).