Skip to content

Conversation

@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 24, 2025

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33476.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK achow101, stickies-v

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

@glozow glozow mentioned this pull request Sep 24, 2025
@glozow glozow force-pushed the 2025-09-28.3-backport branch from ff9de5b to 407a494 Compare September 24, 2025 19:20
@achow101 achow101 added this to the 28.3 milestone Sep 25, 2025
glozow and others added 16 commits September 26, 2025 10:22
The padding method used matches the one used in MiniWallet,
`MiniWallet._bulk_tx`.

Github-Pull: bitcoin#30784
Rebased-From: ed7d224
Back when we implemented coin age priority as a miner policy, miners
mempools might admit transactions paying very low fees, but then want to
set a higher fee for block inclusion. However, since coin age priority
was removed in v0.15, the block assembly policy is solely based on fees,
so we do not need to apply minimum feerate rules in multiple places. In
fact, the block assembly policy ignoring transactions that are added to
the mempool is likely undesirable as we waste resources accepting and
storing this transaction.

Instead, rely on mempool policy to enforce a minimum entry feerate to
the mempool (minrelaytxfee). Set the minimum block feerate to the
minimum non-zero amount (1sat/kvB) so it collects everything it finds in
mempool into the block.

Github-Pull: bitcoin#33106
Rebased-From:  5f2df0e
This is needed for the next commit

Github-Pull: bitcoin#30948
Rebased-From: fa48be6
Also disable the function, when it is not needed.

Github-Pull: bitcoin#30948
Rebased-From: faf8015
Use a virtual size of 1000 to keep precision when using a feerate
(which is rounded to the nearest satoshi per kvb) that isn't just an
integer.

Github-Pull: bitcoin#33106
Rebased-From: 457cfb6
…t/kvB

Let's say an attacker wants to use/exhaust the network's bandwidth, and
has the choice between renting resources from a commercial provider and
getting the network to "spam" itself it by sending unconfirmed
transactions. We'd like the latter to be more expensive than the former.

The bandwidth for relaying a transaction across the network is roughly
its serialized size (plus relay overhead) x number of nodes. A 1000vB
transaction is 1000-4000B serialized. With 100k nodes, that's 0.1-0.4GB
If the going rate for commercial services is 10c/GB, that's like 1-4c per kvB
of transaction data, so a 1000vB transaction should pay at least $0.04.

At a price of 120k USD/BTC, 100sat is about $0.12. This price allows us
to tolerate a large decrease in the conversion rate or increase in the
number of nodes.

Github-Pull: bitcoin#33106
Rebased-From: 6da5de5
…l page sizes)

This aims to complete our test framework BDB parser to reflect
our read-only BDB parser in the wallet codebase. This could be
useful both for making review of bitcoin#26606 easier and to also possibly
improve our functional tests for the BDB parser by comparing with
an alternative implementation.

Github-Pull: bitcoin#30125
Rebased-From: 01ddd9f
@glozow
Copy link
Member Author

glozow commented Sep 26, 2025

Ready for review, though I think the tidy job tripped somehow?

@achow101
Copy link
Member

Can you do the version bump stuff here?

@glozow glozow force-pushed the 2025-09-28.3-backport branch from 78b9686 to dcac362 Compare September 29, 2025 20:48
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
@bitcoin bitcoin deleted a comment Sep 30, 2025
Copy link
Contributor

@stickies-v stickies-v left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK dcac362 , although I'm a bit confused about one change (see comment) that doesn't seem like a backport (but not necessarily bad by itself).

I verified all backports are clean, except for a bunch of test-only merge conflicts in 33106:

I verified the release notes, and was able to produce identical manpages.

nit: e3273e0 and 08eeb0d have two spaces after Rebased-From: instead of the usual one, I'm not sure if that'd break any tooling (it did for me, but was an easy fix)

cpfp_parent = self.wallet.create_self_transfer(
utxo_to_spend=mempool_evicted_tx["new_utxo"],
fee_rate=mempoolmin_feerate - Decimal('0.00001'),
fee_rate=mempoolmin_feerate / 2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit from which this is backported just added an extra zero:

6da5de5#diff-63dc84ee23b871d1f4931c4f261b3c6b815bd8d5a65098a61bce8ea9b6b81965

What's the reason for changing that to dividing by 2 here? It also doesn't seem necessary for the test to complete.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you are right that changing the Decimal would have worked - apologies for the confusing change in approach.

This test doesn't exist on master, so it isn't part of the backport. It's a conflict resolution - the test was adapted to make it pass on that commit. I think you're referring to a different line lower down (L315) where it's backported and adds a 0.

Copy link
Contributor

@stickies-v stickies-v Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see. The fact that test functions are named slightly differently combined with this patch of code being ~duplicated tripped me up a bit. Thanks for the clarification, can be marked as resolved.

@glozow
Copy link
Member Author

glozow commented Sep 30, 2025

nit: e3273e0 and 08eeb0d have two spaces after Rebased-From: instead of the usual one, I'm not sure if that'd break any tooling (it did for me, but was an easy fix)

Sorry about that! I hadn't really thought about the number of spaces, but will keep it in mind in the future.

@achow101
Copy link
Member

Can you also do gen-bitcoin-conf.sh since that will need to update for the new defaults as well.

@achow101
Copy link
Member

ACK 9968b15

@DrahtBot DrahtBot requested a review from stickies-v September 30, 2025 21:51
Copy link
Contributor

@stickies-v stickies-v left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-ACK 9968b15

Getting the same bitcoin.conf example.

cpfp_parent = self.wallet.create_self_transfer(
utxo_to_spend=mempool_evicted_tx["new_utxo"],
fee_rate=mempoolmin_feerate - Decimal('0.00001'),
fee_rate=mempoolmin_feerate / 2,
Copy link
Contributor

@stickies-v stickies-v Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see. The fact that test functions are named slightly differently combined with this patch of code being ~duplicated tripped me up a bit. Thanks for the clarification, can be marked as resolved.

@achow101 achow101 merged commit ed730c5 into bitcoin:28.x Oct 1, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants