Files
bitcoin/src
merge-script c9ab10910c Merge bitcoin/bitcoin#31444: cluster mempool: add txgraph diagrams/mining/eviction
8673e8f019 txgraph: Special-case singletons in chunk index (optimization) (Pieter Wuille)
abdd9d35a3 txgraph: Skipping end of cluster has no impact (optimization) (Pieter Wuille)
604acc2c28 txgraph: Reuse discarded chunkindex entries (optimization) (Pieter Wuille)
c734081454 txgraph: Introduce TxGraph::GetWorstMainChunk (feature) (Pieter Wuille)
394dbe2142 txgraph: Introduce BlockBuilder interface (feature) (Pieter Wuille)
883df3648e txgraph: Generalize GetClusterRefs to support subsections (preparation) (Pieter Wuille)
c28a602e00 txgraph: Introduce TxGraphImpl observer tracking (preparation) (Pieter Wuille)
9095d8ac1c txgraph: Maintain chunk index (preparation) (Pieter Wuille)
87e74e1242 txgraph: abstract out transaction ordering (refactor) (Pieter Wuille)
2614fea17f txgraph: Add GetMainStagingDiagrams function (feature) (Pieter Wuille)

Pull request description:

  Part of cluster mempool: #30289.

  This adds more functionality to the txgraph module, specifically:
  * `TxGraph::GetMainStagingDiagrams()`, a function to obtain feerate diagrams for both the main graph and the staged changes to it, including only the clusters that differ between the two.
  * `TxGraph::GetBlockBuilder()`, a function to obtain an object which can efficiently iterate the chunks of the (main) graph from high to low chunk feerate, allowing each to be skipped or included.
  * `TxGraph::GetWorstMainChunk()`, a function to obtain the last chunk that would be returned by `GetBlockBuilder()`'s returned object, intended for eviction.

ACKs for top commit:
  monlovesmango:
    reACK 8673e8f019
  instagibbs:
    reACK 8673e8f019
  glozow:
    reACK 8673e8f019

Tree-SHA512: 5c98c54919c44eb2f9545dfc130e54dfc25b5b54d43cf5ca9bcf46e019b9fd405a572fcd70e71e2a7c5b4b096cfd540a4d09ef1f52ba188504418682f1dfc4af
2025-05-13 16:27:30 -04:00
..
2025-05-06 16:53:16 -07:00
2025-05-08 16:49:58 +01:00
2025-05-08 16:49:58 +01:00
2025-05-09 15:03:08 +02:00
2025-05-09 15:06:51 +02:00
2025-03-13 11:13:13 +00:00
2025-03-13 11:13:13 +00:00
2024-11-26 20:47:08 -05:00
2025-05-06 12:21:32 -07:00
2025-05-12 17:11:27 +01:00
2025-05-08 16:49:58 +01:00
2025-01-22 11:29:05 +01:00
2025-04-17 16:31:57 -07:00
2025-05-08 16:49:58 +01:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00
2025-04-09 15:59:59 +01:00
2025-04-09 15:59:59 +01:00