I was testing Bitcoin Core 31.0 to see if I could make chains of unconfirmed transactions longer than 25. Release notes say:
The mempool no longer enforces ancestor or descendant size/count limits. Instead, two new default policy limits are introduced governing connected components, or clusters, in the mempool, limiting clusters to 64 transactions and up to 101 kB in virtual size. Transactions are considered to be in the same cluster if they are connected to each other via any combination of parent/child relationships in the mempool. These limits can be overridden using command-line arguments; see the extended help (-help-debug) for more information.
Does this only hold for transactions being relayed to my node, and not for transactions my wallet creates? Does the wallet still enforce the 25 txn limit during a transition period until the new mempool policy is more widespread?
The following script on a newly started Bitocoin Core 31.0 regtest node fails on the last command:
bitcoin-cli getnetworkinfo
bitcoin-cli createwallet miner
ADDR=`bitcoin-cli getnewaddress`
bitcoin-cli generatetoaddress 101 $ADDR
# 1 confirmed UTXO
for i in `seq 0 24`; do
bitcoin-cli sendtoaddress $ADDR 1
done
# We now have a chain of 25 unconfirmed txs
# I expected adding one more would work on bitcoin core 31.0
bitcoin-cli sendtoaddress $ADDR 1
Output looks something like this:
{
"version": 310000,
"subversion": "/Satoshi:31.0.0/",
...
61000fa3b63cba73ed407258ec8b814c07dd4b5c32e2f89c34ca32716f6338c1
69644eea749b113a97d0b140511486e2d4acf63cc713078f7180d637849f883c
8b282b62858ae5fa75983739e4981db77734ff873a7cc759bd51e7ddee93d6c6
error code: -6
error message:
Unconfirmed UTXOs are available, but spending them creates a chain of transactions that will be rejected by the mempool










