RPC / REST / ZMQ

PRPriorityReviewabilityReviewsAgreementSize
(+)#36187 hodlinator http: Restore requirement of IPv4 bind successP1 · bug fixReady0Strong57 + 71 tests
  • Prevent local cross-user RPC credential theft when another process occupies the default IPv4 loopback port
  • Require the default IPv4 loopback bind to succeed during startup before writing the RPC cookie
  • P1 because it resolves a security flaw where bitcoind fails open on partial endpoint binds
  • Prevents rogue local processes on IPv4 from capturing plaintext cookies sent by default CLI tools
  • Ready for review
  • Broad agreement on requiring an IPv4 listener since bitcoin-cli defaults to IPv4 (winterrdog)
  • Concept approval without extensive rationale (janb84, l0rinc, sedited)
  • Suggestions regarding error messaging and log levels were addressed or deferred without blocking
  • 57 lines added or modified outside tests
  • 71 lines added or modified in tests
  • 14 lines removed in total
  • 3 files, 4 commits
(+)#35837 MicSm rpc: fail scanblocks when block filter range is unavailableP1 · bug fixReady0Blocked22 + 59 tests
  • Stop scanblocks from silently omitting unindexed blocks and returning incomplete match results
  • Fail with an explicit error when reading block filters fails, alerting callers to incomplete scans
  • P1 because it prevents silent data gaps that cause callers to miss transactions in unindexed ranges
  • Eliminating misleading success responses prevents fund safety and correctness risks for filter users
  • Author needs to address open review objections regarding functional tests and error handling
  • Concept approval for preventing silent failures when reading block filters (maflcko, fjahr)
  • Unaddressed objection: functional test relies on races and mines excessive blocks (fjahr)
  • Questions whether to return partial results instead of erroring when a range is missing (fjahr)
  • Concern that checking index readiness at scan start may misclassify errors on long scans (fjahr)
  • 22 lines added or modified outside tests
  • 59 lines added or modified in tests
  • 13 lines removed in total
  • 2 files, 1 commits
(+)#36385 l0rinc rest: fix getutxos POST body decodingP1 · bug fixWaiting on author1Strong7 + 17 tests
  • Ensure POST requests to /rest/getutxos find valid outpoints instead of incorrectly reporting no hit
  • Align POST behavior with GET queries so REST clients get accurate UTXO results
  • Cap input vector allocation and reject trailing or malformed request bytes
  • P1 after comparing with the other PRs here (assessed alone as P2): Raised to P1: like #35837 it silently returns wrong data to existing callers (POST getutxos always misses), plus an unbounded allocation; same consequence class as the other P1 correctness bugs.
  • P2 because it fixes a correctness bug causing false negative UTXO results for REST clients
  • It prevents unbounded memory allocation on large declared outpoint counts
  • Ready to review
  • Substantive support with no open objections
  • Verified locally by reproducing the issue and confirming matching responses (Zeegaths)
  • Tested 14 POST bodies in binary and hex on regtest to confirm expected responses (fametrano)
  • Open suggestion to return HTTP 400 when a POST body contains no outpoints (fametrano)
  • 7 lines added or modified outside tests
  • 17 lines added or modified in tests
  • 11 lines removed in total
  • 2 files, 4 commits
(+)#36200 hodlinator rpc: invalid credentials can occupy every HTTP workerP2 · DoS protectionReady0Strong0 + 36 tests
  • Prevent unauthorized clients from tying up all HTTP RPC worker threads with invalid credentials
  • Stop denial of service against legitimate authenticated RPC callers
  • P2 because it fixes an easy resource exhaustion denial-of-service vector on the HTTP server
  • Prevents unauthenticated clients with network access from blocking legitimate RPC calls
  • Ready to review
  • Author moved the PR to draft to consider an alternative dedicated slow-reply thread design
  • No review verdicts recorded
  • Support because the worker exhaustion vector is cheap and easy to hit (willcl-ark)
  • Resolved objection: removing the sleep speeds up password guessing, but DoS risk is worse (willcl-ark)
  • 0 lines added or modified outside tests
  • 36 lines added or modified in tests
  • 6 lines removed in total
  • 2 files, 1 commits
(+)#36503 l0rinc rpc: reject AssumeUTXO rollback without tip dataP2 · bug fixWaiting on author0Strong1 + 18 tests
  • Prevent daemon crashes when requesting a snapshot rollback on a pruned assumeutxo node without tip data
  • Return a regular error instead of crashing when required block or undo data is missing
  • P2 because node crashes from assertion failures represent a severe reliability issue
  • Impact is confined to pruned assumeutxo nodes attempting rollbacks without required historical data
  • Ready to review
  • Concept approval for a contained fix preventing daemon assertion failures (musaHaruna)
  • Open suggestion to adjust boundary checks and cover non-pruned snapshot nodes (musaHaruna)
  • 1 lines added or modified outside tests
  • 18 lines added or modified in tests
  • 3 lines removed in total
  • 2 files, 2 commits
(+)#36434 pinheadmz http: support unix socketsP2 · user requestReady0Strong754 + 793 tests
  • Allow local RPC and REST connections and bitcoin-cli over UNIX domain sockets
  • Lets node operators manage access via filesystem permissions rather than IP allowlists
  • Eliminates TCP loopback overhead for local node communication
  • P2 because it fulfills a long-standing user request for UNIX domain socket RPC support
  • Provides filesystem-based access control and removes TCP loopback overhead for node operators
  • Ready to review
  • Approach approval citing clean design with socket variants and high user demand (winterrdog)
  • Concept approval without stated reasons (b-l-u-e)
  • Earlier concerns regarding socket file collisions and Host header regressions were fixed (b-l-u-e)
  • Open question on whether to support abstract namespace sockets in the future (winterrdog)
  • 754 lines added or modified outside tests
  • 793 lines added or modified in tests
  • 265 lines removed in total
  • 20 files, 10 commits
(+)#35286 instagibbs rpc: add testsubmitpackage for 1p1c test submissionsP2 · user requestReady0Strong287 + 716 tests
  • Allow wallets to test 1-parent-1-child package acceptance and RBF without modifying the mempool
  • Enable pre-flight checks for CPFP fee bumping where aggregate feerates or sibling eviction are required
  • P2 because it introduces the testsubmitpackage RPC to resolve an established gap for wallet developers
  • Fulfills a frequent feature request for pre-flight testing of CPFP packages without mutating mempool state
  • Ready to review
  • Concept approval citing the usefulness of dry-running 1p1c package acceptance for wallets (ismaelsadeeq)
  • Concept approval without stated reasons (w0xlt)
  • Suggests verifying downstream user demand before committing to maintain the new RPC (dergoegge)
  • Suggests splitting out the internal validation dry-run if RPC demand is not established (andrewtoth)
  • 287 lines added or modified outside tests
  • 716 lines added or modified in tests
  • 74 lines removed in total
  • 7 files, 2 commits
