Include patches from 29.1 (b)#92
Merged
ajtowns merged 26 commits intobitcoin-inquisition:29.xfrom Sep 4, 2025
Merged
Conversation
Github-Pull: bitcoin#33106 Rebased-From: e5f896b
Github-Pull: bitcoin#33106 Rebased-From: 85f4988
Github-Pull: bitcoin#33106 Rebased-From: 72dc184
Github-Pull: bitcoin#33106 Rebased-From: 1fbee5d
Github-Pull: bitcoin#33106 Rebased-From: d6213d6
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
Github-Pull: bitcoin#33106 Rebased-From: 3eab8b7
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
… explicit Github-Pull: bitcoin#33106 Rebased-From: 2e515d2
…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
Release notes are from 18720bc
0034dcf [doc] man pages for 29.1rc2 (glozow) eb1574a [build] bump version to 29.1rc2 (glozow) f9f1ca5 [doc] update release notes (glozow) 9dd7efc [policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB (glozow) bbdab3e [prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit (glozow) da30ca0 [prep/util] help MockMempoolMinFee handle more precise feerates (glozow) a0ae3fc [prep/test] replace magic number 1000 with respective feerate vars (glozow) 1c1970f [miner] lower default -blockmintxfee to 1sat/kvB (glozow) 3a7e093 [doc] assert that default min relay feerate and incremental are the same (glozow) 567c3ee [test] explicitly check default -minrelaytxfee and -incrementalrelayfee (glozow) 6b5396c [test] RBF rule 4 for various incrementalrelayfee settings (glozow) 03da7af [test] check bypass of minrelay for various minrelaytxfee settings (glozow) 4e3cfa6 [test] check miner doesn't select 0fee transactions (glozow) Pull request description: Backports bitcoin#33106 and includes final changes for 29.1rc2. Based on current network conditions (in which nodes rejecting 0.1-1sat/vB are missing many transactions), it is recommended to change these policy settings. I did not include bitcoin#32750 because it causes bitcoin#33177 and I don't foresee any problems; it was just a nice to have. For reviewers: the backport is unclean but fairly straightforward. I just had to adapt a test that is no longer in master (bitcoin#32973) and include `-datacarriersize` in order to pad transaction size (bitcoin#32406). ACKs for top commit: dergoegge: utACK 0034dcf marcofleon: ACK 0034dcf murchandamus: crACK 0034dcf brunoerg: crACK 0034dcf Tree-SHA512: 1b7540ac3fec5b15cf36926dbf633054f14549d76aa445a2bf042b5667e8637db4f9c21c869af25a0c3f8c7cca6c585d17896d2f7e95a6264c1ff59817446694
65dc198 doc: update example bitcoin conf for 29.1rc2 (fanquake) Pull request description: Followup to bitcoin#33226. ACKs for top commit: dergoegge: ACK 65dc198 willcl-ark: ACK 65dc198 Tree-SHA512: b2924783dd98890bd031dbca8c9c126cd3ab45c3cc8d2f14dd5b5f940fcc7061f3d1f73e2d36482afceaae786f3087b59baab98db0f10bc0d19e3f016f52851a
The committed state of an index should never be ahead of the flushed chainstate. Otherwise, in the case of an unclean shutdown, the blocks necessary to revert from the prematurely committed state would not be available, which would corrupt the coinstatsindex in particular. Instead, the index state will be committed with the next ChainStateFlushed notification. Github-Pull: bitcoin#33212 Rebased-From: 01b95ac
This test fails without the previous commit. Github-Pull: bitcoin#33212 Rebased-From: a602f6f
fcac802 test: index with an unclean restart after a reorg (Martin Zumsande) 16b1710 index: don't commit state in BaseIndex::Rewind (Martin Zumsande) Pull request description: Backports bitcoin#33212 to 29.x ACKs for top commit: achow101: ACK fcac802 stickies-v: ACK fcac802 mzumsande: Code Review ACK fcac802 Tree-SHA512: eeb9213f03bbb1d48c3ccb12121a6e475f436895d314b5171007e7e4ee457c74b312fa7f0d1808d6221dc22b192700a93ea21c4e9e04689da7dde7e1f79e9569
Remove it in feerate. Fix it in the other places. Github-Pull: bitcoin#33236 Rebased-From: 966666d
Github-Pull: bitcoin#33261 Rebased-From: 509ffea
084c95a doc: update manual pages for v29.1 (fanquake) 37d115c build: bump version to v29.1 final (fanquake) b0d88bc doc: finalise release notes for 29.1 (fanquake) 99ab2e7 ci: return to using dash in CentOS job (fanquake) 6448ebb doc: Remove wrong and redundant doxygen tag (MarcoFalke) Pull request description: Backports: * bitcoin#33236 * bitcoin#33261 Since `rc2`, bitcoin#33212 was also backported in bitcoin#33251. ACKs for top commit: glozow: ACK 084c95a willcl-ark: ACK 084c95a Tree-SHA512: 0698e5b2d12f7328bf5af8dbbd92b0049de401c0a4af27fda2209f9aab35d827c5ac65eb9268aa1fae241e3adf0d3dd89324bb288655ead8af2b5584aae1f6d2
Bitcoin Core 29.1 final Tree-SHA512: 0698e5b2d12f7328bf5af8dbbd92b0049de401c0a4af27fda2209f9aab35d827c5ac65eb9268aa1fae241e3adf0d3dd89324bb288655ead8af2b5584aae1f6d2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Remaining commits with merge conflicts resolved.