{
 "number": 36675,
 "input_hash": "c5806304b7e94cc4",
 "model": "ledger",
 "prompt_hash": null,
 "created": "2026-10-29T01:22:06+00:00",
 "result": {
  "summary": "Expands compressed IPv6 addresses into full eight-group notation when sending destination hostnames in SOCKS5 CONNECT requests. This works around an upstream Tor issue where relay exit nodes mistakenly parse `<name>:<port>` as a single IPv6 address if `::` absorbs the port as an eighth group, dropping the connection.",
  "problem": "Outbound connections routed through Tor SOCKS5 proxies fail with \"general failure\" for IPv6 peers whose addresses contain an inner `::`. Tor exit relays attempt to parse `<name>:<port>` as an address, causing the compressed address to absorb the port number and fail port extraction, dropping roughly 20% of IPv6 peers in addrman and ~29% of DNS seed IPv6 answers.",
  "card": "Expands shortened IPv6 addresses into full eight-group notation when passing them to SOCKS5 proxies. Nodes using Tor as an outbound proxy fail to connect to IPv6 peers whose addresses contain an inner `::` because Tor exit relays mistake the appended port for an eighth address group and close the stream. This bug prevents connection to an estimated 20% to 30% of reachable IPv6 peers on mainnet. Author verified against Tor 0.4.9.13 that connections failing on master connect and handshake with this change.",
  "evidence": [
   "Author references upstream Tor issue https://gitlab.torproject.org/tpo/core/tor/-/issues/32314: Tor exit's `tor_addr_port_split` parses `2001:db8::1:8333` as a valid IPv6 address without a port and terminates the stream.",
   "Author measurement: \"About 20% of the IPv6 addresses in a gossip-filled addrman, and 29% of current IPv6 DNS seed answers, have an inner `::`.\"",
   "Author test against Tor 0.4.9.13 on mainnet: master failed to connect to four seed-provided peers with inner-`::` addresses (30 \"general failure\" errors), whereas this change allowed all four to connect and complete the version handshake."
  ],
  "scope_notes": "",
  "changed_since_previous": "Initial description with diff.",
  "thread": {
   "last_event_at": "2026-10-27T15:01:35Z",
   "events": 3,
   "head_sha": "721e2f5051142c2194838dd06fe0a86a07621c14",
   "schema_floor": 2,
   "schema": 2
  },
  "waiting_on": [
   {
    "at": "2026-10-27",
    "id": "c:6445417783",
    "on": "reviewer",
    "url": "https://github.com/bitcoin/bitcoin/pull/36675#issuecomment-6445417783",
    "what": "code review and testing"
   }
  ],
  "risk": {
   "level": "low",
   "touches": [
    "p2p"
   ],
   "why": "A formatting error in SOCKS5 destination names could fail outbound connections over SOCKS5 proxies."
  },
  "discussion": {
   "author_status": "last statement processed 2026-10-27",
   "open_concerns": [],
   "resolved_concerns": [
    "darosior: Report the issue upstream to Tor (accepted by darosior 2026-10-27)"
   ]
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "Nothing known that would invalidate a review now."
  },
  "agreement": {
   "state": "Positive",
   "summary": "Positive: support without stated reasons, no open objection (darosior)",
   "reason": "Initial record: darosior suggested upstreaming the Tor bug report, which instagibbs confirmed was already known and closed upstream, after which darosior Concept ACKed. / Initial record. darosior suggested reporting the issue upstream to Tor, which instagibbs pointed out was already reported and closed; darosior then Concept ACKed.",
   "evidence": [
    "darosior: Concept ACK"
   ],
   "objections": [
    {
     "reviewer": "darosior",
     "association": "MEMBER",
     "type": "suggestion",
     "kind": "approach",
     "harm": "",
     "request": "Report the issue upstream to Tor",
     "question": "",
     "text": "Report the issue upstream to Tor",
     "clears_with": "answer",
     "blocking": false,
     "status": "accepted",
     "status_note": "author pointed out it is already a known closed upstream issue; reviewer followed up with Concept ACK",
     "cleared": true,
     "author_replied": true,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [
      "c:6445339269"
     ],
     "evidence": "2026-10-27: 'May be worth upstreaming a bug report.'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36675#pullrequestreview-5669053406",
     "id": "r:5669053406",
     "at": "2026-10-27",
     "status_at": "2026-10-27",
     "status_by": "darosior",
     "resolution_evidence": "2026-10-27: darosior: 'Concept ACK'",
     "pin": null,
     "from_schema": 2
    }
   ],
   "support": [
    {
     "reviewer": "darosior",
     "reason": "",
     "substantive": false,
     "verdict": "Concept ACK",
     "id": "c:6445417783",
     "url": "https://github.com/bitcoin/bitcoin/pull/36675#issuecomment-6445417783",
     "at": "2026-10-27",
     "association": "MEMBER",
     "evidence": "none",
     "areas": []
    }
   ],
   "participants": [
    {
     "login": "darosior",
     "stance": "support",
     "note": "supported workaround with Concept ACK after checking upstream Tor status",
     "association": "MEMBER",
     "comments": 2,
     "first": "2026-10-27",
     "last": "2026-10-27"
    }
   ],
   "derivation": "support without stated reasons, no open objection (darosior)",
   "model_state": null,
   "corrections": [],
   "notes": "Initial record: darosior suggested upstreaming the Tor bug report, which instagibbs confirmed was already known and closed upstream, after which darosior Concept ACKed. / Initial record. darosior suggested reporting the issue upstream to Tor, which instagibbs pointed out was already reported and closed; darosior then Concept ACKed."
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "p2p",
    "member": true,
    "evidence": "Touches `src/netbase.cpp` handling proxy connections and SOCKS5 destination address formatting for Tor outbound peer connectivity.",
    "band": "P2",
    "reason_tag": "bug fix",
    "score": 0.65,
    "factors": {
     "bug_severity": 2,
     "leverage": 0,
     "performance": 0,
     "security_stability": 1,
     "user_value": 2
    },
    "rationale": "Fixes outbound connection failures over Tor SOCKS5 proxies to IPv6 peers with compressed addresses. As measured by the author, roughly 20% of addrman IPv6 addresses and 29% of DNS seed answers have an inner `::`, which previously caused Tor exit nodes to drop connections with general failure errors."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": []
 },
 "cost_usd": 0.0,
 "source": {
  "record": "2026-10-29T01:22:06+00:00",
  "code": "2026-10-29T01:26:13+00:00",
  "judgments": 1
 }
}