Built on top of #33415
Includes backports of
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33476.
See the guideline for information on the review process. A summary of reviews will appear here.
37 To avoid unintentional tx dependencies, the mempool filling txs are created with a
38 tagged ephemeral miniwallet instance.
39 """
40 test_framework.log.info("Fill the mempool until eviction is triggered and the mempoolminfee rises")
41 txouts = gen_return_txouts()
42+<<<<<<< HEAD
Github-Pull: #33106
Rebased-From: e5f896bb1f052fb8c7811c6024cb49143b427512
Github-Pull: #33106
Rebased-From: 85f498893f54ea7d84f2bdf12aa35d198edf8a72
Github-Pull: #33106
Rebased-From: 72dc18467dbfc16cdbda2dd109b087243b397799
Github-Pull: #33106
Rebased-From: 1fbee5d7b61b83e68e4230c8a97ca308de92c4c3
Github-Pull: #33106
Rebased-From: d6213d6aa114aeed6804a585491d741386fd2739
The padding method used matches the one used in MiniWallet,
`MiniWallet._bulk_tx`.
Github-Pull: #30784
Rebased-From: ed7d2246661ec1789b7db0f21668270f0681ea4a
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: #33106
Rebased-From: 5f2df0ef78be7b24798d0983c9b962740608f1f4
This is needed for the next commit
Github-Pull: #30948
Rebased-From: fa48be6f0233cfbd5c1eab7b832c913912062fa5
Also disable the function, when it is not needed.
Github-Pull: #30948
Rebased-From: faf801515f8fcd11a3454105cab66c38f6f240fe
Github-Pull: #33106
Rebased-From: 3eab8b724044dc321f70e5eed66b149713158a04
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: #33106
Rebased-From: 457cfb61b5323a13218b3cfb5a6a6d8b3a7c5f7f
Github-Pull: #33106
Rebased-From: 2e515d2897eaa5a9b012eb78aef105e1cf80d42b
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: #33106
Rebased-From: 6da5de58cabc4133c379baa50845e30e5bc6b3e4
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 #26606 easier and to also possibly
improve our functional tests for the BDB parser by comparing with
an alternative implementation.
Github-Pull: #30125
Rebased-From: 01ddd9f646a5329a92341bb216f3757fa97c0709
Github-Pull: #30125
Rebased-From: d45eb3964f693eddcf96f1e4083cf19d327be989