This addresses the TODO here: https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L1604 and is necessary before introducing async dns queries.
Right now, we resolve an extra hostname for each dns seed, so that we have some source ip to identify them with in addrman. It’s entirely arbitrary and unnecessary.
Instead, create a dummy “ip” for this association with a prefix of fd6b:88c0:8724::/48 (fd + sha256(bitcoin)[0:5]).
I’ve also changed the “source ip” to match a hash of the host with the subdomain included, rather than having all results mapped to the top-level domain.
I’m not sure whether we need to bother with addrman forwards-compatibility for graceful downgrades. Thoughts on that?