Skip to content

Commit 524f981

Browse files
committed
Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta
PR bitcoin#30356 incorrectly changed a constant of `4000` to `m_options.coinbase_max_additional_weight` in the check for when to give up finding another transaction to fill the block: ```diff if (nConsecutiveFailed > MAX_CONSECUTIVE_FAILURES && nBlockWeight > - m_options.nBlockMaxWeight - 4000) { + m_options.nBlockMaxWeight - m_options.block_reserved_weight) { // Give up if we're close to full and haven't succeeded in a while break; } ``` But this constant did not deal with the reserved weight at all. It was in fact simply checking if the block was close to full, and if so, giving up finding another transaction to pad it with after `MAX_CONSECUTIVE_FAILURES` failed attempts. It doesn't seem very logical to reuse the reserve weight for this purpose, and it would be overcomplicated to add yet another setting, so this PR changes it to a new constexpr.
1 parent 8cb6ab0 commit 524f981

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/node/miner.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpda
314314
// close to full; this is just a simple heuristic to finish quickly if the
315315
// mempool has a lot of entries.
316316
const int64_t MAX_CONSECUTIVE_FAILURES = 1000;
317+
constexpr int32_t BLOCK_FULL_ENOUGH_WEIGHT_DELTA = 4000;
317318
int64_t nConsecutiveFailed = 0;
318319

319320
while (mi != mempool.mapTx.get<ancestor_score>().end() || !mapModifiedTx.empty()) {
@@ -395,7 +396,7 @@ void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpda
395396
++nConsecutiveFailed;
396397

397398
if (nConsecutiveFailed > MAX_CONSECUTIVE_FAILURES && nBlockWeight >
398-
m_options.nBlockMaxWeight - m_options.block_reserved_weight) {
399+
m_options.nBlockMaxWeight - BLOCK_FULL_ENOUGH_WEIGHT_DELTA) {
399400
// Give up if we're close to full and haven't succeeded in a while
400401
break;
401402
}

0 commit comments

Comments
 (0)