(+)#35728 maflcko rpc: Properly throw on internal I/O errors in GetTransactionP2 · bug fixReady1 (+5)Strong80 + 86 tests
  • Report disk read and index corruption errors explicitly instead of claiming transactions are missing
  • Alerts users and RPC callers to storage or index corruption instead of masking it as nonexistent data
  • P2 because RPC and REST endpoints misreport disk read failures as missing transactions
  • Callers receive accurate failure details rather than false negatives during storage problems
  • Ready to review
  • Strong support for distinguishing read failures from missing transactions (yuvicc, ryanofsky)
  • Verified by testing (musaHaruna)
  • Open question on design overlap with PR 34132 and release note wording (l0rinc)
  • 80 lines added or modified outside tests
  • 86 lines added or modified in tests
  • 44 lines removed in total
  • 7 files, 6 commits
(+)#36648 fametrano descriptor, rpc, wallet: do not echo key material in error messagesP2 · bug fixCI failing0 (+1)Positive32 + 131 tests
  • Prevent private keys and key material from leaking into error messages
  • Keep secret data out of application logs, error reporters, and screenshots when descriptor parsing fails
  • P2 because it stops sensitive key material from leaking into RPC error responses
  • Prevents private keys from being exposed in caller logs and error reports
  • Check whether the CI failure is from this PR before deep review
  • Support without stated reasons (jpk68)
  • Author addressed concerns about error clarity and key indexing, awaiting follow-up (uqlidi)
  • 32 lines added or modified outside tests
  • 131 lines added or modified in tests
  • 62 lines removed in total
  • 11 files, 1 commits
(+)#36629 andrewtoth Add output script index and corresponding script history RPCP2 · user requestReady1Strong1,174 + 1,060 tests
  • Allow querying historical transactions by script or address without wallet imports
  • Avoid requiring external indexing stacks or Electrum servers to sync separate databases
  • P2 because it exposes a getscripthistory RPC repeatedly requested by downstream tooling
  • Allows querying transaction history and spends by script hash or descriptor window directly from the node
  • Ready to review
  • Strong support across reviewers, with one Tested ACK verifying fixes on the updated push (kravens)
  • Concept approval from multiple contributors (sedited, l0rinc, w0xlt, romanz, ViniciusCestarii, xyzconstant)
  • Earlier objections around disk read budgets and library boundaries are resolved (kravens)
  • Nonblocking suggestions remain open regarding mempool error handling and help text (ViniciusCestarii, kravens)
  • 1,174 lines added or modified outside tests
  • 1,060 lines added or modified in tests
  • 31 lines removed in total
  • 30 files, 5 commits
(+)#34534 fjahr rpc: Manual prune lock management (Take 2)P2 · new featureReady0 (+1)Strong171 + 238 tests
  • Allow users and external wallets to manually protect blocks from pruning on pruned nodes
  • Prevents blocks needed for rescans from being deleted while a wallet is unloaded or offline
  • P2 because it adds RPCs external wallets need to hold blocks on disk without disabling pruning
  • Enables wallets to build on pruned nodes without missing blocks during offline periods
  • Ready to review
  • Substantive support for enabling wallet rescans on pruned nodes (achow101, stickies-v)
  • Code approved across multiple revisions (sedited)
  • Concept approval with open questions on startup lock options and minor test cleanups (andrewtoth)
  • 171 lines added or modified outside tests
  • 238 lines added or modified in tests
  • 1 lines removed in total
  • 9 files, 6 commits
(+)#36566 andrewtoth private broadcast: wait synchronously for mempool acceptanceP2 · user requestWaiting on author0Blocked107 + 152 tests
  • Ensure transactions sent via private broadcast are accepted into the mempool before returning success
  • Prevent third-party wallet failures and unblock future private broadcast support in the wallet
  • P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 and moved up 17: it repairs a silent semantic break of sendrawtransaction for existing third-party callers and is a stated prerequisite for wallet private broadcast.
  • P3 because it allows callers to wait for mempool inclusion rather than returning immediately
  • It fixes broken assumptions for third-party wallets and services using sendrawtransaction
  • Ready to review
  • No review verdicts recorded
  • Unaddressed objection: synchronous waiting could cause wallet hangs leading to double payments (instagibbs)
  • Asks which third-party software currently requires synchronous mempool acceptance (instagibbs)
  • 107 lines added or modified outside tests
  • 152 lines added or modified in tests
  • 42 lines removed in total
  • 17 files, 4 commits
(+)#35281 ferminquant univalue: respect token end pointerP3 · bug fixReady0 (+1)Blocked31 + 3 tests
  • Prevent out-of-bounds reads when parsing JSON inputs that lack null termination
  • Avoid potential node crashes when processing truncated or bounded JSON requests
  • P3 because it hardens RPC parsing against out-of-bounds reads on truncated input
  • RPC inputs are typically null-terminated in practice making this a preventative hardening fix
  • Ranking pass: Moved up 8: out-of-bounds reads in the JSON tokenizer used by every RPC request is the most security-adjacent item left in P3.
  • Ready for review
  • Unaddressed objection: tests fail to properly isolate bounded inputs with trailing data (maflcko)
  • Concept approval because it fixes two separate out-of-bounds reads (sedited)
  • Verified by testing added coverage for fractions and exponents (carloantinarella)
  • 31 lines added or modified outside tests
  • 3 lines added or modified in tests
  • 30 lines removed in total
  • 10 files, 1 commits
(+)#36204 janb84 http: disconnect clients that never finish a requestP3 · DoS protectionNeeds rebase0Mild67 + 183 tests
  • Disconnect HTTP clients that trickle bytes without completing requests, preventing connection slot exhaustion
  • Ensure legitimate RPC clients can always connect even if slow clients occupy sockets
  • P3 because it improves robustness against DoS rather than fixing an urgent remote vulnerability
  • RPC binds to localhost by default, limiting the exposure to local exhaustion
  • Needs mechanical rebase due to conflicts with master, but the logic is ready to review
  • Concept approval because it mitigates slow-loris attacks and invalid automated bug reports (pinheadmz)
  • Concept approval and praised test cleanup (hodlinator)
  • Unaddressed objection: test assertion allows duration under RPCSERVERTIMEOUT, masking premature closes (hodlinator)
  • 67 lines added or modified outside tests
  • 183 lines added or modified in tests
  • 12 lines removed in total
  • 4 files, 2 commits
