Mempool and policy

PRPriorityReviewabilityReviewsAgreementSize
(+)#36182 ismaelsadeeq fees: return `block_policy` fee rate estimate when `mempool_policy` is not ready
  • Keep fee estimates working after node restarts when mempool data is still unready
  • Prevent transactions from underbidding fees due to premature floor estimates during high-fee periods
P2 · bug fix
  • P2 because it fixes fee estimation outages and underbidding after node restarts
  • Directly benefits wallet users and downstream L2 projects relying on smart fee estimation
Ready
  • Ready to review now
0 (+1)Strong
  • Broad consensus that falling back to block policy makes sense (achow101, instagibbs)
  • Downstream L2 projects actively hit estimation failures after restarts (instagibbs)
  • Reviewed and verified without remaining concerns (polespinasa)
146 + 287 tests
  • 146 lines added or modified outside tests
  • 287 lines added or modified in tests
  • 87 lines removed in total
  • 8 files, 3 commits
(+)#35581 ismaelsadeeq node: add block template manager and track waitNext fee inflow
  • Avoid assembling full block templates on every tick just to check for mempool fee changes
  • Reduce lock contention and CPU load during block generation for mining pools and template consumers
  • Consolidate block creation and template state management into a unified interface
P3 · new feature
  • P3 because caching diagram chunks provides clean fee rate tracking hooks without holding the mempool lock
  • Does not alter mempool acceptance policy or core data structures
Review #35675 first
0
Strong
  • Strong support for incremental fee inflow tracking and architectural cleanup
  • Suggested splitting out the base manager into a dedicated preparatory PR (Sjors)
  • Concept approval praising incremental snapshot tracking and bug discovery via fuzzing (pablomartin4btc)
  • Concept approval without stated reasons (w0xlt)
1,171 + 1,493 tests
  • 1,171 lines added or modified outside tests
  • 1,493 lines added or modified in tests
  • 587 lines removed in total
  • 51 files, 27 commits
(+)#36214 yuvicc test: cover cluster limits during reorgs
  • Cover cluster mempool trimming behavior when chain reorganizations resurrect transactions
  • Verifies that oversized clusters from reconnected mempool children are brought back within limits
P3 · test coverage
  • P3 because it adds dedicated test coverage for cluster mempool reorg dynamics
  • Verifies cluster invariants hold when block disconnects produce oversized clusters
Ready
  • Ready to review as a self-contained functional test addition
0
  • No review verdicts recorded
Neutral
  • Neutral sentiment with no formal ACKs posted yet
  • Questioned redundancy with existing graph tests (instagibbs)
  • Clarified novel trimming coverage when reconnected children exceed limits (yuvicc)
0 + 233 tests
  • 0 lines added or modified outside tests
  • 233 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#36122 fjahr BIP460: CISA for Taproot key path spends
  • Cut transaction fees and witness size by aggregating signatures across multiple inputs.
  • Encourage collaborative transactions like Payjoin and CoinJoin by removing per-input signature overhead.
P3 · new feature
  • P3 because standardness rules allow relaying aggregated transactions on test networks
  • The policy changes are limited to defining standardness constraints for witness version 2 spends
Needs rebase
  • Wait for a rebase to resolve merge conflicts.
  • Author noted this is a draft reference implementation not yet intended for upstream merge.
0
  • No review verdicts recorded
Mild
  • Commended consensus and policy test coverage after running local tests (BarneyChambers)
  • Reported three bugs in wallet signing and PSBT aggregation that break completion states (BarneyChambers)
  • Author has not yet replied to the reported wallet issues
7,784 + 3,504 tests
  • 7,784 lines added or modified outside tests
  • 3,504 lines added or modified in tests
  • 488 lines removed in total
  • 133 files, 22 commits
(+)#29843 ajtowns policy: Allow non-standard scripts with -acceptnonstdtxn=1 (test nets only)
  • Allow transactions with non-standard scripts into the mempool on test networks using -acceptnonstdtxn=1
  • Let developers test proposed soft forks on testnets without having to maintain custom node forks
P3 · new feature
  • P3 because it adds a useful developer feature to test non-standard scripts without off-tree patches
  • Confined to test networks and does not fix a bug or affect mainnet behavior
Ready
  • Reviewable now; CI is passing and open review feedback is a minor design question rather than a rework
0Mild
  • Broad concept and approach support for enabling soft-fork testing on test networks
  • Helpful for experimenting with future soft-fork features on test networks (benthecarman)
  • Concept approval without stated reasons (1440000bytes, glozow, fjahr)
  • Nonblocking objection: goes beyond historical Knots behavior and should use another value (luke-jr)
  • Questioned whether a compile-time wrapper could be replaced with a unit test (sedited)
104 + 45 tests
  • 104 lines added or modified outside tests
  • 45 lines added or modified in tests
  • 55 lines removed in total
  • 6 files, 5 commits
(+)#35286 instagibbs rpc: add testsubmitpackage for 1p1c test submissions
  • Let wallets and second-layer apps dry-run transaction packages before broadcasting them
  • Helps callers test whether fee bumping or package RBF will succeed and see predicted replacements
P3 · new feature
  • P3 because dry-run package checks hook into validation without altering live mempool policies
  • Impact is limited to evaluating package feerates and sibling evictions without modifying state
