{
 "number": 36718,
 "input_hash": "9bdad910abaae3ef",
 "model": "ledger",
 "prompt_hash": null,
 "created": "2026-11-02T01:12:09+00:00",
 "result": {
  "summary": "Adds `CNetAddr::IsMulticast()` for IPv4 (224.0.0.0/4) and IPv6 (FF00::/8) ranges and marks them unroutable in `CNetAddr::IsRoutable()`. This prevents multicast addresses received via P2P addr gossip from being stored in addrman or dialed for outbound connections.",
  "problem": "Bitcoin Core does not identify multicast IP ranges as unroutable, meaning gossiped multicast addresses are admitted into addrman and can waste outbound connection slots on unreachable multicast endpoints.",
  "card": "Classifies IPv4 and IPv6 multicast ranges as unroutable in CNetAddr::IsRoutable(). Multicast addresses received over addr gossip were previously admitted into addrman and could be selected for outbound connection attempts. Unit tests for addrman size expectations and asmap vectors are adjusted to account for multicast exclusion. No dependencies.",
  "evidence": [
   "Commit d54f486882: 'Gossiped multicast addresses were therefore accepted into addrman and could be selected for outbound connections.'"
  ],
  "scope_notes": "",
  "changed_since_previous": "Now includes the complete patch showing the implementation of CNetAddr::IsMulticast and test adjustments.",
  "thread": {
   "last_event_at": "2026-11-01T10:25:46Z",
   "events": 1,
   "head_sha": "d54f486882d4d6919b34b81ede6a681c7079f9e3",
   "schema_floor": 2,
   "schema": 2
  },
  "waiting_on": [
   {
    "at": "2026-11-01",
    "id": "c:6556704303",
    "on": "author",
    "url": "https://github.com/bitcoin/bitcoin/pull/36718#issuecomment-6556704303",
    "what": "answer ValeraFinebits's question about the scope regarding existing multicast entries"
   },
   {
    "at": "2026-11-01",
    "id": "c:6556704303",
    "on": "author",
    "url": "https://github.com/bitcoin/bitcoin/pull/36718#issuecomment-6556704303",
    "what": "answer to ValeraFinebits' question about PR scope regarding existing addrman entries"
   }
  ],
  "risk": {
   "level": "low",
   "touches": [
    "p2p"
   ],
   "why": "A flaw in address classification could inadvertently treat valid public IP addresses as unroutable or vice versa, affecting peer connection selection."
  },
  "discussion": {
   "author_status": "last statement processed 2026-11-01",
   "open_concerns": [
    "ValeraFinebits: Whether the PR is intended only to reject new multicast entries or to prevent multicast connection attempts altogether, given existing entries in addrman remain selectable."
   ],
   "resolved_concerns": []
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "Nothing known that would invalidate a review now."
  },
  "agreement": {
   "state": "Crickets",
   "summary": "Crickets: no substantive comment either way",
   "reason": "Initial record. ValeraFinebits asked for clarification regarding the intended scope for existing addrman entries. / Initial record. ValeraFinebits asked a scoping question regarding existing multicast entries in addrman.",
   "evidence": [
    "ValeraFinebits (question, scope, must be answered, open): Whether the PR is intended only to reject new multicast entries or to prevent multicast connection attempts altogether, given existing entries in addrman remain selectable."
   ],
   "objections": [
    {
     "reviewer": "ValeraFinebits",
     "association": "NONE",
     "type": "question",
     "kind": "scope",
     "harm": "",
     "request": "",
     "question": "Whether the PR is intended only to reject new multicast entries or to prevent multicast connection attempts altogether, given existing entries in addrman remain selectable.",
     "text": "Whether the PR is intended only to reject new multicast entries or to prevent multicast connection attempts altogether, given existing entries in addrman remain selectable.",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-11-01: 'Is this PR intended only to reject new multicast entries, or to prevent multicast connection attempts altogether?'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36718#issuecomment-6556704303",
     "id": "c:6556704303",
     "at": "2026-11-01",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    }
   ],
   "support": [],
   "participants": [
    {
     "login": "ValeraFinebits",
     "stance": "question",
     "note": "asked whether the PR intends only to reject new multicast entries or prevent connection attempts altogether",
     "association": "NONE",
     "comments": 1,
     "first": "2026-11-01",
     "last": "2026-11-01"
    }
   ],
   "derivation": "no substantive comment either way",
   "model_state": null,
   "corrections": [],
   "notes": "Initial record. ValeraFinebits asked for clarification regarding the intended scope for existing addrman entries. / Initial record. ValeraFinebits asked a scoping question regarding existing multicast entries in addrman."
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "docs",
    "member": false,
    "evidence": "Matches a keyword in the commit message text referring to 'documentation' IP ranges, but the PR contains no documentation changes.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 0,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": ""
   },
   {
    "name": "p2p",
    "member": true,
    "evidence": "Modifies CNetAddr routing logic in src/netaddress.cpp to filter out multicast addresses, directly impacting addrman and outbound peer selection.",
    "band": "P3",
    "reason_tag": "bug fix",
    "score": 0.35,
    "factors": {
     "bug_severity": 1,
     "leverage": 0,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": "Prevents Bitcoin Core from storing multicast addresses in addrman or dialing them for outbound connections. As noted in commit d54f486882, 'Gossiped multicast addresses were therefore accepted into addrman and could be selected for outbound connections,' which wastes outbound slots on unreachable targets; while useful address-management hygiene, it is reasonably deferrable."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": []
 },
 "cost_usd": 0.0,
 "source": {
  "record": "2026-11-02T01:12:09+00:00",
  "code": "2026-11-02T01:14:55+00:00",
  "judgments": 2
 }
}