(+)#35902 chriszeng1010 zmq: Log bind error at Error level, abort startup on init errorP3 · bug fixWaiting on author0Mild70 + 43 tests
  • Prevent node operators from running unaware that ZMQ notifications failed to start
  • Abort startup with an explicit error when configured ZMQ sockets fail to bind or initialize
  • P3 because node operators avoid running unaware that configured ZMQ notifications are disabled
  • Configuration mistakes and port conflicts are caught immediately at startup rather than swallowed
  • Ranking pass: Moved up 7: silently disabled ZMQ leaves downstream notification consumers blind, a bigger operational hazard than the other P3 diagnostics.
  • Ready for review
  • General agreement that ZMQ bind failures should abort startup loudly
  • Concept approval after testing with port conflicts and misconfigurations (pinheadmz)
  • Approach approval verified through broken-config startup tests (jeanpablojp)
  • Unaddressed objection: unnecessary intermediate helper function indirection, no author reply (pinheadmz)
  • 70 lines added or modified outside tests
  • 43 lines added or modified in tests
  • 44 lines removed in total
  • 9 files, 1 commits
(+)#35831 pablomartin4btc argsman, cli: Allow options after non-option arguments (GNU-style)P3 · user requestAuthor silent 80d1Positive103 + 182 tests
  • Parse command-line options that appear after commands or positional arguments
  • Prevent trailing options like -rpcwallet from being silently swallowed or misparsed
  • P3 because it brings standard GNU-style argument parsing to bitcoin-cli users
  • Avoids silent misrouting of commands when trailing flags are absorbed into positional arguments
  • Ready to review
  • Support without stated reasons (w0xlt)
  • Previous objections on parsing edge cases and bitcoin-tx handling were fixed (w0xlt, vicjuma)
  • 103 lines added or modified outside tests
  • 182 lines added or modified in tests
  • 38 lines removed in total
  • 7 files, 3 commits
(+)#36002 andrewtoth txindex: allow running in pruned modeP3 · new featureReady1Strong211 + 166 tests
  • Allow node operators to run txindex on pruned nodes without storing the full blockchain history
  • Enable looking up historical transactions and serving RPC requests on resource-constrained nodes
  • P3 because RPC and REST errors gain structured candidate block hashes for pruned lookups
  • Client applications can identify missing blocks and fetch them on demand via getblockfrompeer
  • Ready to review
  • Strong support for enabling txindex on pruned nodes
  • Full approval after checking edge cases and error handling (optout21)
  • Concept approval because it greatly improves pruned node capabilities (optout21, arejula27)
  • Concept approval noting disk usage tradeoffs (ajtowns)
  • Concept approval without stated reasons (l0rinc)
  • 211 lines added or modified outside tests
  • 166 lines added or modified in tests
  • 97 lines removed in total
  • 21 files, 7 commits
(+)#36332 achow101 sign: add musig2 data after validating musig2 involvementP3 · bug fixWaiting on author1Blocked20 + 48 tests
  • Prevent leaking unrelated MuSig2 keys and derivation paths into PSBTs when multiple descriptors are used
  • P3 because it fixes data correctness in PSBT RPC outputs when multiple descriptors are supplied
  • MuSig2 signing is an advanced workflow, making this bug fix lower priority than core RPC work
  • Ranking pass: Moved up 7: injecting unrelated key-origin metadata into shared PSBTs is a data-correctness and privacy leak, above the other PSBT polish items.
  • Reviewing now is worthwhile, though an inverted test assertion remains to be updated
  • Unaddressed objection: a functional test assertion is inverted (polespinasa)
  • Verified by testing across five descriptor variants (fametrano)
  • Concept approval with suggestions to optimize repeated key lookups (Bicaru20)
  • Suggested avoiding repeated participant pubkey lookups during signing (vicjuma)
  • 20 lines added or modified outside tests
  • 48 lines added or modified in tests
  • 18 lines removed in total
  • 2 files, 3 commits
(+)#36343 Bruce039 psbt: verify final scripts in FinalizePSBTP3 · bug fixReady1Strong13 + 28 tests
  • Stop finalizepsbt from reporting PSBTs complete when final scripts fail standard verification
  • Prevents generating invalid raw transactions that get rejected by the mempool
  • P3 because it fixes an edge case where finalizepsbt emitted invalid transaction hex
  • Aligns finalizepsbt with mempool rules and other PSBT verification entry points
  • Ranking pass: Moved up 7: finalizepsbt reporting complete with unusable hex misleads callers about a transaction's state.
  • Ready for review
  • Verified by testing bugfix on pkh, sh-wpkh, wpkh, and taproot inputs (fametrano)
  • Concept approval without stated reasons (l0rinc)
  • Suggestion to update analyzepsbt to report updater when verification fails (Bicaru20)
  • 13 lines added or modified outside tests
  • 28 lines added or modified in tests
  • 1 lines removed in total
  • 3 files, 2 commits
