mempool: add reduced-data ignore-reject to relay grandfathered spends#324
mempool: add reduced-data ignore-reject to relay grandfathered spends#324kwsantiago wants to merge 1 commit into
Conversation
|
ctACK 0233128 The complexity of this change exceeds my knowledge, so I can not do a human code review. I reviewed the code with Code Rabbit and it reported a single "nit" in "feature_reduced_data_utxo_height.py", lines 319-342: I tested using the following commands on Ubuntu 24.04 running on ARMv8-A (64-bit): git clone https://github.com/bitcoinknots/bitcoin.git pr324 cmake -B build cd build |
Follow-up to #322 (closed). The reduced-data relay rejection is intentional, but a miner should be able to opt into relaying/accepting spends of pre-activation ("grandfathered") UTXOs, which consensus already exempts in ConnectBlock.
Adds a "reduced-data" ignore_rejects token (usable via sendrawtransaction/testmempoolaccept). Default behavior is unchanged: those spends stay rejected at relay. When the token is set, inputs spending pre-activation UTXOs are exempted per-input in both mempool script checks (Policy and Consensus), matching ConnectBlock so the two checks stay consistent. Non-grandfathered spends stay rejected even with the token, since they are genuinely reduced-data-invalid.
Test: feature_reduced_data_utxo_height.py adds a case where the grandfathered OP_IF-tapscript spend is rejected by default, accepted with the token, and a non-grandfathered spend is still rejected with the token.