This tests the -blockreconstructionextratxn parameter and extra pool memory (ring buffer) behavior used specifically for compact block reconstruction. The “extra transaction pool” stores transactions that were rejected from the mempool for policy reasons (dust, low fees, non-standard scripts), txs replaced via rbf, etc…
There is no test coverage for this. (no unit tests either as the code being tested - in PeerManagerImpl - isn’t publicly accessible in the net_processing.h file)
The code being tested is in src/net_processing.cpp - look for vExtraTxnForCompact, AddToCompactExtraTransactions and -blockreconstructionextratxn start arg.
This tests
Policy-rejected transactions are stored in the extra pool: Transactions rejected for being dust, having low fees, or using non-standard scripts are kept in the extra pool Pool capacity limits work correctly: Tests various pool sizes (0, 1, 50, 400, 100000). Default is 100. Eviction behavior: When the extra pool is full, the oldest transactions are evicted (FIFO) Wraparound behavior: The extra pool correctly wraps around when adding new transactions Compact block reconstruction: These extra transactions are actually used during block reconstruction
Uses policy rejected transactions to populate the extra pool for tests.