0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-23 12:33:26 -05:00
bitcoin-bitcoin-core/test/functional/test_framework
glozow 6b165f5906
Merge bitcoin/bitcoin#31384: mining: bugfix: Fix duplicate coinbase tx weight reservation
386eecff5f doc: add release notes (ismaelsadeeq)
3eaa0a3b66 miner: init: add `-blockreservedweight` startup option (ismaelsadeeq)
777434a2cd doc: rpc: improve `getmininginfo` help text (ismaelsadeeq)
c8acd4032d init: fail to start when `-blockmaxweight` exceeds `MAX_BLOCK_WEIGHT` (ismaelsadeeq)
5bb31633cc test: add `-blockmaxweight` startup option functional test (ismaelsadeeq)
2c7d90a6d6 miner: bugfix: fix duplicate weight reservation in block assembler (ismaelsadeeq)

Pull request description:

  * This PR attempts to fix the duplicate coinbase weight reservation issue we currently have.
  * Fixes #21950

  We reserve 4000 weight units for coinbase transaction in `DEFAULT_BLOCK_MAX_WEIGHT`

  7590e93bc7/src/policy/policy.h (L23)

  And also reserve additional `4000` weight units in the default `BlockCreationOptions` struct.

  7590e93bc7/src/node/types.h (L36-L40)

  **Motivation**

  - This issue was first noticed during a review here https://github.com/bitcoin/bitcoin/pull/11100#discussion_r136157411)
  - It was later reported in issue #21950.
  - I also came across the bug while writing a test for building the block template. I could not create a block template above `3,992,000` in the block assembler, and this was not documented anywhere. It took me a while to realize that we were reserving space for the coinbase transaction weight twice.

  ---
  This PR fixes this by consolidating the reservation to be in a single location in the codebase.

  This PR then adds a new startup option `-blockreservedweight` whose default is `8000` that can be used to lower or increase the block reserved weight for block header, txs count, coinbase tx.

ACKs for top commit:
  Sjors:
    ACK 386eecff5f
  fjahr:
    Code review ACK 386eecff5f
  glozow:
    utACK 386eecff5f, nonblocking nits. I do think the release notes should be clarified more
  pinheadmz:
    ACK 386eecff5f

Tree-SHA512: f27efa1da57947b7f4d42b9322b83d13afe73dd749dd9cac49360002824dd41c99a876a610554ac2d67bad7485020b9dcc423a8e6748fc79d6a10de6d4357d4c
2025-02-10 08:26:01 -05:00
..
crypto crypto: add NUMS_H const 2024-05-14 10:24:31 +02:00
__init__.py
address.py test: check that keyless P2A 'signing' via signrawtransactionwithkey succeeds 2024-08-02 20:13:07 +02:00
authproxy.py test: report failure during utf8 response decoding 2024-11-11 10:45:01 -05:00
bdb.py test: complete BDB parser (handle internal/overflow pages, support all page sizes) 2024-10-24 14:23:54 +02:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blockfilter.py Merge bitcoin/bitcoin#28605: Fix typos 2023-11-16 10:35:49 +00:00
blocktools.py test: check difficulty adjustment using alternate mainnet 2025-01-22 12:31:46 +01:00
coverage.py test: fix PEP484 no implicit optional argument types errors 2023-06-29 16:14:07 -06:00
descriptors.py
key.py test: Rename early key response test and move random_bitflip to util 2024-03-11 12:58:20 +05:30
mempool_util.py assert_mempool_contents: assert not duplicates expected 2024-11-20 13:49:41 -05:00
messages.py miner: init: add -blockreservedweight startup option 2025-02-04 11:53:11 -05:00
netutil.py test: avoid generating non-loopback traffic from p2p_seednode.py 2025-01-14 09:20:58 +01:00
p2p.py pass P2PTxInvStore init args to P2PInterface init 2025-01-29 18:05:16 -05:00
psbt.py test: PSBT: eliminate magic numbers for global unsigned tx key (0) 2023-03-04 12:43:38 +01:00
script.py test: Make leaf_script mandatory when scriptpath is set in TaprootSignatureMsg 2024-07-31 09:57:42 +02:00
script_util.py test: Add anchor mempool acceptance test 2024-07-30 14:06:58 -04:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
socks5.py test: Avoid F541 (f-string without any placeholders) 2024-12-05 08:39:09 +01:00
test_framework.py Merge bitcoin/bitcoin#31620: test: Remove --noshutdown flag, Tidy startup failures 2025-01-28 10:11:18 +00:00
test_node.py Merge bitcoin/bitcoin#31620: test: Remove --noshutdown flag, Tidy startup failures 2025-01-28 10:11:18 +00:00
test_shell.py test: fix TestShell initialization (late follow-up for #30463) 2024-08-25 20:57:22 +02:00
util.py qa: Limit -maxconnections in tests 2024-12-19 15:04:22 +00:00
v2_p2p.py test: Check that disconnection happens when >4095 garbage bytes is sent 2024-06-21 19:37:13 +05:30
wallet.py Merge bitcoin/bitcoin#30226: test: add validation for gettxout RPC response 2025-02-05 13:30:51 +00:00
wallet_util.py Fix typos in description.md and wallet_util.py 2024-04-25 16:14:10 +08:00