Skip to content

backport: Merge bitcoin/bitcoin#28136, 27581, 18919, 25634, 25284, 27829#7121

Open
vijaydasmp wants to merge 4 commits intodashpay:developfrom
vijaydasmp:Feb_2026_01
Open

backport: Merge bitcoin/bitcoin#28136, 27581, 18919, 25634, 25284, 27829#7121
vijaydasmp wants to merge 4 commits intodashpay:developfrom
vijaydasmp:Feb_2026_01

Conversation

@vijaydasmp
Copy link

Backports

@github-actions
Copy link

github-actions bot commented Jan 31, 2026

✅ No Merge Conflicts Detected

This PR currently has no conflicts with other open PRs.

@vijaydasmp vijaydasmp force-pushed the Feb_2026_01 branch 11 times, most recently from 782715c to 5332bce Compare February 4, 2026 13:56
@github-actions
Copy link

github-actions bot commented Feb 6, 2026

This pull request has conflicts, please rebase.

@github-actions
Copy link

This pull request has conflicts, please rebase.

@vijaydasmp vijaydasmp changed the title backport: Merge bitcoin/bitcoin#28136, 27581, 18919, 25634, 25284, 24957 backport: Merge bitcoin/bitcoin#28136, 27581, 18919, 25634, 25284, 27829 Feb 26, 2026
fanquake and others added 4 commits February 26, 2026 17:09
fa20f89 test: Add gettransaction test for "coin-join" tx (MarcoFalke)

Pull request description:

ACKs for top commit:
  furszy:
    utACK fa20f89

Tree-SHA512: 6e92455ef478d6bf2c544910402be9046698ded66f1f68d5fe5b989aafc20ba0537d362331e0e653595bca553166f6197fe548bdd0bcf295743775b8afb663a1
3ea54e5 net: Add continuous ASMap health check logging (Fabian Jahr)
28d7e55 test: Add tests for unfiltered GetAddr usage (Fabian Jahr)
b8843d3 fuzz: Let fuzzers use filter options in GetAddr/GetAddresses (Fabian Jahr)
e16f420 net: Optionally include terrible addresses in GetAddr results (Fabian Jahr)

Pull request description:

  There are certain statistics we can collect by running all our known clearnet addresses against the ASMap file. This could show issues with a maliciously manipulated file or with an old file that has decayed with time.

  This is just a proof of concept for now. My idea currently is to run the analysis once per day and print the results to logs if an ASMap file is used.

ACKs for top commit:
  achow101:
    ACK 3ea54e5
  mzumsande:
    ACK 3ea54e5
  brunoerg:
    crACK 3ea54e5

Tree-SHA512: 777acbfac43cc43ce4a0a3612434e4ddbc65f59ae8ffc9e24f21de09011bccb297f0599cbaa82bcf40ef68e5af582c4e98556379db7ceff7d9f97574a1cf8e09
…,cpp} to rpc/net.cpp

bbb68ff refactor: drop protocol.h include header in rpc/util.h (Jon Atack)
1dd62c5 refactor: move GetServicesNames from rpc/util.{h,cpp} to rpc/net.cpp (Jon Atack)

Pull request description:

  Move `GetServicesNames()` from `rpc/util` to `rpc/net.cpp`, as it is only called from that compilation unit and there is no reason for other ones to need it.

  Remove the `protocol.h` include in `rpc/util.h`, as it was only needed for `GetServicesNames()`, drop an unneeded forward declaration (the other IWYU suggestions would require more extensive changes in other files), and add 3 already-missing include headers in other translation units that are needed to compile without `protocol.h` in `rpc/util.h`, as `protocol.h` includes `netaddress.h`, which in turn includes `util/strencodings.h`.

ACKs for top commit:
  kevkevinpal:
    lgtm ACK [bbb68ff](bitcoin@bbb68ff)
  ns-xvrn:
    ACK bbb68ff
  achow101:
    ACK bbb68ff

Tree-SHA512: fcbe195874dd4aa9e86548685b6b28595a2c46f9869b79b6e2b3835f76b49cab4bef6a59c8ad6428063a41b7bb6f687229b06ea614fbd103e0531104af7de55d
27b168b Update help text for spend and rawtransaction rpcs (Michael Tidwell)

Pull request description:

  The "data" field without outputs was marked as "required" in the help docs when using bitcoin-cli. This field when left off worked as an intended optional OP_RETURN. closes bitcoin#27828.

  Motivation: It is hard to understand that "data" is actually optional for commands like `createpsbt` and `walletcreatefundedpsbt`.

ACKs for top commit:
  achow101:
    ACK 27b168b
  Sjors:
    tACK 27b168b

Tree-SHA512: 235e7ed4af69880880c04015b3f7de72c8f31ae035485c4c64c483e282948f3ea3f1eef16f15e260a1aaf21114150713516ba6a99967ccad9ecd91ff67cb0450
@vijaydasmp vijaydasmp marked this pull request as ready for review February 27, 2026 02:19
@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8c0f42a and b39ec50.

📒 Files selected for processing (20)
  • src/addrman.cpp
  • src/addrman.h
  • src/addrman_impl.h
  • src/httprpc.cpp
  • src/net.cpp
  • src/net.h
  • src/netgroup.cpp
  • src/netgroup.h
  • src/rest.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/rpc/rawtransaction.cpp
  • src/rpc/util.cpp
  • src/rpc/util.h
  • src/test/addrman_tests.cpp
  • src/test/fuzz/addrman.cpp
  • src/test/fuzz/connman.cpp
  • src/wallet/rpc/spend.cpp
  • test/functional/feature_asmap.py
  • test/functional/wallet_listtransactions.py
💤 Files with no reviewable changes (2)
  • src/rpc/util.cpp
  • src/rpc/util.h

Walkthrough

This pull request introduces a filtered parameter to address retrieval methods across the address manager and network connection interfaces, enabling callers to optionally disable filtering of "terrible" addresses. It adds ASMap health check functionality that validates ASMap effectiveness by collecting and analyzing address-to-ASN mappings during startup. The PR also relocates the GetServicesNames helper function from rpc/util to rpc/net to consolidate service-related RPC utilities. Additional changes include RPC documentation refinements, new include directives, and test cases validating unfiltered address retrieval and ASMap health check behavior.

Sequence Diagram(s)

sequenceDiagram
    participant Startup as Startup Process
    participant Connman as CConnman
    participant AddrMan as AddrMan
    participant NetGroup as NetGroupManager
    participant Log as Debug Log

    Startup->>Connman: Initialize (if ASMap enabled)
    Connman->>Connman: Schedule ASMapHealthCheck
    Connman->>Connman: ASMapHealthCheck()
    Connman->>AddrMan: GetAddresses(IPv4, filtered=false)
    AddrMan-->>Connman: addresses (including terrible)
    Connman->>AddrMan: GetAddresses(IPv6, filtered=false)
    AddrMan-->>Connman: addresses (including terrible)
    Connman->>NetGroup: ASMapHealthCheck(clearnet_addrs)
    NetGroup->>NetGroup: Map each address to ASN
    NetGroup->>NetGroup: Count unmapped, collect ASNs
    NetGroup->>Log: Log health summary
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description 'Backports' is very minimal and generic, using a non-descriptive term that conveys no meaningful information about which specific changes or features are being backported or what their purposes are. Expand the description to identify key changes being backported, such as ASMap health checks, address filtering logic, and RPC refactoring, to give reviewers context.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly references specific Bitcoin upstream PRs (#28136, 27581, 18919, 25634, 25284, 27829) being backported, which matches the diverse changes across address management, ASMap health checks, RPC refactoring, and test additions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants