mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-05-26 13:53:50 +02:00
6b605b91c1[fuzz] Add MiniMiner target + diff fuzz against BlockAssembler (glozow)3f3f2d59ea[unit test] GatherClusters and MiniMiner unit tests (glozow)59afcc8354Implement Mini version of BlockAssembler to calculate mining scores (glozow)56484f0fdc[mempool] find connected mempool entries with GatherClusters(…) (glozow) Pull request description: Implement Mini version of BlockAssembler to calculate mining scores Run the mining algorithm on a subset of the mempool, only disturbing the mempool to copy out fee information for relevant entries. Intended to be used by wallet to calculate amounts needed for fee-bumping unconfirmed transactions. From comments of sipa and glozow below: > > In what way does the code added here differ from the real block assembly code? > > * Only operates on the relevant transactions rather than full mempool > * Has the ability to remove transactions that will be replaced so they don't impact their ancestors > * Does not hold mempool lock outside of the constructor, makes copies of the entries it needs instead (though I'm not sure if this has an effect in practice) > * Doesn't do the sanity checks like keeping weight within max block weight and `IsFinalTx()` > * After the block template is built, additionally calculates fees to bump remaining ancestor packages to target feerate ACKs for top commit: achow101: ACK6b605b91c1Xekyo: > ACK [6b605b9](6b605b91c1) modulo `miniminer_overlap` test. furszy: ACK6b605b91modulo `miniminer_overlap` test. theStack: Code-review ACK6b605b91c1Tree-SHA512: f86a8b4ae0506858a7b15d90f417ebceea5038b395c05c825e3796123ad3b6cb8a98ebb948521316802a4c6d60ebd7041093356b1e2c2922a06b3b96b3b8acb6