(+)#36567 Ravan002 psbt: drop Taproot and MuSig2 signatures when adding an inputP3 · bug fixReady2Strong4 + 14 tests
  • Drop invalid Taproot and MuSig2 signatures when an input is added to a PSBT
  • Prevent operations like joinpsbts from emitting transactions carrying stale signatures
  • P3 because it fixes stale Taproot and MuSig2 signature retention in PSBT RPC tools like joinpsbts
  • Modifying input sets invalidates existing signatures, making this a minor correctness fix for PSBT flows
  • Ranking pass: Moved up 9: grouped with the other PSBT correctness fixes it duplicates review context with (#36343, #36332).
  • Ready to review
  • Concept support because it clears all signature fields and MuSig2 nonces as expected (fametrano)
  • Approval without stated reasons (jpk68)
  • Approval without stated rationale from an account with no prior project history (Yudis-bit)
  • 4 lines added or modified outside tests
  • 14 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 1 commits
(+)#36555 ja7ad rpc: return error when invalidateblock failsP3 · bug fixReady0Strong19 + 14 tests
  • Stops invalidateblock from reporting success when block disconnection fails and leaves a partial rollback
  • Explicitly rejects attempts to invalidate the genesis block with an invalid parameter error
  • P3 because invalidateblock is an administrative and testing tool rather than an everyday RPC method
  • Prevents callers from assuming a rollback succeeded when block disconnection actually failed
  • Ranking pass: Moved up 6: an RPC reporting success after a partial chain rollback is a false-success bug of the same class as the ones ranked just above.
  • Ready for review
  • No review verdicts recorded
  • Supports routing disconnection failures through state rather than reporting success (yusufyildiz34)
  • Suggests documenting partial rollback as a known limitation instead of adding regression code (l0rinc)
  • Requested simplifying tests and expanding the pull request description (l0rinc, pinheadmz)
  • 19 lines added or modified outside tests
  • 14 lines added or modified in tests
  • 4 lines removed in total
  • 6 files, 3 commits
(+)#35370 junbyjun1238 rpc: add key-origin modes to PSBT processing RPCsP3 · user requestWaiting on author0Blocked86 + 245 tests
  • Allow PSBT processing RPCs to explicitly add, preserve, or strip key-origin derivation metadata
  • Let participants in collaborative workflows sanitize sensitive derivation paths and xpubs before sharing
  • P3 because users get explicit modes to add, preserve, or strip derivation metadata in PSBT RPCs
  • Resolves unexpected retention of derivation paths and global xpubs when processing transactions
  • Ranking pass: Moved down 9: valuable privacy control, but it adds modes rather than fixing wrong output, so it sits below the P3 correctness fixes.
  • Author has been silent for 84 days
  • New reviews may wait a long time for an author response
  • Concept and approach approval for adding strip options to PSBT processing RPCs (willcl-ark, rkrux)
  • Unaddressed objection: strip mode breaks MuSig2 signing on PSBTs lacking key origins (fametrano)
  • Open question on whether participant pubkeys should also be stripped to avoid fingerprinting (fametrano)
  • 86 lines added or modified outside tests
  • 245 lines added or modified in tests
  • 10 lines removed in total
  • 9 files, 2 commits
(+)#36266 fjahr rpc: Let dumptxoutset fail early on stale targets and concurrent runsP3 · bug fixWaiting on author0Mild24 + 33 tests
  • Stop dumptxoutset from doing heavy UTXO copies and block disconnects before failing on stale targets
  • Prevent file corruption and prune-lock collisions by restricting dumptxoutset to a single running instance
  • P3 because it prevents file corruption and prune-lock collisions from concurrent dumptxoutset runs
  • It avoids expensive, wasteful UTXO set copies when rolling back to a stale block target
  • Ready to review
  • No review verdicts recorded
  • Unaddressed objection: a reorg before tip pinning still triggers a CHECK_NONFATAL failure (cyb3ralbert)
  • Waiting on author reply regarding revalidation against the pinned tip (cyb3ralbert)
  • 24 lines added or modified outside tests
  • 33 lines added or modified in tests
  • 12 lines removed in total
  • 2 files, 2 commits
(+)#34038 ajtowns logging: replace -loglevel with -trace, expose trace logging via RPCP3 · new featureReady0 (+2) -1Disputed172 + 94 tests
  • Fix silent failures when configuring trace logging and let node operators manage trace logs via RPC
  • P3 because it enables runtime inspection and toggling of trace-level logging via an administrative RPC
  • P3 because changing the return schema needs scrutiny but affects an admin rather than high-traffic endpoint
  • Ranking pass: Moved down 12: competing with #35387 on the same problem and admin-only in scope, so it ranks below the correctness fixes despite unblocking #35355.
  • Ready to review
  • Approach objection: three interacting flags are confusing and break RPC compatibility (ryanofsky)
  • Approach objection: setting trace as default while keeping specific categories at debug is impossible (ryanofsky)
  • Prefers alternative proposal in #35387 with unified -loglevel handling (ryanofsky)
  • Supports parallel flags as an easier startup interface despite unwieldy RPC interactions (stickies-v)
  • Tested and supports parallel flag design (sedited)
  • 172 lines added or modified outside tests
  • 94 lines added or modified in tests
  • 133 lines removed in total
  • 16 files, 3 commits
(+)#36212 LittleYier cli: Display warning arrays in -getinfoP3 · bug fixReady0Strong4 + 11 tests
  • Display active network warnings in -getinfo when warnings are returned as an array
  • CLI users currently see no warnings even when active network warnings exist
  • P3 because -getinfo is a convenience display rather than a programmatic RPC interface
  • Restores visibility into active network warnings for CLI operators but remains deferrable
  • Ranking pass: Moved down 8: real bug but confined to the -getinfo convenience display.
  • Ready for review
  • Concept approval and thanks for catching the issue (stickies-v)
  • Suggestions open on layout formatting, type checking, and reducing test scope (stickies-v)
  • Question on whether the author is still working on the pull request (sedited)
  • 4 lines added or modified outside tests
  • 11 lines added or modified in tests
  • 6 lines removed in total
  • 2 files, 2 commits
(+)#36642 fametrano rpc: reset id and version per batch elementP3 · bug fixReady0 (+1)Strong5 + 14 tests
  • Ensure malformed items in an RPC batch return proper errors instead of reusing the preceding request ID
  • Prevent dropped error responses when a malformed batch item follows a JSON-RPC notification
  • P3 because it fixes batch response error handling for malformed requests
  • Affects only invalid non-object batch payloads and is reasonably deferrable
  • Ready to review
  • Substantive support with no open objections
  • Fixes JSON-RPC specification compliance for batch responses expecting unique IDs (pinheadmz)
  • Verified by code review and testing (AndreaDiazCorreia)
  • Earlier suggestions to clean up duplicate resets and simplify tests were addressed
  • 5 lines added or modified outside tests
  • 14 lines added or modified in tests
  • 2 lines removed in total
  • 2 files, 1 commits
(+)#36047 chriszeng1010 rpc: handle createNewBlock() returning nullptr during shutdownP3 · bug fixAuthor silent 73d0Crickets6 + 34 tests
  • Prevent false internal bug assertions when mining RPCs run during node shutdown
  • Return a standard shutdown error to mining RPC clients instead of an assertion failure
  • P3 because callers receive misleading assertion failures rather than standard shutdown error codes
  • Ensures predictable error handling for RPC clients when the node shuts down
  • Ranking pass: Moved up 12: spurious 'Internal bug detected' responses to mining clients at shutdown is a user-visible false error, not cosmetic.
  • Ready to review
  • No review verdicts recorded
  • No reviews or discussion yet
  • No substantive feedback either way
  • 6 lines added or modified outside tests
  • 34 lines added or modified in tests
  • 4 lines removed in total
  • 2 files, 1 commits
(+)#36366 Bruce039 net: limit relative ban times to uint32P3 · bug fixReady0 (+1)Strong6 + 25 tests
  • Prevent signed integer overflow and silent ban drops when users set very large relative ban durations
  • Reject excessive durations in setban and clamp the bantime startup setting to safe maximum limits
  • P3 because it fixes an overflow bug where extreme ban durations silently expire immediately
  • Avoids misleading success returns from setban while addressing a UBSan runtime failure
  • Ranking pass: Moved up 15: setban silently dropping bans while reporting success is a false-success bug like the others grouped here.
  • Review is worthwhile now with no blocking issues
  • Substantive support for clamping or rejecting values larger than realistic use cases (maflcko)
  • Author pushed a fix after startup failure was flagged for large bantime in settings.json (willcl-ark)
  • 6 lines added or modified outside tests
  • 25 lines added or modified in tests
  • 1 lines removed in total
  • 3 files, 1 commits
(+)#36259 azuchi http: update m_keep_alive under m_send_mutexP3 · bug fixReady0Strong12 + 144 tests
  • Prevent premature HTTP disconnects from dropping responses on pipelined requests
  • P3 because it fixes dropped responses during pipelined HTTP requests ending with close
  • The bug is a narrow race condition that is difficult to trigger in real workloads
  • Deferring the fix has minimal impact on overall RPC stability
  • Ranking pass: Moved up 13: dropped HTTP responses on pipelined requests is a genuine server-side correctness race, ahead of feature additions.
  • Reviewing now is worthwhile with nothing known that would invalidate it
  • Support for keeping state in sync to prevent premature disconnects (winterrdog)
  • Suggests delaying review because the bug is hard to hit in practice (winterrdog)
  • Concept approval noting low review priority (pinheadmz)
  • 12 lines added or modified outside tests
  • 144 lines added or modified in tests
  • 3 lines removed in total
  • 3 files, 1 commits
(+)#33741 polespinasa rpc: Optionally print feerates in sat/vbP3 · user requestCI failing0 (+1)Strong88 + 80 tests
  • Let node RPCs return fee rates directly in sat/vB instead of BTC/kvB
  • Saves downstream callers manual conversions and avoids rounding errors in sub-1 sat/vB environments
  • P3 because it improves ergonomics and avoids rounding issues for downstream applications
  • The utility to callers is clear, but it is an optional interface convenience rather than an urgent fix
  • Ranking pass: Moved down 10: clear ergonomic win, but an optional convenience field ranks below the interface correctness fixes above.
  • CI is failing so check whether the failure is caused by this PR before doing a deep review
  • Support for migrating fee rates to sat/vB in a backwards-compatible manner (musaHaruna)
  • Concept approvals without stated reasons (w0xlt, jonatack)
  • Open suggestion to use named parameters for the new arguments (maflcko)
  • Open suggestion to add a release note if shifting positional RPC arguments (willcl-ark)
  • 88 lines added or modified outside tests
  • 80 lines added or modified in tests
  • 68 lines removed in total
  • 10 files, 7 commits
(+)#31252 polespinasa rpc: print P2WSH and P2SH redem Script in getrawtransaction and getblockP3 · user requestReady0Strong114 + 255 tests
  • Let RPC and REST users directly inspect decoded redeem and witness scripts in transaction inputs
  • Eliminates the need to manually extract raw bytes and run separate script decoding calls
  • P3 because it resolves a long-standing usability gap for tools inspecting detailed transaction inputs
  • Saves external tooling from parsing raw byte pushes to interpret P2SH and SegWit scripts
  • Ranking pass: Moved down 12: additive output field with tooling demand, but no existing caller is broken today.
  • Ready to review
  • Substantive concept approval with detailed implementation review (sedited)
  • Concept approval without stated reasons (murchandamus)
  • Prior objections on script detection and naming were resolved (luke-jr, naiyoma, sedited)
  • 114 lines added or modified outside tests
  • 255 lines added or modified in tests
  • 5 lines removed in total
  • 10 files, 5 commits
(+)#35909 davidgumberg rest: Allow fetching stale headerP3 · user requestWaiting on author1Mild76 + 58 tests
  • Allow REST clients to retrieve block headers from stale branches
  • Enables tracing chain reorganizations without having to fall back to the getblockheader RPC
  • P3 because it closes an interface gap by bringing REST to parity with the getblockheader RPC
  • Directly benefits tools like fork-observer when following reorgs without requiring RPC access
  • Ranking pass: Moved down 9: REST/RPC parity gap with a named consumer, still an additive feature.
  • Ready to review
  • Broad concept support for exposing stale headers via REST
  • Tested and prefers query parameters over maintaining a new endpoint (jeanpablojp)
  • Unaddressed suggestion to use a dedicated endpoint instead of query parameters (0xB10C)
  • Concept approval without stated reasons (sedited, w0xlt)
  • 76 lines added or modified outside tests
  • 58 lines added or modified in tests
  • 28 lines removed in total
  • 6 files, 3 commits
(+)#36005 pythcoiner rpc, descriptor: warn when multipath expansion clones single-path key expressionsP3 · new featureNeeds rebase1Strong57 + 88 tests
  • Warn users when multipath descriptor expansion duplicates single-path keys across branches
  • Prevent unintended key reuse and address clustering between receive and change outputs
  • Expose descriptor warnings during inspection rather than waiting until wallet import
  • P3 because it surfaces descriptor warnings during inspection rather than waiting for wallet import
  • Deduplicates warning messages across expanded paths for cleaner inspection output
  • Needs rebase due to conflicts with master, but the descriptor logic is ready to review
  • Verified by testing that deliberate code mutations fail the new unit and functional tests (jeanpablojp)
  • Suggested adding test coverage for multiple simultaneous warnings (jeanpablojp)
  • 57 lines added or modified outside tests
  • 88 lines added or modified in tests
  • 10 lines removed in total
  • 8 files, 4 commits
(+)#29418 vasild rpc: provide per message stats for global traffic via new field in 'getnettotals'P3 · user requestReady0 (+1)Strong354 + 150 tests
  • Expose cumulative message and byte statistics broken down by direction, network, and connection type
  • Allows node operators and researchers to monitor network bandwidth without continuously polling peer stats
  • P3 because it fulfills a user request by adding detailed message breakdowns to getnettotals
  • Saves node operators from having to poll and aggregate transient per-peer statistics
  • Ranking pass: Moved down 16: new aggregate statistics field with no evidence of a downstream consumer waiting on it beyond the originating issue.
  • Ready for review
  • Tested on node monitoring dashboards with positive feedback (waketraindev)
  • Support for exposing detailed message metrics with minimal RPC layer logic (stickies-v)
  • Objection to server-side aggregation resolved by dropping the aggregation commit (stickies-v)
  • Concept approval without detailed rationale (danielabrozzoni, epiccurious)
  • 354 lines added or modified outside tests
  • 150 lines added or modified in tests
  • 14 lines removed in total
  • 8 files, 3 commits
(+)#33904 kevkevinpal rest: add interface for gettxspendingprevout rpcP3 · new featureReady0Positive185 + 110 tests
  • Allow REST clients to query which transactions spend specific outputs without using JSON-RPC
  • P3 because it brings existing JSON-RPC spender queries to the unauthenticated REST interface
  • Benefits REST-only API consumers who previously had no way to look up spending transactions
  • Ready for review
  • Concept approval without stated reasons (sedited)
  • No open objections
  • 185 lines added or modified outside tests
  • 110 lines added or modified in tests
  • 1 lines removed in total
  • 3 files, 2 commits
(+)#27260 portlandhodl Enhanced error messages for invalid network prefix during address parsing.P3 · user requestAuthor silent 68d0Mild221 + 369 tests
  • Give users clear, network-aware error messages when passing an address formatted for another network
  • Avoid confusing fallback errors like generic Base58 failures on valid Bech32 addresses
  • P3 because clearer diagnostic messages prevent user confusion when entering addresses for another network
  • Resolving confusing error messages helps users debug mistakes but does not fix an operational breakage
  • Ranking pass: Moved down 5: diagnostic message quality, below the additive fields that unblock tooling workarounds.
  • Ready to review now
  • Conflicts with master, but the rebase is mechanical
  • Broad concept support for making address decoding error messages more user friendly (Sjors, rkrux, jonatack)
  • Tested and confirmed improved address decoding errors (Sjors)
  • Unaddressed objection: bundling large refactors with behavior changes impedes review (l0rinc)
  • Open objections on std::string_view lifetime risks and redundant decoding passes (l0rinc)
  • 221 lines added or modified outside tests
  • 369 lines added or modified in tests
  • 352 lines removed in total
  • 11 files, 8 commits
(+)#36569 Ravan002 psbt: analyzepsbt reports an error when outputs exceed inputsP3 · bug fixWaiting on author2Strong5 + 8 tests
  • Stop analyzepsbt from reporting negative fees when outputs exceed known inputs
  • Return an error instead of advising unviable signing or updating steps
  • P3 because it fixes misleading RPC output for transactions that can never be validly mined
  • Corrects confusing negative fees and bad next-role advice once all input amounts are known
  • Ranking pass: Moved up 9: corrects misleading analyzepsbt output (negative fee, wrong next role) for an impossible transaction.
  • Ready for review
  • Verified fix on master and confirmed regression tests pass (Husteem)
  • Verified by testing on Windows (Yudis-bit)
  • Open suggestion to add a unit test in psbt_tests (Yudis-bit)
  • Questioned need for a unit test given functional test coverage (winterrdog)
  • 5 lines added or modified outside tests
  • 8 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 1 commits
(+)#36619 kriss39 rest: don't log an error for /spenttxouts on a block without undo dataP3 · bug fixReady2Positive6 + 8 tests
  • Prevent spurious error messages in debug.log when spent outputs are requested for blocks without undo data
  • Stops unauthenticated REST queries on pruned or side-branch blocks from spamming false disk corruption errors
  • P3 because it fixes spurious error logs that mimic disk corruption on normal 404 REST queries
  • Affects node operators querying spent transaction outputs on pruned or side-chain blocks
  • Ranking pass: Moved up 9: unauthenticated REST requests emitting fake disk-corruption errors misleads operators, slightly above pure interface hygiene.
  • Ready to review
  • Concept approval without stated reasons (stickies-v, maflcko)
  • Both reviewers re-ACKed after the author simplified the block status check (maflcko, stickies-v)
  • 6 lines added or modified outside tests
  • 8 lines added or modified in tests
  • 2 lines removed in total
  • 2 files, 1 commits
(+)#35433 rkrux wallet: deprecate replaceable argument from transaction (and psbt) creation (and modification) RPCsP3 · cleanupReady0Strong53 + 125 tests
  • Deprecate redundant replaceable parameters across raw transaction and wallet RPCs
  • Clean up interfaces after network transactions became replaceable by default
  • P3 because it deprecates redundant BIP 125 arguments across transaction creation RPCs
  • Provides standard API hygiene after full-RBF became default, but is deferrable cleanup
  • Ready to review
  • Author addressed feedback and pushed a rebase with updated tests
  • Concept approval for deprecating the arguments across RPCs (polespinasa)
  • Resolved objections on silent parameter omission and test coverage (polespinasa, achow101, w0xlt)
  • Author addressed all reviewer comments in the latest rebase
  • 53 lines added or modified outside tests
  • 125 lines added or modified in tests
  • 77 lines removed in total
  • 15 files, 7 commits
(+)#36488 maflcko rpc: wallet: Schedule mixed-case confTarget option deprecationP3 · cleanupReady1Strong13 + 5 tests
  • Deprecate the legacy mixed-case confTarget option in wallet bumpfee and psbtbumpfee RPCs
  • Require the -deprecatedrpc=confTarget flag to use it, preparing for removal next cycle
  • Eliminate naming inconsistencies and duplicate parameter handling alongside conf_target
  • P3 because it standardizes RPC parameter handling by gating an undocumented alias
  • P3 because it follows deprecation policy before full removal in the next cycle
  • Ranking pass: Moved up 5: same deprecation-discipline class as #35433 and should be reviewed alongside it.
  • Ready to review
  • Substantive support with no open objections (fametrano)
  • Verified on regtest with and without flag against a client library (fametrano)
  • Author declined suggestion to add functional tests for the deprecated option (maflcko)
  • 13 lines added or modified outside tests
  • 5 lines added or modified in tests
  • 1 lines removed in total
  • 4 files, 1 commits
(+)#33117 D33r-Gee Interfaces: Expose UTXO Snapshot Loading and Add Progress NotificationsP3 · cleanupReady0 (+1)Strong126 + 2 tests
  • Allow GUI frontends and multiprocess clients to initiate UTXO snapshot loading
  • Provide user progress feedback while snapshot coins are validated and populated
  • P3 because the RPC refactor primarily exists to provide test coverage for the new interface
  • Changes failure error codes to internal errors, which could affect external automation
  • Ranking pass: Moved down 8: the RPC-visible part is a refactor plus an error-code change; its payoff is in GUI drafts outside this category.
  • Ready to review
  • Strong support with no remaining objections after rebases and refactoring
  • Verified by testing mainnet snapshot loads with downstream GUI branches (pinheadmz, Sjors)
  • Resolved objection: passing file handles across IPC boundaries complicates separation (ryanofsky)
  • Resolved objection: signaling progress per coin would fire over 100 million times (pinheadmz)
  • 126 lines added or modified outside tests
  • 2 lines added or modified in tests
  • 21 lines removed in total
  • 10 files, 3 commits
(+)#36220 arejula27 rpc: report background validation progress in getchainstatesP3 · bug fixWaiting on author1 -1Blocked3 + 4 tests
  • Ensure getchainstates reports consistent background validation progress during assumeutxo sync
  • Matches progress values reported by getblockchaininfo relative to the snapshot base block
  • P3 because it fixes an internal RPC inconsistency when monitoring background chainstates in assumeutxo
  • Minor progress reporting discrepancy across RPCs that is worthwhile to clean up but deferrable
  • Ready to review
  • Unaddressed blocking objection: adds special cases instead of revisiting synchronization design (l0rinc)
  • Verified progress reporting matches getblockchaininfo on an assumeutxo node (musaHaruna)
  • Tested on assumeutxo (nervana21)
  • Support for accurate monitoring aligning with assumeutxo documentation (vicjuma)
  • Concept approval without stated reasons (sedited)
  • 3 lines added or modified outside tests
  • 4 lines added or modified in tests
  • 2 lines removed in total
  • 2 files, 2 commits
(+)#35387 ryanofsky logging: make trace logging easily usableP3 · new featureWaiting on author0Mild188 + 102 tests
  • Allow loglevel configuration standalone without requiring paired debug flags to take effect
  • Inspect and adjust category log levels at runtime via RPC without restarting the node
  • P3 because dynamic runtime log configuration adds useful node control
  • Lacks evidence of demand from external downstream consumers
  • Ranking pass: Moved up 5: same band and same problem as #34038, kept adjacent so the two approaches are compared, but second since #34038 has a dependent PR.
  • Author silent for 93 days, so reviews may wait a long time for a response
  • No review verdicts recorded
  • Support for an elegant approach and intuitive interface (stickies-v)
  • Nonblocking objection: maintaining two parallel active logging RPC methods adds maintenance burden (stickies-v)
  • Unaddressed question asking if breaking debug interactions was intended (cyb3ralbert)
  • 188 lines added or modified outside tests
  • 102 lines added or modified in tests
  • 41 lines removed in total
  • 11 files, 2 commits
(+)#32468 polespinasa rpc: generateblock to allow multiple outputsP3 · user requestReady0Strong131 + 134 tests
  • Allow developers to test blocks with multiple coinbase recipients and custom payout splits
  • Enable mining mempool transactions automatically in regtest without crafting raw blocks
  • P3 because it improves test-RPC flexibility by allowing multiple outputs and default mempool mining
  • Developers testing coinbase distributions avoid manually assembling custom transaction lists
  • Ranking pass: Moved down 15: regtest-only developer convenience with no external consumer.
  • Ready for review following an author rebase
  • No review verdicts recorded
  • Strong support for simulating protocols with multiple coinbase recipients (supertestnet)
  • Addressed objections against creating a separate RPC and modifying core miner logic (andrewtoth, maflcko)
  • Addressed objections on backwards compatibility and custom reward amounts (achow101, stickies-v)
  • 131 lines added or modified outside tests
  • 134 lines added or modified in tests
  • 55 lines removed in total
  • 15 files, 7 commits
(+)#31672 vasild rpc: add cpu_load to getpeerinfoP3 · new featureAuthor silent 186d1 (+1) -1Blocked159 + 1 tests
  • Help node operators identify resource-intensive or abusive peers
  • Track and expose message processing CPU usage per peer in getpeerinfo and -netinfo
  • Lay groundwork for future peer-prioritization and anti-DoS measures
  • P3 because exploratory peer monitoring metrics without external demand offer modest value
  • Provides diagnostic value during DoS investigation but remains marginal
  • Ranking pass: Moved down 14: exploratory per-peer metric, its own card calls the value marginal and no external demand is cited.
  • Author silent for 180 days; review may wait a long time for a response
  • Wide concept support for peer CPU tracking to combat DoS (jonatack, laanwj, mzumsande, hodlinator)
  • Verified in testing on signet IBD and -netinfo (jonatack, BrandonOdiwuor, yuvicc)
  • Unaddressed objection: metrics are non-actionable, flame graphs or wall time are better (ajtowns)
  • Nonblocking objection: exploratory metrics should not go into production getpeerinfo (sipa)
  • Suggested using a decaying average instead of connection-wide average (sipa)
  • 159 lines added or modified outside tests
  • 1 lines added or modified in tests
  • 4 lines removed in total
  • 8 files, 2 commits
(+)#36478 maflcko rpc: Check named args names and result field names at compile timeP3 · cleanupReady1Strong81 + 11 tests
  • Enforce naming conventions on RPC argument and result field names at compile time
  • Prevent developer confusion and bugs caused by malformed or non-standard RPC field names
  • P3 because it catches malformed RPC argument and result field names at compile time
  • Enforces consistent naming conventions across RPC declarations without runtime overhead
  • Ready to review
  • Strong support with substantive testing (fametrano)
  • Verified RPC help diffs, compile times, and compile-time rejection of invalid names (fametrano)
  • Author declined a suggestion to reject empty alias parts at compile time (fametrano)
  • 81 lines added or modified outside tests
  • 11 lines added or modified in tests
  • 43 lines removed in total
  • 9 files, 2 commits
(+)#36175 nervana21 rpc: Stamp `getblock` OpenRPC result discriminatorP3 · new featureReady1Strong43 + 11 tests
  • Map getblock verbosity parameter values to OpenRPC result schema branches machine-readably
  • Let typed client libraries generate distinct return types without hardcoding the verbosity mappings
  • P3 because it adds discriminator metadata to OpenRPC output for one RPC method
  • Benefit felt primarily by typed client generators that currently hardcode verbosity result mappings
  • Ranking pass: Moved down 9: metadata for one method, benefiting code generators only.
  • Ready to review
  • Support with no open objections
  • Favors approach over alternatives as simpler for the current use case (willcl-ark)
  • Concept approval without stated reasons (jeanpablojp)
  • 43 lines added or modified outside tests
  • 11 lines added or modified in tests
  • 5 lines removed in total
  • 4 files, 3 commits
(+)#36626 nebula-21 test: check `PSBT_GLOBAL_VERSION` validation on decodeP3 · test coverageReady0Positive0 + 16 tests
  • Catch regressions in PSBT decoding by testing unsupported version numbers and missing version fallbacks
  • Ensure decodepsbt rejects invalid global versions and correctly defaults omitted versions to version 0
  • P3 because it adds test coverage verifying decodepsbt rejects unsupported global PSBT versions
  • Modifying version limits or fallback checks previously triggered zero existing test failures
  • Ready to review as nothing known would invalidate a review now
  • Concept approval without stated reasons (Bicaru20)
  • Suggested combining tests, explicitly setting psbt_version=2, and adding coverage for version 1 (Bicaru20)
  • 0 lines added or modified outside tests
  • 16 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#35054 fjahr p2p: UTXO set sharingP4 · new featureWaiting on author0 -5Blocked943 + 771 tests
  • Distribute AssumeUTXO snapshots directly over the P2P network instead of requiring out-of-band downloads.
  • Reduces onboarding friction and avoids centralized distribution points for users wanting fast initial sync.
  • P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4 and moved down 16: within rpc its contribution is one new method with no external consumer asking; the substance belongs to p2p.
  • P3 because it adds a new downloadutxoset RPC to trigger snapshot fetching without breaking existing methods.
  • Needs rebase and CI is failing.
  • Author has been silent for 146 days.
  • Blocked by unaddressed objections while author has been silent (andrewtoth, narula, josibake, nkaretnikov)
  • Unaddressed objection: peer can cause immediate out-of-memory crash via data length field (andrewtoth)
  • Unaddressed objection: activation failure leaves download manager permanently stuck (andrewtoth)
  • Objections to dual chainstate complexity and unvalidated snapshots in P2P (l0rinc, stickies-v, evoskuil)
  • Tested snapshot download, activation, and background validation on mainnet demo node (svanstaa)
  • 943 lines added or modified outside tests
  • 771 lines added or modified in tests
  • 1 lines removed in total
  • 27 files, 13 commits
(+)#36384 maflcko rpc: Use self.Arg<_>(name) helper over manual and duplicate parsingP4 · cleanupReady0Positive73 + 2 tests
  • Eliminate redundant parameter parsing and duplicate default values across node and wallet RPC endpoints
  • Prevents drift between documented argument defaults and actual execution for maintainers
  • P4 because it is internal cleanup with no user-visible behavioral changes or bug fixes
  • Reduces boilerplate in RPC parameter extraction but provides modest maintenance value
  • Ready to review
  • Concept approval without stated reasons (fanquake)
  • No open objections
  • 73 lines added or modified outside tests
  • 2 lines added or modified in tests
  • 133 lines removed in total
  • 14 files, 4 commits
(+)#36613 aaron-leeb test: add getblockfilter test coverage for header-only blocksP4 · test coverageReady1Strong0 + 15 tests
  • Add test coverage for getblockfilter when querying blocks known only by header
  • Ensures the RPC returns the expected error when a block was never connected
  • P4 because it only closes a narrow test coverage gap for an RPC error branch
  • Exercises an untested condition without fixing an active functional bug or regression
  • Ready to review
  • Substantive support with no open objections
  • Verified test passes and exercises the error path via mutation testing (Zippo76)
  • 0 lines added or modified outside tests
  • 15 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#36719 Snan0M doc: clarify RPC addnode 'add' vs 'onetry' connection limitsP4 · bug fixReady1Positive5
  • Clarify addnode RPC documentation regarding connection limits for persistent versus one-try peers
  • Prevent manual peer counts in bitcoin-cli from wrapping around and showing inaccurate numbers past 255
  • P4 because it fixes a minor display wraparound bug and clarifies RPC help text
  • Only nodes maintaining over 255 manual peers encounter the display issue
  • The changes do not affect node operation, consensus, or network behavior
  • Ready for review
  • Support without stated reasons after requested adjustments were made (jonatack)
  • Resolved objection against widening the block-relay peer counter (jonatack)
  • Resolved request to clarify separate add and onetry limits in addnode help (jonatack)
  • 5 lines added or modified outside tests
  • 0 lines added or modified in tests
  • 4 lines removed in total
  • 2 files, 2 commits
(+)#34950 defenwycke rpc: migrate generatetoaddress params to self.Arg for consistencyP4 · cleanupWaiting on author0Mild3 + 3 tests
  • Align generatetoaddress parameter parsing with generatetodescriptor
  • Explicitly reject negative maxtries inputs instead of silently overflowing
  • P4 because it is a minor cleanup aligning generatetoaddress argument parsing with modern RPC helpers
  • Fixes negative maxtries wrapping to UINT64_MAX with minimal external impact
  • Waiting on the author to answer an open objection regarding release notes
  • No review verdicts recorded
  • Support for consistency cleanup with generatetodescriptor (maflcko, GerardoTaboada)
  • Unaddressed objection: behavioral change on negative maxtries needs a release note (GerardoTaboada)
  • Resolved compilation and linker failure in bitcoin-qt target (maflcko)
  • 3 lines added or modified outside tests
  • 3 lines added or modified in tests
  • 3 lines removed in total
  • 2 files, 1 commits
(+)#36429 optout21 [RFC] Delayed transaction broadcast, minimalP4 · new featureReady0Neutral229 + 259 tests
  • Prevent network observers from correlating transaction broadcast timing with off-chain user activity
  • Allow users to schedule private transaction announcements with randomized delay directly from the node
  • P4 because adding an RPC parameter lacks documented external consumer demand
  • The interface change is niche without broader wallet ecosystem requests
  • Ready for review with no known blockers or pending changes
  • No review verdicts recorded
  • Neutral overall with initial concerns answered and no explicit endorsements yet
  • Questioned whether broadcast delays belong in client software rather than the node (ismaelsadeeq)
  • Asked for concrete privacy gains and the harm in knowing transaction creation time (ismaelsadeeq)
  • Noted that node restarts drop delayed transactions and nLockTime may reveal creation time (vasild)
  • 229 lines added or modified outside tests
  • 259 lines added or modified in tests
  • 28 lines removed in total
  • 12 files, 6 commits
(+)#36167 fanquake [RFC] Enable `-Wunused`P4 · cleanupCI failing0Mild548 + 59 tests
  • Catch unused variables and parameters automatically during the build
  • Prevent silent accumulation of dead code and subtle bugs caused by forgotten parameters
  • P4 because internal RPC parameter lookup refactoring has no user-visible interface effect
  • Bundles minor code modernization alongside mechanical warning fixes
  • CI is failing so verify whether the failure is caused by this PR before doing a deep review
  • No review verdicts recorded
  • Objection that removing parameters like self causes unnecessary churn when they should be used (maflcko)
  • Suggested splitting finer-grained warning flags into separate PRs, which the author addressed (maflcko)
  • 548 lines added or modified outside tests
  • 59 lines added or modified in tests
  • 649 lines removed in total
  • 160 files, 8 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-11-01): all PRs here were compared with each other; 36 notes on review order, overlaps, and band changes.

Covers

The node's programmatic interfaces: JSON-RPC methods and their help and argument handling, the HTTP server and authentication, bitcoin-cli, the REST interface, and ZMQ notifications. Wallet RPCs are wallet first and rpc second unless the change is to the RPC machinery itself. The RPC/REST/ZMQ label is a strong prior.

Not rpc: the behavior an RPC merely exposes (that belongs to its area).

What matters here

Compatibility first: changes that break or silently alter what existing callers get back affect every application built on the node, so correctness of returned data and the discipline around deprecations matter most. Then security of the interface: authentication, exposure of sensitive data, resource exhaustion through the HTTP server. Then gaps that force applications into workarounds: missing fields or methods that downstream software has asked for, with evidence they asked. Then performance of hot methods that block explorers and indexers call constantly. Then consistency and documentation of the interface.

New methods without an external consumer asking rank low.

generated 2026-11-02 01:17 UTC