Needs rebase
  • Needs rebase due to merge conflicts with master
  • Author paused work to assess external user demand before iterating further
0
Mild
  • Concept supported for dry-running package submissions (ismaelsadeeq, w0xlt)
  • User demand should be explicitly confirmed before deciding to maintain the endpoint (dergoegge)
  • Paused work to seek user buy-in and noted 1p1c rules may not fit LN parent transactions (instagibbs)
269 + 688 tests
  • 269 lines added or modified outside tests
  • 688 lines added or modified in tests
  • 64 lines removed in total
  • 7 files, 1 commits
(+)#35026 javierpmateos mempool: recalculate stale BIP68 lockpoints with mempool parents in removeForReorg
  • Keep valid transactions with BIP68 relative locktimes in the mempool during chain reorganizations
  • Prevent false eviction of valid unconfirmed transaction chains when the chain tip changes
P3 · bug fix
  • P2 because valid transactions and their descendants are erroneously dropped during chain reorganizations
  • It restores relay reliability across chain tip adjustments and block invalidations
Ready
  • Ready for review
  • Previous review concerns around mixed inputs and time-based locks have been addressed
1 (+1)
Strong
  • Strong consensus on recalculating lockpoints whenever cached checks fail
  • Suggested recalculating on cache failure and approved the fix (ismaelsadeeq)
  • Co-developed deterministic mocktime tests and approved the fix (Bicaru20)
  • Verified regression reproduction on unpatched master (Bortlesboat)
1 + 136 tests
  • 1 lines added or modified outside tests
  • 136 lines added or modified in tests
  • 5 lines removed in total
  • 3 files, 1 commits
(+)#35793 darosior Implement BIP 54 (Consensus Cleanup) without mainnet activation
  • Protect the network against known consensus attacks including timewarp exploits and Merkle tree collisions
  • Prevent severe block validation delays caused by excessive legacy signature operations
P3 · new feature
  • P3 because it aligns mempool validation and standardness checks with BIP 54 rules, ensuring transactions that violate the 2500 legacy sigops threshold or the 64-byte size boundary cannot enter the mempool even with acceptnonstdtxn enabled.
Ready
  • Ready for review
  • Cleanly rebased on master with passing CI and all feedback addressed
0Strong
  • Broad concept support across contributors and maintainers
  • Concept approval without stated reasons (dergoegge, fanquake, theStack, hsjoberg, stickies-v)
  • Detailed review on sigops limits and timewarp mitigations with concerns addressed (ariard, polespinasa)
  • Collaborated on mining template enforcement merged in a prior PR (fjahr)
151 + 6,433 tests
  • 151 lines added or modified outside tests
  • 6,433 lines added or modified in tests
  • 123 lines removed in total
  • 39 files, 22 commits
(+)#35882 jeanpablojp test: cover Taproot standardness rules in mempool_accept
  • Assert exact reject reasons for nonstandard Taproot witness spends in mempool acceptance tests
  • Ensures transactions fail specifically with bad witness nonstandardness instead of generic RPC errors
P3 · test coverage
  • P4 because it narrowly fills an assertion gap for already-enforced Taproot policy rules
  • Taproot standardness is already tested elsewhere and this change only pins the exact reject string
Ready
  • Ready for review
  • Small self-contained test addition with passing CI
0
  • No review verdicts recorded
Crickets
  • No reviews or comments yet
0 + 24 tests
  • 0 lines added or modified outside tests
  • 24 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#35923 l0rinc mempool: count unbroadcast txids in memory usage
  • Include unbroadcast transactions in mempool memory calculations
  • Prevents slightly undercounting memory against limits for locally submitted transactions
P4 · bug fix
  • P4 because the undercounted memory footprint is negligible compared to overall mempool usage
  • It only affects locally submitted transactions awaiting their first broadcast
Ready
  • Ready to review with clean CI and no pending changes
1Strong
  • Strong support with no objections
  • Verified by testing memory usage and confirming test fails without fix (jeanpablojp)
1 + 17 tests
  • 1 lines added or modified outside tests
  • 17 lines added or modified in tests
  • 1 lines removed in total
  • 2 files, 2 commits
Reviewability: ReadyStalePaused
Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets
Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs.
Size: lines added or modified outside tests, then in tests; greener = smaller.
Ranking pass (2026-09-17): all PRs here were compared with each other; 4 notes on review order, overlaps, and band changes.

Covers

Which unconfirmed transactions the node accepts, keeps, and relays: standardness and policy rules, replacement rules, package acceptance and relay, mempool data structures and limits, eviction, fee estimation, and the cluster mempool project. The Mempool and TX fees and policy labels are a strong prior.

Not mempool: consensus validity (validation); block template construction (mining); the p2p messages that carry transactions (p2p).

What matters here

Denial-of-service and pinning resistance first: policy is the node's defense against transactions designed to waste resources or to block legitimate replacements, and second-layer protocols depend on it. Then correctness of acceptance and replacement rules against their stated specifications, since wallets and Lightning implementations build on them. Then progress on the cluster mempool project and the improvements it unblocks. Then fee estimation accuracy, which every wallet user feels. Then memory and CPU behavior under load.

Policy changes with a written rationale and downstream demand rank above local tidy-ups.

generated 2026-09-17 21:55 UTC