(+)#36015 brunoerg txorphanage: bound orphan memory by storing transactions serialized- Prevent peers from consuming excessive node memory by sending crafted orphan transactions
- Ensure orphan memory limits cannot be bypassed by transactions with massive witness stacks
| P2 · DoS protection- P1 because it closes a substantial memory DoS amplification vector in P2P transaction relay
- Peers could allocate 28 times more heap memory than accounted for, risking node crashes
- Protects resource-constrained nodes from remote memory exhaustion during orphan handling
| Ready- Ready for review as the branch merges cleanly, CI passes, and earlier performance issues are resolved
| 0 (+1) | Strong- Strong consensus on storing serialized orphans rather than altering weight metrics
- Proposed serialized storage design and contributed package selection optimizations (instagibbs)
- Verified memory and CPU impacts through benchmarking across updates (jeanpablojp)
- Concept approval without stated reasons (w0xlt, l0rinc, Crypt-iQ)
| 193 + 241 tests- 193 lines added or modified outside tests
- 241 lines added or modified in tests
- 146 lines removed in total
- 10 files, 7 commits
|
(+)#36142 l0rinc net: validate Tor onion service replies and cached keys- Prevent Tor command and argument injection from malicious or impersonated Tor control daemons
- Stop attackers from hijacking inbound onion connections or triggering Tor shutdowns
| P2 · bug fix- P2 because it fixes an injection flaw in Tor control that can hijack inbound onion connections
- Injected arguments in cached keys could divert incoming connections to an attacker target
- Protects node connectivity and transaction privacy for onion service operators
- Ranking pass: Only confirmed-exploitable security fix on the list (Tor control injection hijacking inbound onion traffic), so it leads the P2 band.
| Needs rebase- Needs rebase due to merge conflicts against master
| 0 | Strong- Strong concept approval across active reviewers
- Verified injection risks by testing hijacked inbound Tor connections (jeanpablojp)
- Suggested strict whitelist validation instead of character blacklists (vasild)
- Concept approval after exploring file permission safeguards (winterrdog)
| 26 + 80 tests- 26 lines added or modified outside tests
- 80 lines added or modified in tests
- 17 lines removed in total
- 2 files, 3 commits
|
(+)#36277 andrewtoth net: always complete all initial private broadcast connections- Protect the origin privacy of privately broadcast transactions
- Prevent timing leaks caused by canceling connections when a transaction is seen early
| P2 · bug fix- P2 because it fixes an origin privacy leak in private transaction propagation
- Stops network observers from deducing the origin by timing connection cancellation
| Ready- Ready for review with passing tests and no open blockers
| 0 | Positive- Positive sentiment with no objections raised
- Concept approval with an intent to review (vasild)
| 86 + 122 tests- 86 lines added or modified outside tests
- 122 lines added or modified in tests
- 22 lines removed in total
- 7 files, 1 commits
|
(+)#35558 davidgumberg p2p: Prefill compact blocks- Predictively prefill likely missing transactions when sending compact blocks
- Avoids high-latency GETBLOCKTXN round-trips to speed block propagation and reduce stale block risk
| P2 · speedup- P2 because it significantly improves compact block relay without requiring protocol changes
- Increases instant block reconstruction rates from roughly 57% to 90%
- Directly reduces network-wide block propagation delays and stale block risk
| Review #35724 first- Review #35724 first
- Author rebased on top of #35724 after isolating logging changes there
| 0 (+2) | Strong- Broad concept consensus with multiple tested approvals
- Support for a backwards-compatible approach to speed block relay (josibake, 0xB10C)
- Verified with node telemetry and test suites across transports (m4ycon, s00ly, johnnyasantoss)
- Resolved objections regarding unnecessary syscalls and a use-after-free (andrewtoth, m4ycon)
- Concept approval without stated reasons (w0xlt, murchandamus, edilmedeiros, ismaelsadeeq)
| 633 + 84 tests- 633 lines added or modified outside tests
- 84 lines added or modified in tests
- 143 lines removed in total
- 16 files, 16 commits
|
(+)#36244 w0xlt validation, net: Process blocks asynchronously and reduce cs_main contention- Keep nodes responsive to peers and avoid network latency spikes while validating incoming blocks
- Ensure compact block responses and regular peer messaging stay fast during heavy validation load
| P2 · DoS protection- P2 because it resolves a major responsiveness bottleneck where peers time out during block validation
- Ping latency drops by 98 percent and block-serving response times improve up to 45 percent under load
| Ready- Ready for review now, passing CI with extensive unit and regression test coverage
| 0- No review verdicts recorded
| Crickets- Early architectural discussion is positive with no objections raised
- Points out steady-state message processing and compact-block serving as key benefits (andrewtoth)
- Notes that it enables eventual parallel validation of competing sibling blocks (andrewtoth)
| 889 + 2,245 tests- 889 lines added or modified outside tests
- 2,245 lines added or modified in tests
- 294 lines removed in total
- 41 files, 20 commits
|
(+)#35839 l0rinc p2p: prevent IBD stall after empty headers- Prevent initial headers sync from stalling indefinitely when a manual or inbound peer returns empty headers
- Allow another eligible peer to take over sync so node initial block download can continue
| P2 · bug fix- P2 because it fixes an indefinite sync stall bug affecting manual and inbound peers during IBD
- Prevents nodes from staying stuck behind when a connected peer has no new headers to offer
| Ready- Ready for review
- CI is passing and remaining open feedback is limited to minor formatting and a test question
| 0 | Strong- Strong consensus to fix the confirmed headers sync stall on mainnet (davidgumberg)
- Concept approval after helping refine retry backoff logic and test coverage (jeanpablojp)
- Concept approval on the latest update (hodlinator)
| 23 + 39 tests- 23 lines added or modified outside tests
- 39 lines added or modified in tests
- 11 lines removed in total
- 2 files, 5 commits
|
(+)#35919 l0rinc p2p: avoid orphanage abort at high peer counts- Prevent node crashes when more than 3,000 peers announce orphan transactions
- Protects nodes running with custom high connection limits on Linux from assertion aborts
| P2 · bug fix- P2 because it fixes an assertion abort in P2P message handling that can crash nodes
- Impacts nodes with custom configurations permitting over 3,000 peer connections
| Ready- Ready for review as author incorporated all reviewer suggestions and CI is clean
| 0 (+3) | Strong- Strong support after crash reproduction, fuzzing expansion, and doc updates
- Verified by reproducing the crash on master and confirming the fix (jeanpablojp)
- Approved after author expanded fuzz testing to cover the zero-share path (brunoerg)
- Approved after test sanity checks and comment clarifications were added (danielabrozzoni)
| 16 + 20 tests- 16 lines added or modified outside tests
- 20 lines added or modified in tests
- 19 lines removed in total
- 4 files, 4 commits
|
(+)#35578 stratospher net: don’t self advertise tor exit node ip addresses in outbound connections- Prevent nodes using proxies or Tor from self-advertising unreachable exit node IPs on outbound connections
- Stops network-wide address table pollution and reduces wasted failed connection attempts across the network
| P2 · bug fix- P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2: reviewer telemetry shows network-wide addrman pollution and repeated doomed connections, a durable address-management fix, not a local edge case.
- P3 because it fixes address table pollution that causes peers to repeatedly attempt doomed connections
- Reduces widespread network waste where up to three quarters of all Tor exit nodes fill address tables
| Ready- Ready to review with clean tests and mergeability, and all earlier feedback addressed
| 0 | Strong- Broad agreement that gossiping unreachable proxy exit IPs is harmful
- Concept approval supported by data showing frequent failed connections to exit nodes (0xB10C)
- Concept approval after verifying behavior locally and contributing test code (naiyoma)
- Concept approval noting that transparent torification will remain unaffected (mzumsande)
| 24 + 29 tests- 24 lines added or modified outside tests
- 29 lines added or modified in tests
- 4 lines removed in total
- 7 files, 5 commits
|
(+)#35591 sr-gi [DO NOT MERGE] Erlay: bandwidth-efficient transaction relay protocol (Full implementation)- Cut transaction relay bandwidth consumption across the network using set reconciliation
- Let node operators maintain more outbound connections to resist eclipse attacks without extra overhead
| P2 · new feature- P2 because it substantially lowers bandwidth overhead for node transaction relay
- Allows nodes to run additional outbound connections, strengthening network eclipse resistance
- Ranking pass: Problem importance keeps it P2, but the full implementation is explicitly not for merge and will be carved up, so it sits behind ready P2 work.
| Needs rebase- Needs rebase due to merge conflicts with master
- Intended for testing and will be split into smaller PRs before merging
| 0- No review verdicts recorded
| Positive- Constructive engagement on protocol design and safety
- Raised concern over potential DoS from slow quadratic minisketch decoding on large sketches (brunoerg)
- Reported test gaps through mutation testing on boundary limits and extensions (brunoerg)
| 1,864 + 2,562 tests- 1,864 lines added or modified outside tests
- 2,562 lines added or modified in tests
- 402 lines removed in total
- 30 files, 38 commits
|
(+)#35054 fjahr p2p: UTXO set sharing- Allow nodes to fetch assumeutxo snapshots directly across the P2P network instead of via out-of-band sources
- Enable fast, frictionless node bootstrapping for regular users and prepackaged node projects
| P2 · new feature- P2 because it removes the main barrier to adopting assumeutxo for fast node bootstrapping
- Provides verified P2P snapshot relay needed by projects like BTCPayServer and prepackaged nodes
| Needs rebase, CI failing- Review is blocked: PR is a draft, has merge conflicts, failing CI, and author has been silent for 115 days
| 0 -6 | Disputed- Heavily disputed, with strong opposition against expanding assumeutxo into the P2P network
- Concept approval because it provides in-band snapshot acquisition (andrewtoth, svanstaa)
- Concept rejection: adds validation complexity and dual chainstate maintenance burden (stickies-v, l0rinc)
- Concept rejection: introduces undesirable trust assumptions to the P2P protocol (evoskuil, eynhaender)
- Concept rejection: uncertain demand and excessive long-term maintenance costs (narula, nkaretnikov)
| 943 + 771 tests- 943 lines added or modified outside tests
- 771 lines added or modified in tests
- 1 lines removed in total
- 27 files, 13 commits
|
(+)#35354 randomlogin net: wait for validation queue flush for missing compact filter for an already known block- Prevent full nodes from dropping compact filter queries when block indexing lags behind new blocks
- Stops BIP 157 light clients from disconnecting or banning nodes when requests arrive before filters index
| P3 · bug fix- P2 because it resolves an interoperability bug causing light clients to disconnect or ban full nodes
- Avoids dropped filter queries for announced blocks to maintain reliable peer connectivity
| Ready- Worth reviewing now with recent architectural feedback incorporated and passing CI
| 0- No review verdicts recorded
| Strong- Reviewers agree the issue needs fixing and favor handling the race in net processing
- Objected to resolving the race in index code or stalling the message thread (sedited, mzumsande)
- Proposed parking peer message processing to preserve order without blocking others (ajtowns)
| 176 + 387 tests- 176 lines added or modified outside tests
- 387 lines added or modified in tests
- 13 lines removed in total
- 3 files, 3 commits
|
(+)#35003 furszy validation: improve block data I/O error handling in P2P paths- Prevent block storage I/O failures from leaving nodes silently stuck unable to advance the chain
- Trigger graceful shutdown instead of ungraceful aborts when disk access fails during peer requests
| P3 · stability- P3 because it replaces an assert crash with a controlled graceful shutdown on block read failure
- Ensures peers are disconnected cleanly when disk reads fail instead of silently dropping requests
- Ranking pass: Top of P3: silent inability to advance the chain on disk I/O failure is the most consequential remaining P3, and it needs an approach decision.
| Author silent 70d- Author silent for 70 days following an approach objection and broader architectural questions
| 1 (+4) -1 | Disputed- Approach objection to returning null pointers instead of preserving filesystem exceptions (josibake)
- PR cannot be merged as-is without deciding a unified error-handling strategy across paths (maflcko)
- Author defended consistency with existing callers but has not replied since July (furszy)
| 15 + 533 tests- 15 lines added or modified outside tests
- 533 lines added or modified in tests
- 7 lines removed in total
- 10 files, 5 commits
|
(+)#34213 brunoerg net: preserve anchors when network is disabled- Prevent anchor peers from being erased when a node shuts down with networking disabled
- Maintain eclipse attack resilience across restarts after running offline
| P3 · bug fix- P3 because it fixes a corner-case bug where anchors protecting against eclipse attacks are dropped offline
- Losing anchors degrades restart topology diversity but is not easily exploitable in standard operation
| Ready- Ready for review
- All thread-safety and edge-case concerns have been addressed
| 1 (+2) | Strong- Broad agreement on preserving anchors across offline restarts
- Strong support because it improves restart eclipse resilience without dropping anchors (willcl-ark)
- Concept approval with review of anchor life cycle and lock ordering (danielabrozzoni)
- Concept approval confirming benefits for nodes started offline (waketraindev)
| +103/-20 |
(+)#35936 l0rinc net: reject oversized locators before allocating- Disconnect peers that send oversized block locator counts before reading their payloads
- Avoid unneeded memory allocations when parsing malformed getblocks and getheaders messages
| P3 · DoS protection- P3 because it fixes an edge-case bug where peers with truncated oversized locators escaped disconnection
- It prevents lingering misbehaving connections and avoids unneeded memory allocations
| Ready- Ready for review as branch is clean and all reviewer feedback has been addressed
| 0 (+2) | Positive- Tested and approved after proposing a fix for counts above MAX_SIZE (jeanpablojp)
- Approved the approach and implementation (achow101)
- Endorsed the exception-based design over duplicating stream parsing loops (ajtowns)
- Questioned parser consistency with headers without blocking (mzumsande, sedited)
| 36 + 26 tests- 36 lines added or modified outside tests
- 26 lines added or modified in tests
- 20 lines removed in total
- 4 files, 4 commits
|
(+)#34824 w0xlt net: encapsulate TxRelay state and replace recursive mutexes- Make transaction relay concurrency safer by encapsulating internal peer state and removing recursive locks
- Enables compile-time lock analysis and reduces deadlock risks during peer message processing
| P3 · cleanup- P3 because this is an internal refactoring that improves concurrency safety without changing wire behavior
- Helps unblock broader efforts to eliminate recursive mutexes across networking code
- Ranking pass: Ranked above other refactors because it retires a known message-handling hazard (recursive mutexes, #19303) rather than only reorganizing code.
| Ready- Ready for review: cleanly rebased, passes CI, and incorporates previous reviewer feedback
| 0 (+2) | Strong- Strong support for modularizing peer relay state and eliminating recursive mutexes
- Concept approval without stated reasons (theuni, hebasto)
- Support for the encapsulation approach (sedited)
- Confirmed earlier concerns about thread-safety analysis leaks are addressed (pablomartin4btc)
| 396 + 407 tests- 396 lines added or modified outside tests
- 407 lines added or modified in tests
- 192 lines removed in total
- 7 files, 6 commits
|
(+)#35750 mzumsande addrman: make `m_last_good` network-specific- Prevent nodes from incorrectly penalizing peers on one network when local reachability fails on another
- Keep valid peer addresses from being marked terrible and dropped from relay due to local network outages
| P3 · bug fix- P3 because it fixes an address-management bug where local outages degrade remote peer scores
- Improves address relay quality for nodes running with partial network connectivity
- Affects only nodes with isolated network failures and does not fix an urgent security vulnerability
- Ranking pass: Addrman correctness fix with a concrete degradation path for multi-network nodes; belongs with the other relay/address bug fixes, not near the tail.
| Ready- Ready to review
- Small diff with unit tests, clean rebase, and all discussion points addressed
| 0 | Strong- Broad agreement on the concept across multiple reviewers (fjahr, brunoerg, stratospher, naiyoma)
- Verified with manual tests and logs confirming cross-network failure isolation (naiyoma)
- Concern about retaining unreachable addresses resolved as an acceptable tradeoff (stratospher)
| 7 + 54 tests- 7 lines added or modified outside tests
- 54 lines added or modified in tests
- 4 lines removed in total
- 3 files, 2 commits
|
(+)#36080 mzumsande p2p: Suspend ping timeout while downloading blocks from a peer- Avoid disconnecting well-behaved peers when block downloads delay their ping responses
- Improves initial sync reliability for users on slow or bandwidth-constrained connections
| P3 · bug fix- P3 because it fixes unnecessary disconnections during block download on slow connections
- Other fallback timeouts already prevent nodes from stalling indefinitely
- Ranking pass: Real disconnection bug during IBD with a linked issue, so placed with peer-management bug fixes rather than below feature work.
| Ready- Ready to review now with passing CI and recent reviewer feedback addressed
| 0 | Positive- Concept support with test improvements addressed (l0rinc)
- Concept support with edge cases explored and extra test assertions added (danielabrozzoni)
| 18 + 220 tests- 18 lines added or modified outside tests
- 220 lines added or modified in tests
- 18 lines removed in total
- 3 files, 3 commits
|
(+)#35920 ajtowns net_processing: Ignore MSG_WITNESS_TX entries from INV messages- Ignore MSG_WITNESS_TX announcements from wtxid-relay peers to adhere to BIP 144
- Disconnect block-relay-only peers that announce transactions regardless of the INV type used
| P3 · protocol fix- P3 because it aligns wtxid-relay behavior with BIP 144 and fixes disconnect logic for block-relay peers
- Enforces protocol rules consistently while preserving compatibility for existing clients like Neutrino
- Ranking pass: BIP144 conformance plus disconnect-logic correctness ranks with protocol fixes, above configuration and observability PRs.
| Ready- Ready to review
- All substantive ecosystem compatibility feedback has been addressed in code
| 0 | Strong- Strong support for protocol conformance and cleanup
- Concept approval without stated reasons (l0rinc, fjahr)
- Compatibility concern about Neutrino resolved by keeping support for non-wtxid peers (darosior, 0xB10C)
| 14 + 14 tests- 14 lines added or modified outside tests
- 14 lines added or modified in tests
- 25 lines removed in total
- 3 files, 3 commits
|
(+)#35874 l0rinc p2p: prevent BIP35 requesters from bypassing inbound tx-relay capacity- Prevent inbound peers from bypassing transaction-relay limits by requesting full mempools via BIP35
- Keep SPV bloom filter clients working properly while blocking evasion of peer eviction accounting
| P3 · DoS protection- P3 because it closes a loophole where inbound peers evade tx-relay connection limits while fetching mempools
- Impact is limited because BIP35 mempool queries require bloom filter support, which is off by default
- Ranking pass: Closes a concrete inbound capacity-accounting bypass; DoS-adjacent fixes grouped ahead of features.
| Ready- Ready for review
- The rework addressed previous feedback and CI is passing
| 0- No review verdicts recorded
| Positive- Positive consensus with no standing objections after design rework
- Suggested that peers with relay disabled should not receive mempool inventory (gmaxwell)
- Verified SPV client compatibility and filterload message sequencing (schildbach)
- Raised concerns on earlier inventory relay changes that led to regression tests and simplification (darosior)
| 3 + 23 tests- 3 lines added or modified outside tests
- 23 lines added or modified in tests
- 2 lines removed in total
- 3 files, 2 commits
|
(+)#35321 ViniciusCestarii p2p: Misbehave on invalid compact block in optimistic reconstruction- Penalize peers that send malformed compact blocks during optimistic reconstruction
- Ensures consistent DoS protection across all compact block processing paths
| P3 · DoS protection- P3 because it enforces an omitted peer penalty to complete intended DoS protection
- Operational impact is modest because it only triggers when several compact blocks are already in flight
| Author silent- Code is mergeable and passes CI, but the author has been silent for over three months
| 0 (+2) | Strong- Strong consensus to penalize invalid compact blocks consistently across all paths
- Support for consistency with standard validation and peer penalties (davidgumberg)
- Approved after minor test and comment nits were resolved (w0xlt)
| 2 + 39 tests- 2 lines added or modified outside tests
- 39 lines added or modified in tests
- 1 lines removed in total
- 2 files, 2 commits
|
(+)#36170 l0rinc net: require a dedicated bind for automatic Tor- Prevent incoming Tor connections from misclassifying as direct IP traffic or inheriting proxy permissions
- Require nodes with custom bind setups to specify a dedicated onion bind instead of falling back to standard binds
| P3 · bug fix- P3 because it prevents incoming Tor connections from accidentally inheriting localhost whitelist permissions
- Affects only nodes running custom bind configurations and is reasonably deferrable
- Ranking pass: Permission-inheritance hardening but limited to custom bind setups, so slightly below the broader bug fixes.
| Ready- Ready to review
- Open discussion on whether to disallow wildcard onion binds is a scoping choice, not rework
| 0 | Positive- Supportive sentiment with minor open questions on scope and documentation
- Concept approval while raising an edge case on wildcard onion binds (jeanpablojp)
- Approach approval without objections (winterrdog)
| 19 + 19 tests- 19 lines added or modified outside tests
- 19 lines added or modified in tests
- 11 lines removed in total
- 6 files, 4 commits
|
(+)#35696 jpk68 i2p: update leaseset encryption types- Adopt post-quantum hybrid encryption for nodes running I2P
- Phase out legacy ElGamal encryption to improve cryptographic strength and privacy for I2P peers
| P3 · new feature- P3 because post-quantum hybrid encryption improves privacy and standards adherence for I2P peers
- The upgrade is non-urgent with no immediate security risk from delaying across upcoming releases
- Ranking pass: Valuable I2P crypto upgrade with upstream backing, but no immediate risk from delay, so below correctness fixes.
| Ready- Ready to review as a minimal change with compatibility questions resolved by upstream I2P developers
| 1 | Strong- Strong support from upstream I2P developers to deploy post-quantum leasesets as-is (zzzi2p)
- Objection over dropping older pre-26.1 nodes was withdrawn after verifying low impact (janb84)
- Concept approval with follow-up release notes opened in another pull request (jonatack, kevkevinpal)
| 2- 2 lines added or modified outside tests
- 0 lines added or modified in tests
- 2 lines removed in total
- 1 files, 1 commits
|
(+)#32065 vasild i2p: make a time gap between creating transient sessions and using them- Prevent adversaries from linking I2P connection events through timing correlation
- Improves privacy for I2P users running outbound-only connections with transient sessions
| P3 · DoS protection- P3 because it provides meaningful privacy hardening against network-level metadata leakage on I2P
- The benefit is narrow since it only affects nodes operating with transient sessions
- Ranking pass: Privacy hardening limited to transient-session I2P users, placed with the other opt-in privacy/connectivity work.
| Needs rebase- Needs rebase due to merge conflicts
- Author has been inactive on the PR for several months
| 0 | Strong- Concept supported for privacy gains by upstream I2P developers (zzzi2p, eyedeekay)
- Resource overhead concern resolved by shrinking standby cache to one session (zzzi2p, eyedeekay)
- Reviewers are waiting on an author rebase to proceed (sedited)
| 92 + 2 tests- 92 lines added or modified outside tests
- 2 lines added or modified in tests
- 47 lines removed in total
- 4 files, 3 commits
|
(+)#30951 stratospher net: option to disallow v1 connection on ipv4 and ipv6 peers- Let node operators disallow unencrypted v1 clearnet P2P connections
- Prevents passive network observers from inspecting plaintext messages without needing Tor or I2P
| P3 · new feature- P3 because it offers a strict guarantee against passive wiretapping for operators who need it
- Deferrable because opportunistic v2 is already default and it does not protect against active adversaries
- Ranking pass: Opt-in flag against passive observation only; ranked with other operator-facing options rather than near the bug fixes.
| Needs rebase- Needs rebase due to merge conflicts
- Awaiting author choice between forcing listen=0 and supporting v2 inbounds
| 0 -1- Approach ACK: ajtowns
- Concept ACK: mzumsande, dergoegge, fjahr, sipa, kristapsk, laanwj, sedited, pinigapic-lang, davidgumberg, danielabrozzoni, ViniciusCestarii
- Concept NACK: 1440000bytes
| Disputed- Broad concept support for an opt-in v2-only clearnet setting (mzumsande, sipa, dergoegge, laanwj, fjahr)
- Strong objection to forcing listen=0 because it harms network listening capacity (gmaxwell, mzumsande)
- Concept objection: creates false privacy expectations and partition risks (1440000bytes)
- Postponed due to lack of consensus on coupling with listen=0 (sedited)
| 69 + 35 tests- 69 lines added or modified outside tests
- 35 lines added or modified in tests
- 4 lines removed in total
- 9 files, 6 commits
|
(+)#33663 waketraindev net: Filter addrman during address selection via AddrPolicy to avoid underfill- Return full address responses to peers even when a node maintains many banned addresses
- Prevent peers from inferring node ban list sizes through short address responses
| P3 · bug fix- P3 because fixing address underfill prevents ban list leakage without affecting core network connectivity
- The privacy and discovery improvement is minor and non-critical for routine operation
- Ranking pass: Genuine ban-list leakage fix but the approach is still contested among four alternatives, and the effect is minor; grouped with lesser addrman work.
| Author silent- Author inactive for over two months with open questions on test coverage
| 0 (+1) | Positive w/ caveats- Support for ensuring full address responses to hide ban list sizes (mzumsande, frankomosh)
- Prefers simpler oversampling instead of adding a new selection callback (fjahr)
- Suggested purging banned addresses directly instead of filtering during selection (ajtowns)
- Suggests moving all selection criteria into the callback if this design is kept (sipa)
| 47 + 39 tests- 47 lines added or modified outside tests
- 39 lines added or modified in tests
- 18 lines removed in total
- 6 files, 1 commits
|
(+)#35888 l0rinc net: reject oversized outbound messages- Prevent transport aborts and memory overwrites caused by oversized outbound messages
- Validate message header lengths and payload sizes before queueing them to peers
| P3 · bug fix- P3 because it hardens transport safety against memory corruption and aborts from internal bugs
- Outbound message types and payloads are already bounded in normal operation so impact is defensive
- Ranking pass: Defense-in-depth against internal caller bugs only, so ranked with hardening rather than with externally triggerable issues.
| Ready- Ready for review
- Clean CI with no merge conflicts and prior reviewer feedback addressed
| 0 | Strong- Strong consensus on enforcing protocol limits before queueing outbound messages
- Concept approval and co-authored commits shaping the design (ajtowns, mzumsande)
- Concept approval with an open non-blocking nit on clamping message types (naiyoma)
| 18 + 69 tests- 18 lines added or modified outside tests
- 69 lines added or modified in tests
- 8 lines removed in total
- 5 files, 4 commits
|
(+)#34486 willcl-ark net: Reduce local network activity when networkactive=0- Stop port mapping and Tor control connections when networkactive=0
- Fulfills user expectations of full network inactivity and prevents unwanted local background traffic
| P3 · bug fix- P3 because it stops unintended local network traffic while networking is marked inactive
- Provides privacy and isolation guarantees expected by users
- Marginal impact because it does not fix a consensus, remote DoS, or peer protocol bug
| Needs rebase- Needs rebase due to merge conflicts with master
- Awaiting author action on an edge-case patch and conflicts
| 0 (+1) | Strong- Broad concept and approach agreement across multiple reviewers
- Verified NAT-PMP and Tor teardown in Docker (brunoerg)
- Concept approval without stated reasons (sedited, fanquake, Jhackman2019)
- Approach approval with an edge-case note on backoff during rapid toggles (winterrdog)
| +222/-8 |
(+)#36177 l0rinc net: fix startup failures from stale Tor examples- Prevent node startup failures caused by following outdated Tor proxy configuration examples
- Ensure proxy argument error handling correctly guides users to valid network names
| P3 · bug fix- P3 because it fixes node startup failures for users following official Tor guides
- Benefit is localized to nodes configuring proxy settings with the old network name
- Ranking pass: Startup failure for users following official docs is a real user-facing fix, so above configuration conveniences and observability.
| Ready- Ready for review with passing tests and all reviewer suggestions addressed
| 0 | Strong- Concept approval verified by testing proxy feature behavior (jeanpablojp)
- All requested documentation clarifications and test additions were incorporated
| 19 + 24 tests- 19 lines added or modified outside tests
- 24 lines added or modified in tests
- 26 lines removed in total
- 4 files, 4 commits
|
(+)#36267 fanquake [32.x] Backports for rc2- Backport fixes to the 32.x branch for the 32.0rc2 release candidate
- Allow offline Windows signature validation in Guix and back off on dropped Tor control connections
| P3 · bug fix- P3 because it ensures Tor control reconnections back off gracefully after dropped connections
- Prevents tight reconnect loops when Tor is restarting or unreachable
- Ranking pass: Delivers already-merged Tor-control backoff to the release branch; useful but adds no new fix, so mid-P3.
| Ready- Ready to review now
- Straightforward backport of two commits already merged to master with passing CI
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet on this newly opened backport PR
| 3,127 + 38 tests- 3,127 lines added or modified outside tests
- 38 lines added or modified in tests
- 35 lines removed in total
- 4 files, 3 commits
|
(+)#35600 willcl-ark net: prevent duplication manual connections (take 2)- Prevent duplicate manual connections to the same target caused by concurrent connection attempts
- Stops duplicate sockets when -connect and -addnode are configured for the same destination
| P3 · bug fix- P3 because it fixes an edge-case race condition in manual connection management
- Affects only nodes configuring overlapping manual targets and does not threaten normal operation
| Ready- Ready to review now with clean code and no outstanding reviewer requests
| 0 | Positive- Positive sentiment with no objections raised
- Concept approval without stated reasons (sedited, w0xlt)
| 58 + 106 tests- 58 lines added or modified outside tests
- 106 lines added or modified in tests
- 5 lines removed in total
- 4 files, 2 commits
|
(+)#36208 mzumsande addrman: apply time penalty in nTime check- Prevent duplicate address announcements from improperly boosting an entry's multiplicity in addrman
- Ensure gossip from multiple peers correctly accounts for time penalties during duplicate checks
| P3 · bug fix- P3 because it fixes an ineffective check against duplicate peer address announcements
- Adversaries can still bypass it by changing timestamps on repeated announcements
| Ready- Ready for review
- Small patch with a targeted unit test and no blockers
| 0- No review verdicts recorded
| Crickets- No reviews or feedback yet
| 2 + 13 tests- 2 lines added or modified outside tests
- 13 lines added or modified in tests
- 2 lines removed in total
- 2 files, 1 commits
|
(+)#36014 w0xlt init: ignore repeated `-addnode` startup values- Prevent duplicate manual node entries from repeated startup options
- Stops redundant DNS queries and repeated connection retries when nodes are unreachable
| P3 · bug fix- P3 because redundant DNS queries and retries only occur with misconfigured duplicate inputs
- Modest benefit from eliminating unnecessary network chatter for manual connections
- Ranking pass: Placed next to #35600 since both address duplicate manual connections; benefit is limited to misconfigured setups.
| Ready- Ready for review
- Clean code, passing CI, and suggested changes have been addressed
| 1 | Strong- Strong support for deduplicating added node inputs
- Approved after adding host-port equivalence handling (pablomartin4btc)
- Concept approval recommending routing startup options through connection manager (danielabrozzoni)
| 21 + 38 tests- 21 lines added or modified outside tests
- 38 lines added or modified in tests
- 9 lines removed in total
- 4 files, 2 commits
|
(+)#35027 8144225309 net: add -outboundbind option for outgoing source address- Allow node operators to choose which local IP address is used for outgoing clearnet P2P connections
- Prevents multi-homed hosts from routing outbound traffic through unintended network interfaces
| P3 · new feature- P3 because it adds clear configuration control for multi-homed node operators
- Solves long-standing issue #6476 without affecting network security or liveness
| Ready- Ready for review with passing CI, no conflicts, and prior feedback addressed
| 0 | Strong- Consensus on dedicated option after dropping earlier plan to overload -bind (luke-jr, gmaxwell)
- Approach approval following validation and parsing improvements (vasild)
- Approach approval on the latest revision (winterrdog)
- Concept approval without stated reasons (frankomosh)
| 168 + 391 tests- 168 lines added or modified outside tests
- 391 lines added or modified in tests
- 8 lines removed in total
- 10 files, 3 commits
|
(+)#35940 w0xlt net: allow selecting BIP152 high-bandwidth peers with `-addnode`- Let node operators guarantee immediate compact block announcements over dedicated low-latency links
- Allows manually specifying high-bandwidth peers outside the automatic three-peer limit
| P3 · new feature- P3 because it helps operators with custom peering setups guarantee fast compact block relay
- Provides an opt-in CLI configuration rather than resolving network-wide relay bottlenecks
- Ranking pass: Opt-in operator convenience for dedicated peering links, grouped with the other configuration features.
| Ready- Ready for review
- Applies cleanly with passing CI and previous feedback addressed
| 0 | Strong- Concept support for allowing explicit operator override of the three-peer cap (jeanpablojp)
- No objections raised
| 81 + 108 tests- 81 lines added or modified outside tests
- 108 lines added or modified in tests
- 16 lines removed in total
- 8 files, 4 commits
|
(+)#35113 optout21 net: introduce block tracker to retry to download blocks after failure- Automatically retry on-demand block downloads across available peers when a peer fails or disconnects
- Relieves callers from manually tracking and retrying missing block fetch requests
| P3 · new feature- P3 because it removes friction when fetching missing blocks and lays groundwork for pruned rescans
- Deferrable since it does not affect standard initial block download or regular block relay
- Ranking pass: On-demand block fetch retry is a niche convenience with open RPC design objections, so it sits with feature work.
| Needs rebase- Has merge conflicts against master and needs a rebase
- Author has been inactive after agreeing to address RPC design feedback
| 0- No review verdicts recorded
| Disputed- Unaddressed objection: boolean parameters should be named rather than positional (luke-jr)
- Author agreed to consider RPC parameter feedback but has not pushed updates
| 231 + 99 tests- 231 lines added or modified outside tests
- 99 lines added or modified in tests
- 10 lines removed in total
- 8 files, 6 commits
|
(+)#34707 andrewtoth net: keep finished private broadcast txs in memory- Allow node operators and callers to confirm successful private broadcast roundtrips via RPC
- Prevent private broadcast status from disappearing immediately once received back from peers
| P3 · new feature- P3 because telemetry and status reporting benefits are limited to optional private broadcast
- Operators and wallet software can verify roundtrip relay without relying on debug logs
- It does not directly improve core network reliability or DoS resistance
- Ranking pass: Leads the private-broadcast feature cluster but is superseded in part by #36277, which should be reviewed first.
| Ready- Ready for review with passing CI and clean merge status
| 2 (+1) -1 | Disputed- Concept objection: adds complexity and memory retention for a narrow set of users (instagibbs)
- Warns that private broadcast should not expand into general rebroadcast logic (instagibbs)
- Strong support because retaining roundtrip stats fixes missing RPC diagnostics (vasild)
- Support because received peer info is useful for client applications (optout21)
| 100 + 175 tests- 100 lines added or modified outside tests
- 175 lines added or modified in tests
- 68 lines removed in total
- 8 files, 4 commits
|
(+)#34322 andrewtoth node: Persist private broadcast transactions over node restarts- Prevent transactions submitted via private broadcast from vanishing when a node restarts before completion
| P3 · new feature- P3 because prevents submitted private broadcast transactions from vanishing on restart
- Relief is limited to clean node restarts during the brief broadcast window
- May be superseded by a more comprehensive persistent broadcast pool
- Ranking pass: Narrow window of benefit and may be replaced by a persistent broadcast pool, so below the private-broadcast correctness work.
| Needs rebase- Needs rebase due to merge conflicts
- Author marked PR as draft to rework the architecture in PR #34707
| 0 | Strong- Strong concept support because preserving transactions outweighs disk storage concerns (vasild)
- Concept approval noting this does not go far enough to handle unclean shutdowns (craigraw)
- Concern that storing unencrypted broadcast data expands the node disk attack surface (tankyleo)
| +377/-0 |
(+)#34533 vasild wallet: resubmit transactions with private broadcast if enabled- Prevent periodic wallet rebroadcasts from leaking transactions over standard connections
- Preserves origin privacy for users who explicitly enable private broadcast
| P3 · new feature- P3 because it routes wallet traffic through existing private broadcast facilities
- P2P wire protocols and core network relay mechanics are unchanged
- Ranking pass: Wallet-side plumbing over existing private broadcast transport with unresolved package/CPFP objections; belongs with the feature cluster, not near the bug fixes.
| Needs rebase- Needs rebase against master before code review is worthwhile
- Author has been inactive for over four months
| 0 (+2) | Disputed- Concept supported to complete private broadcast coverage for wallet transactions (pablomartin4btc, w0xlt)
- Unaddressed objection: dispatches can split dependent transactions and break CPFP rebroadcasts (achow101)
- Suggested that package private broadcast could address the CPFP rebroadcast failures (andrewtoth)
| +54/-11 |
(+)#34457 w0xlt wallet: add private broadcast support for wallet transactions- Protect origin privacy for wallet transactions and periodic rebroadcasts
- Route wallet RPC and GUI transactions over short-lived Tor or I2P connections instead of clearnet
| P3 · new feature- P3 because it connects the wallet into existing Tor and I2P broadcast transport
- The underlying P2P transport machinery was already established in earlier work
- Ranking pass: Overlaps #34533 and depends on coordinating with it, so reviewed after that decision rather than mid-list.
| Needs rebase- Needs rebase due to merge conflicts
- Review #34533 first as author is waiting for its rebroadcast logic before updating
| 0 | Strong- Broad concept support with no objections to wallet private broadcast
- Concept approval for extending private broadcast to wallet transactions (andrewtoth, Bicaru20)
- Agreed on simplifying rebroadcast model to follow #34533 (andrewtoth, w0xlt)
- Suggested splitting Qt exception fix and test helpers into standalone PRs (rkrux)
| +510/-45 |
(+)#35724 davidgumberg cmpctblock: Improve logging of `cmpctblock` message reconstruction statistics [part of prefill series]- Give node operators and developers detailed logging on compact block reconstruction and prefill redundancy
- Helps evaluate block relay efficiency and measure improvements to compact block prefilling
| P3 · unblocks #35558- P3 because diagnostic tooling provides developer visibility without altering wire protocol behavior
- Unblocks evaluating compact block relay performance and prefill experiments in #35558
| Ready- Wait for author update addressing mempool lock feedback before reviewing
| 1 | Mild- General support for compact block relay diagnostics with no concept objections
- Approved after earlier logging level fixes were addressed (w0xlt)
- Verified by testing on signet and suggested minor log format tweaks (0xB10C)
- Concerned repeated mempool lock acquisition in loop should be batched (andrewtoth)
| 108 + 1 tests- 108 lines added or modified outside tests
- 1 lines added or modified in tests
- 14 lines removed in total
- 4 files, 3 commits
|
(+)#29418 vasild rpc: provide per message stats for global traffic via new RPC 'getnetmsgstats'- Track cumulative network traffic by message and connection type for node operators and monitoring tools
- Keep long-term traffic statistics from being lost whenever peers disconnect
| P3 · new feature- P3 because tracking traffic across networks improves P2P observability for operators
- Helps operators analyze monthly bandwidth distribution without altering relay or consensus behavior
- Ranking pass: Observability feature for operators; above pure tracing/test work but below anything fixing behavior.
| Needs rebase- Needs rebase due to merge conflicts with master
- Author has been inactive since June 2026
| 0 (+1) | Positive- Broad support for exposing global traffic metrics to node operators
- Verified by testing with node monitoring dashboards (waketraindev)
- Concept approval and implementation review (danielabrozzoni, epiccurious)
- Resolved objection: dropped server-side aggregation options in response to feedback (stickies-v)
| 389 + 151 tests- 389 lines added or modified outside tests
- 151 lines added or modified in tests
- 14 lines removed in total
- 9 files, 3 commits
|
(+)#35368 w0xlt tracing: add block header and compact block tracepoints- Expose compact block reconstruction and header arrival metrics via structured USDT tracepoints
- Provide telemetry tools reliable real-time performance data without fragile debug log scraping
| P3 · new feature- P3 because it improves compact block relay observability for research and monitoring tools
- It does not alter P2P network behavior or fix security, DoS, or stability bugs
- Ranking pass: Pure telemetry addition with no behavior change, so grouped with observability rather than mid-list.
| Needs rebase- Needs rebase due to merge conflicts with master
- Author has been inactive for several months and has not responded to rebase requests
| 0 | Positive- General support for adding structured observability to compact block relaying
- Concept approval because it replaces brittle debug log parsing in monitoring tools (0xB10C, m4ycon)
- Questioned whether to pause USDT additions pending IPC tracing design (0xB10C, stickies-v)
| 99 + 270 tests- 99 lines added or modified outside tests
- 270 lines added or modified in tests
- 6 lines removed in total
- 6 files, 2 commits
|
(+)#27052 LarryRuane test: rpc: add last block announcement time to getpeerinfo result- Give node operators visibility into which peers provide prompt block announcements
- Add test coverage to protect outbound peer eviction logic from regressions
| P3 · test coverage- P3 because it adds regression test coverage for peer announcement tracking in eviction logic
- Modernizes internal time representation used during peer eviction
- Ranking pass: Mostly test coverage plus a reporting field; grouped with the test cluster instead of with behavior fixes.
| Ready- Ready for review with passing CI and all feedback resolved
| 2 | Strong- Strong support with all concerns resolved
- Verified by mutation testing and checking header announcement edge cases (naiyoma)
- Verified by running test suites and checking RPC output (rkrux)
- Concept approval favoring test coverage and peer observability (satsie, kristapsk)
| 34 + 112 tests- 34 lines added or modified outside tests
- 112 lines added or modified in tests
- 19 lines removed in total
- 8 files, 5 commits
|
(+)#33954 mzumsande test: add functional test for outbound connection management- Make autonomous outbound peer connections straightforward to test in the functional framework
- Help test writers cover peer discovery and connection logic without bespoke proxy hacks
| P3 · test coverage- P3 because it exercises core peer-to-peer connection management logic without altering node behavior
- Locks in regression test coverage for stale-tip connections and network diversification
- Ranking pass: Test-framework capability with real long-term value, but no behavior change, so it heads the test cluster rather than sitting mid-list.
| Author reworking- Wait because the author is currently reworking the branch to address feedback
- CI is currently failing
| 0 (+2) | Strong- Strong concept and approach support across reviewers
- Concept approval with constructive interface suggestions (vasild)
- Verified by testing locally on Ubuntu (Bortlesboat)
| +398/-102 |
(+)#36262 ViniciusCestarii test: cover orphan reconsideration interruptibility- Ensure peer message processing cannot be stalled by unbounded orphan reconsiderations
- Protects node operators against future regressions of a denial of service vulnerability
| P3 · test coverage- P3 because it provides regression test coverage for a past peer-to-peer denial of service vulnerability
- The bug is already fixed in production, making this test a preventive guardrail
| Ready- Ready for review with a clean diff and passing CI
| 0 | Positive- Uncontroversial addition with positive initial sentiment
- Concept approval without stated reasons (instagibbs)
| 0 + 72 tests- 0 lines added or modified outside tests
- 72 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#35292 winterrdog test: Add coverage for Tor control `HASHEDPASSWORD` authentication- Add test coverage for Tor control hashed password authentication
- Catch regressions in Tor daemon communication and onion service setup
| P3 · test coverage- P3 because it adds regression coverage for Tor control hashed password authentication
- Improves onion service test coverage without fixing an active vulnerability or bug
- Ranking pass: Adds regression coverage for a functional Tor-control path, so ranked with the other substantive test additions.
| Needs rebase- Needs rebase due to merge conflicts with master
| 0- No review verdicts recorded
| Neutral- Neutral sentiment with questions answered but no ACKs posted
- Clarified what bad-password assertions validate separately (davidgumberg)
- Requested rewriting description to remove formulaic style (sedited)
| 0 + 69 tests- 0 lines added or modified outside tests
- 69 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#35624 beihaili test: cover addnode connection limit- Prevent regressions in manual outbound peer limits
- Add explicit end-to-end test coverage for the addnode connection cap
| P3 · test coverage- P3 because it verifies existing manual peer connection limits without fixing a bug
- Provides regression protection for connection limits to partially address #28635
- Ranking pass: Covers an open issue's connection-limit invariant; kept in P3 with the other functional tests.
| Author silent- Author silent for 79 days with open reviewer questions
| 0 | Positive- Concept approval but asked for PR description rewrite (sedited)
- Unanswered question on why the PR remains in draft state (achow101)
| 0 + 77 tests- 0 lines added or modified outside tests
- 77 lines added or modified in tests
- 0 lines removed in total
- 2 files, 1 commits
|
(+)#34565 w0xlt refactor: extract BlockDownloadManager from PeerManagerImpl- Separate block download logic from the net processing monolith so it can be tested and fuzzed in isolation
| P3 · cleanup- P3 because it is an architectural refactor that does not fix bugs or change wire protocol behavior
- Improves modularity and testability rather than removing concurrency bottlenecks
- Ranking pass: Refactor with no stated bug or hazard retired and mild architectural skepticism; grouped with the other net_processing decompositions.
| Needs rebase- Needs rebase due to merge conflicts across net processing and build files
| 0 | Mild- Concept approval without stated reasons (sedited, 0xbrito)
- Questions whether added indirection is worth it compared to #35561 (Crypt-iQ)
- Doubts benefit of moving code when cs_main requirements remain unchanged (maflcko)
| 1,149 + 798 tests- 1,149 lines added or modified outside tests
- 798 lines added or modified in tests
- 586 lines removed in total
- 10 files, 4 commits
|
(+)#35502 w0xlt refactor: extract per-message helpers from ProcessMessage (move-only)- Break up an oversized message processing routine to make the code easier to navigate.
- Allow compile-time thread-safety checks to enforce only the specific locks needed for each message type.
| P3 · cleanup- P3 because it improves internal maintainability and narrows compile-time lock requirements.
- It carries no user-facing changes, protocol updates, or bug fixes.
- Ranking pass: Move-only extraction placed next to its sibling #35522 so the two comparable refactors share a neighbourhood.
| Ready- Ready for review, cleanly structured as pure move-only commits with passing CI.
| 0 (+3) | Strong- Strong consensus among P2P contributors that helpers improve navigation and lock checks
- Support for easier navigation and better git diff context (stickies-v, theStack, pablomartin4btc, maflcko)
- Verified move-only correctness and thread-safety annotations (pseudoramdom, thomasbuilds)
- Questioned whether helpers obscure control flow compared to a flat switch (davidgumberg)
| 1,012- 1,012 lines added or modified outside tests
- 0 lines added or modified in tests
- 940 lines removed in total
- 1 files, 9 commits
|
(+)#35522 pablomartin4btc refactor: Extract per-message helpers from SendMessages() (move-only)- Break up monolithic P2P message dispatching logic into discrete helpers
- Make navigation, locking verification, and review easier for P2P developers
| P3 · cleanup- P3 because it is a move-only refactoring that fixes no bugs and changes no protocol behavior
- Breaking up the monolithic routine improves maintainability and eases future reviews
| Needs rebase- Needs rebase due to merge conflicts with master
| 0 | Strong- Strong support for the refactoring with no objections
- Approach approval for consistency with existing patterns (w0xlt)
- Concept approval because named helpers simplify reviewing and discussing logic (hodlinator)
| 661- 661 lines added or modified outside tests
- 0 lines added or modified in tests
- 424 lines removed in total
- 1 files, 17 commits
|
(+)#35561 Crypt-iQ net: move some CNodeState fields to Peer- Reduce lock contention on the main engine lock during peer download and block negotiation
- Decouple peer state tracking from internal node validation locks
| P3 · cleanup- P3 because it incrementally reduces main lock contention without resolving an active bottleneck or bug
- Provides small leverage toward decoupling network processing from the main lock
| Needs rebase- Needs rebase due to merge conflicts with master
| 1 (+1) | Strong- Strong support for reducing main lock scope for peer state tracking (davidgumberg, mzumsande)
- Confirmed the atomic implementation is safe and matches existing patterns (dergoegge, mzumsande)
- Code approval on the latest head commit (w0xlt)
| 40 + 2 tests- 40 lines added or modified outside tests
- 2 lines added or modified in tests
- 42 lines removed in total
- 4 files, 3 commits
|
(+)#35040 theuni Remove CNode dependency for local address functions and introduce LocalAddressManager- Untangle local address discovery and self-advertisement logic from networking globals
- Improves unit testability and fuzzing while supporting the net and net_processing separation
| P3 · cleanup- P3 because it carries no user-visible behavior change or bug fix
- Improves testability and scoping for P2P networking code
- Unblocks the broader separation of net and net_processing
| Needs rebase, CI failing- Needs rebase, CI is failing, and author set to draft to address header circular dependencies
- Author has been silent for over five months
| 0- No review verdicts recorded
| Crickets- No reviews on the overall concept or implementation yet
- Suggested placing new files under src/node/ (maflcko)
- Converted to draft to investigate circular dependencies (theuni)
| 346 + 75 tests- 346 lines added or modified outside tests
- 75 lines added or modified in tests
- 406 lines removed in total
- 23 files, 23 commits
|
(+)#35315 maflcko refactor: Use NodeClock::time_point in more places- Unify time handling across P2P code to eliminate confusion from mixing raw integers and time points
- Remove deprecated time helpers to make timing mistakes harder in net processing
| P3 · cleanup- P3 because it is an internal cleanup that improves type safety and removes deprecated time helpers in P2P
- Provides minor tie-breaking precision improvements when evaluating peer eviction candidates
- Ranking pass: Type-safety cleanup with no behavioral payoff; belongs with the refactor cluster rather than above feature work.
| Needs rebase- Needs rebase due to merge conflicts with master
- Author has been silent for nearly two months with recent nits unaddressed
| 3 (+2) | Positive w/ caveats- Broad support for type safety improvements across time handling
- Approves the code while noting expanding epoch sentinel usage is suboptimal (ryanofsky)
- Withdrew nonblocking preference for std::optional given overall improvements (stickies-v)
- Verified by testing with minor nits (jeanpablojp)
- Concept approval without stated reasons (w0xlt)
| 148 + 35 tests- 148 lines added or modified outside tests
- 35 lines added or modified in tests
- 181 lines removed in total
- 24 files, 10 commits
|
(+)#34717 naiyoma p2p: remove m_getaddr_sent- Clean up peer address tracking so outbound peers' initial self-announcements can be relayed
- Remove misleading relay-suppression state without weakening existing limits on large address messages
| P3 · cleanup- P3 because it cleans up broken internal state logic that was already rendered ineffective
- The change is a minor peer-to-peer cleanup with low impact on overall network relay
| Author silent 71 days- Stale because the author has been silent for 71 days with open design questions
| 2 (+2) -1 | Disputed- Support because existing size checks already guard address relay and the flag is ineffective (danielabrozzoni, w0xlt)
- Concept objection: removing the flag lets peers abuse token allocations for unsolicited addrs (taki-abedesselam)
- Open privacy questions about topology leakage and relaying self-announcements (ajtowns, Crypt-iQ)
| 1- 1 lines added or modified outside tests
- 0 lines added or modified in tests
- 13 lines removed in total
- 2 files, 2 commits
|
(+)#30988 vasild Split CConnman- Separate low-level socket handling from Bitcoin network protocol logic
- Make networking code more modular and easier for maintainers to maintain
| P3 · cleanup- P3 because it is an internal refactoring without direct user-facing benefit
- Improves peer lookup efficiency to constant time while modularizing network code
- Does not unblock external consumers like HTTP or Stratum v2 as originally envisioned
- Ranking pass: Kept P3 on the modularity problem, but the originally cited consumers declined, leaving the weakest payoff of the refactors.
| Needs rebase- Review is blocked by merge conflicts with master
- Author has been inactive for over six months while in the middle of reworking the API
| 1 (+1) -1 | Disputed- Contested architectural split with multiple Concept ACKs alongside an unresolved blocking objection
- Blocking objection: abstraction is at the wrong level and unsuitable for other protocols (theuni)
- Concept approval for separating low-level socket details from protocol logic (ryanofsky)
- Concept approval for the modularity improvements (Sjors, pinheadmz, tdb3, jonatack, rkrux)
| 1,380 + 50 tests- 1,380 lines added or modified outside tests
- 50 lines added or modified in tests
- 751 lines removed in total
- 20 files, 17 commits
|
(+)#34729 ajtowns Reduce log noise- Prevent misleading high-severity errors and log spam during routine network and proxy connection failures
| P4 · cleanup- P4 because it reduces log noise on connection failures but does not affect protocol logic or DoS resistance
- The impact is limited to cleaner logs for node operators
| Ready | 0 (+4) | Positive w/ caveats- General support for reducing log noise and adding the helper (sedited, l0rinc)
- Nonblocking objection: demoting error levels makes diagnosing failures harder (ryanofsky)
| 61 + 24 tests- 61 lines added or modified outside tests
- 24 lines added or modified in tests
- 54 lines removed in total
- 13 files, 7 commits
|
(+)#36249 fjahr net, rpc: Asmap version improvements/follow-ups- Let node operators and tooling inspect the active ASMap hash via RPC to verify it against attestations
- Avoid forcing operators to parse debug logs to confirm which ASMap version is loaded
| P4 · cleanup- P4 because the change only adds internal caching of the ASMap version hash
- Does not alter network behavior or peer bucketing logic
- Ranking pass: Most user-visible of the marginal items (operators can verify the active asmap hash via RPC), so it leads P4.
| Ready- Ready to review
- Small PR with passing CI and author addressed review feedback
| 1 (+1) | Strong- Strong support across all reviewers
- Verified by testing (jurraca)
- Approved after author implemented suggested hash caching (sedited)
| 35 + 18 tests- 35 lines added or modified outside tests
- 18 lines added or modified in tests
- 23 lines removed in total
- 6 files, 6 commits
|
(+)#35820 l0rinc refactor: keep duration calculations typed- Prevent accidental time unit confusion across subsystems by using explicit typed durations
- Clarify duration calculations where units were previously implicit in comments or parameter names
| P4 · cleanup- P4 because it is an internal cleanup of duration arithmetic in peer processing
- Does not change relay behavior, network protocols, or DoS resistance
| Needs rebase- Needs rebase due to merge conflicts, with author inactive for a month
| 0 | Positive- Concept approval for improved readability (janb84)
- Skeptical that the change adds genuine type safety or clarity (stickies-v)
- Objected to guideline violations and noisy conversions, which the author addressed (maflcko)
| 75 + 32 tests- 75 lines added or modified outside tests
- 32 lines added or modified in tests
- 97 lines removed in total
- 26 files, 13 commits
|
(+)#33854 Eunovo fix assumevalid is ignored during reindex- Prevent fallback to slow full script verification when reindexing after an interrupted initial sync
- Ensure assumevalid applies even if the previous sync stopped before reaching minimum chainwork
| P4 · speedup- P4 because headers sync during block loading is only an auxiliary hook for validation reindex logic
- Does not resolve an independent P2P networking issue or performance bottleneck
| Needs rebase- Needs rebase due to merge conflicts with the main branch
| 0 | Disputed- Concept approval verified with a reproducer (l0rinc)
- Thinks added complexity is not worth the benefit for a rare salvage scenario (sedited)
- Concerned about breaking offline reindexing and potential peer disconnects (sedited, mzumsande)
| 177 + 108 tests- 177 lines added or modified outside tests
- 108 lines added or modified in tests
- 96 lines removed in total
- 11 files, 8 commits
|
(+)#36152 brunoerg test: cover the feature-negotiation version boundary in p2p_leak- Prevent regressions in P2P feature negotiation at the version boundary
- Ensure peers connecting at version 70016 receive expected negotiation messages
| P4 · test coverage- P4 because it only adds boundary test coverage for long-established protocol version checks
- Prevents off-by-one comparison regressions surfaced by mutation testing
| Ready | 1 | Positive- Concept approval with suggestion to extend coverage to SENDTXRCNCL (naiyoma)
- Verified by testing on macOS (Marisha-Sahay)
| 0 + 26 tests- 0 lines added or modified outside tests
- 26 lines added or modified in tests
- 1 lines removed in total
- 2 files, 2 commits
|
(+)#36279 naiyoma test: non-inbound version message promotes address to tried table- Prevent regressions that could allow inbound peers to promote their addresses into the tried table
- Ensure only non-inbound peers get promoted upon receiving a VERSION message
| P4 · test coverage- P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4 for consistency with #36152 and #36229: a single mutation-killing unit test over already-correct behavior, no bug fixed.
- P3 because it locks down an eclipse-mitigation invariant for peer address management
- Kills an untested mutation in network message processing without fixing an active bug
| Ready- Ready for review
- Clean diff with passing CI and no blocking dependencies
| 0- No review verdicts recorded
| Crickets | 0 + 63 tests- 0 lines added or modified outside tests
- 63 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#36229 mertsaner test: Cover AddrMan add edge cases- Cover address manager addition edge cases with unit tests
- Ensures subtle peer-address handling behaviors remain intact during refactoring
| P4 · test coverage- P4 because it tests existing address manager behavior without fixing a bug or regression
- Provides marginal impact since it does not expand measured test coverage metrics
| Ready- Ready to review
- Small unit test patch with no blockers
| 0- No review verdicts recorded
| Crickets- No substantive reviews or concept approvals yet
- Questions whether the tests add coverage or address practical mutations (brunoerg)
| 0 + 164 tests- 0 lines added or modified outside tests
- 164 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#35229 optout21 refactor: Use CBlockIndex parameters as reference- Prevent accidental null dereferences by enforcing non-null invariants at compile time
- Protects developers from runtime null errors across chain and index logic
| P4 · cleanup- Converting pointer arguments in PeerManagerImpl to references is a minor internal refactor that does not modify peer relay or network behavior.
| Author silent- Author has been silent for 113 days, exceeding the stale author threshold
- Reviewing now may be unproductive until the author returns to address feedback
| 0 | Strong- Concept approved with broad agreement and no objections raised
- Support for compile-time safety and clearer non-null guarantees (musaHaruna)
- Concept approval without stated reasons (stickies-v, w0xlt)
- Suggested using reference wrappers for internal chain storage (maflcko)
| 71 + 7 tests- 71 lines added or modified outside tests
- 7 lines added or modified in tests
- 68 lines removed in total
- 12 files, 7 commits
|
(+)#34271 vasild net_processing: make m_tx_for_private_broadcast optional- Avoid holding idle private broadcast state when the feature is disabled
| P4 · cleanup- P4 because it is a minor internal cleanup with no user-facing impact or performance gains
- Memory usage is not reduced and it adds defensive branches for unreachable states
| Needs rebase- Needs rebase and has merge conflicts
- Author has been inactive for over 60 days
| 0 (+1) | Mild- Concept and approach support, but questioned if worth the visual clutter (vasild)
- Does not reduce memory footprint without pointer indirection (l0rinc)
- Future private broadcast plans may make opt-in handling obsolete (mzumsande)
- Moved to draft pending direction on private broadcast (fanquake)
| +91/-40 |