This seems really nasty.
ipv4/ipv6 are not set as reachable by default. We only end up setting them to reachable if we’ve discovered an external address. This is extra worrisome now that upnp discovery is off by default.
The result is that addrman only ever contains dns seeds and possibly static seeds in many common use-cases.
Possible fixes:
- Always set ipv4 to reachable. In practice we treat it this way anyway.
- Set ipv4/ipv6 reachable once bound, regardless of whether it’s routable.
- Set ipv4/ipv6 to reachable once a respective connection attempt succeeds.