Mining: ranking notes

Category notes

No PR here threatens template validity or fund safety, so the band distribution is deliberately top-light: one P1 (a concrete data race in the live IPC mining interface), four P2 interface/performance projects driven by Stratum v2 needs, and a long P3 tail of genuine but deferrable fixes, tooling and tests. Two items whose benefit is explicitly acknowledged as theoretical or worth a negligible fraction of a block's fees sit at P4.

Review order and overlapping PRs

  • Chain: #35581 introduces BlockTemplateManager; #33922 (getMemoryLoad), #36356 (gbt cache) and #36357 (BlockAssembler statics) all depend on that structure. Review #35581 first or the later three will need rebasing.
  • Chain: #36357 is explicitly based on #36356; #36356 must be reviewed/merged first even though #36357 carries the user-visible getmininginfo fix.
  • #35598 was extracted from #33922 and only tests behaviour that PR's work exercises; review it alongside or after #33922 rather than standalone.
  • #35300 (deprecating capnp ordinals on submitBlock/submitSolution) and #36097 (replacing interrupt methods with cancellation arguments) both reshape the Mining capnp interface; their ordinal/signature changes will collide and should be sequenced deliberately. #35300 also overlaps #36525, which touches submitSolution's template locking.
  • #36132 and #36156 are both small BlockAssembler/lookup edge-case adjustments with near-zero production effect; they can be reviewed together and should not displace the correctness fixes above them.

Band and position changes

  • #36525: P2 alone, P1 after comparison. Raised to P1: the only PR fixing a concrete reported data race (#36515) in the interface external miners already use; leaving it at P2 with the feature PRs would flatten a correctness bug into the same level as enhancements.
  • #35581: Root of the BlockTemplateManager chain (#33922, #36356, #36357 build on it) as well as a measurable CPU/lock-contention win for template polling.
  • #36047: Moved up: it is the only fix for a user-reported failure (#34262) miners hit in normal operation, so it leads the P3 block ahead of tooling and refactors.
  • #36367: Moved up: signed-overflow UB that silently drops prioritised transactions from templates is a template-correctness issue, ranking above cleanups and tests despite the unrealistic trigger.
  • #36356: Moved up: it is the declared base of #36357, so reviewing it first is what makes the user-visible getmininginfo fix mergeable.
  • #30437: Moved down: developer-facing tooling ranks last in this category's ordering, below the behavioural fixes it now sits behind.
  • #36132: P3 alone, P4 after comparison. Lowered to P4: reviewers confirm the no-mempool lookup path is unreachable in production, making it a contract-consistency tidy-up on par with #36451 rather than a real bug fix.

About

This pass by claude-opus-5 on 2026-11-01 saw every PR in the category at once and checked the bands given to each PR alone against each other, ordered the PRs, and noted chains and overlaps. Back to the category.