{
 "number": 35027,
 "input_hash": "b8f6108e0d051afe",
 "model": "openrouter/google/gemini-3.8-flash",
 "batch": false,
 "created": "2026-09-17T15:51:35+00:00",
 "provider": "Google",
 "stop_reason": "end_turn",
 "usage": {
  "input_tokens": 28555,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 0,
  "output_tokens": 2623
 },
 "cost_usd": 0.0312525,
 "error": null,
 "result": {
  "display": {
   "goal": [
    "Allow node operators to set the source IP address for outgoing clearnet connections",
    "Solve routing and multi-homing issues on hosts with multiple network interfaces"
   ],
   "reviewability": [
    "Ready for review",
    "Recent push addressed previous review feedback and all CI checks pass"
   ],
   "agreement": [
    "Approach supported by multiple reviewers (vasild, winterrdog, frankomosh)",
    "Initial concern about altering existing -bind behavior was resolved by introducing a dedicated -outboundbind option (luke-jr, gmaxwell)"
   ],
   "categories": [
    {
     "name": "p2p",
     "why": [
      "P3 because it provides a useful networking configuration option for multi-homed node operators",
      "Resolves a 10-year-old feature request (#6476) without affecting baseline protocol security or relay"
     ]
    }
   ]
  },
  "summary": "Adds a `-outboundbind=<addr>` configuration option to specify the local source IP address for outgoing clearnet (IPv4/IPv6) connections. Connections over Tor, I2P, and CJDNS, as well as connections routed through a SOCKS proxy, are untouched. The option performs a trial bind at startup to detect misconfigurations early, fails closed if the local source address cannot be bound at connect time, and adds corresponding unit and functional test coverage.",
  "problem": "On multi-homed hosts with multiple IP addresses or interfaces, outgoing P2P connections default to operating system routing decisions, which may route traffic through an unintended interface or IP address. Node operators wanting their outgoing connections bound to a specific IP had no configuration option to do so.",
  "discussion": {
   "open_concerns": [],
   "resolved_concerns": [
    "Initial design modified `-bind` semantics to affect outbound connections, which luke-jr and gmaxwell pointed out would break local LAN and bridge routing setups; the author resolved this by keeping `-bind` unchanged and adding a dedicated `-outboundbind` option.",
    "vasild requested startup trial validation, strict bare-address parsing without ports, and test updates, all of which the author implemented in subsequent force-pushes."
   ],
   "author_status": "active; addressed all reviewer feedback in August 2026"
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "The PR has passing CI, no merge conflicts, and addresses all prior review comments."
  },
  "agreement": {
   "state": "Strong",
   "summary": "Concept and approach accepted by vasild, winterrdog, and frankomosh after resolving the initial -bind scope concern",
   "reason": "The proposal addresses long-standing issue #6476. Early architectural feedback against overloading `-bind` was adopted cleanly with a dedicated `-outboundbind` flag, and subsequent reviews have been approach ACKs.",
   "evidence": [
    "luke-jr and gmaxwell argued against overloading -bind for outbound connections.",
    "vasild provided Concept ACK and Approach ACK after the separate option was introduced.",
    "frankomosh provided Concept ACK.",
    "winterrdog provided Approach ACK on the latest revision."
   ]
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "p2p",
    "member": true,
    "evidence": "Modifies P2P connection establishment in src/net.cpp and src/netbase.cpp to bind sockets to a specific source address before initiating outgoing connections.",
    "band": "P3",
    "reason_tag": "new feature",
    "score": 0.35,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 2,
     "leverage": 0
    },
    "rationale": "Clear use case and real value for node operators running multi-homed servers, resolving long-standing feature request #6476. As vasild noted, introducing a dedicated option leaving defaults to the OS avoids regressions while cleanly fulfilling operator needs. It is reasonably deferrable as it does not address a security vulnerability or network liveness flaw."
   },
   {
    "name": "docs",
    "member": false,
    "evidence": "Includes release notes and help text describing the new network option, which is standard documentation accompanying a code change rather than a standalone documentation change.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "Not docs: changes to documentation and release notes here merely accompany the P2P feature."
   },
   {
    "name": "tests",
    "member": false,
    "evidence": "Adds functional and unit tests testing the new outbound bind feature specifically.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "Not tests: tests that pin the behavior of one specific area belong to that area (P2P), not test infrastructure."
   },
   {
    "name": "utils",
    "member": false,
    "evidence": "Touches command-line argument registration in src/init.cpp solely for a networking configuration option.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "Not utils: argument parsing adjustments whose sole purpose is P2P networking behavior belong to P2P."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": [],
  "card": "Adds the -outboundbind=<addr> option to bind outgoing clearnet connections to a specific local source IP address per address family. This solves routing and interface selection challenges for operators of multi-homed nodes, closing long-standing issue #6476. The design avoids changing existing -bind behavior and fails closed if local socket binding fails. The approach has received Concept and Approach ACKs from vasild, frankomosh, and winterrdog, with comprehensive unit and functional test coverage in place."
 },
 "raw_text": null
}