1. DNS seeds can RPC call the nodes EG trigger some buggy code in implementations - we all know thats possible
No? Open a terminal and type "host dnsseed.bitcoin.dashjr.org"
you get an output like this:
dnsseed.bitcoin.dashjr.org has address 200.8.154.156
dnsseed.bitcoin.dashjr.org has address 124.170.80.250
dnsseed.bitcoin.dashjr.org has address 66.187.187.94
dnsseed.bitcoin.dashjr.org has address 188.81.38.4
dnsseed.bitcoin.dashjr.org has address 18.85.35.180
dnsseed.bitcoin.dashjr.org has address 192.241.135.239
dnsseed.bitcoin.dashjr.org has address 92.232.205.21
dnsseed.bitcoin.dashjr.org has address 202.7.239.164
dnsseed.bitcoin.dashjr.org has address 101.167.34.215
dnsseed.bitcoin.dashjr.org has address 97.92.247.128
dnsseed.bitcoin.dashjr.org has address 68.6.231.19
dnsseed.bitcoin.dashjr.org has address 54.94.207.125
dnsseed.bitcoin.dashjr.org has address 23.243.158.222
dnsseed.bitcoin.dashjr.org has address 62.76.26.214
dnsseed.bitcoin.dashjr.org has address 189.34.57.96
dnsseed.bitcoin.dashjr.org has address 111.164.172.20
dnsseed.bitcoin.dashjr.org has address 71.81.75.127
dnsseed.bitcoin.dashjr.org has address 178.113.182.244
dnsseed.bitcoin.dashjr.org has address 85.74.245.220
dnsseed.bitcoin.dashjr.org has address 79.148.67.94
dnsseed.bitcoin.dashjr.org has address 67.207.80.65
dnsseed.bitcoin.dashjr.org has address 96.23.239.29
dnsseed.bitcoin.dashjr.org has address 90.3.155.239
dnsseed.bitcoin.dashjr.org has address 85.228.58.134
dnsseed.bitcoin.dashjr.org has address 46.4.75.10
dnsseed.bitcoin.dashjr.org has address 185.104.11.148
dnsseed.bitcoin.dashjr.org has address 80.114.11.217
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:34:211e:fde7:79d8
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:5ef5:79fd:30a9:f23:416e:e935
dnsseed.bitcoin.dashjr.org has IPv6 address 2a01:e35:2e54:52c0:5859:d7cb:5cae:2ad5
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:10eb:3b18:b61e:38bd
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:3e:18f5:b5ad:115d
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:9d38:953c:20bf:28b2:afe7:8a94
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:9d38:6ab8:1460:2878:ae4e:5e7
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:9d38:953c:10b3:3382:4fa9:4aaa
dnsseed.bitcoin.dashjr.org has IPv6 address 2a02:2c8:1:253:4d1:229d:b4c0:b4a5
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:65:2785:bc48:6331
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:407:361a:ae98:1c3b
dnsseed.bitcoin.dashjr.org has IPv6 address 2600:6c55:7200:14b:cf4:811c:7cb3:f7a7
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:4137:9e76:c03:13fa:a971:d5e4
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:5ef5:79fb:206f:2bed:bb3c:20a5
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:5ef5:79fb:3822:1edd:a80b:bc9f
dnsseed.bitcoin.dashjr.org has IPv6 address 2001:0:9d38:6abd:3438:37c:4dfd:7d4
Those are node IP's. Thats how DNS seeding works, it simply does a DNS lookup. There is no attack surface here.
and how easy it could be to start making other implementations not have access.
EG anything below 0.13.1 (70014) can find themselves 'lost'
That code you provided deals with adding new nodes to the DNS seed. Old and broken nodes are not added to the DNS seed, but old nodes can of course still query the DNS seed for IP's and connect. Even if they couldn't, you could simply run "host dnsseed.bitcoin.dashjr.org" and add the IP's yourself.
By the way, you're full of shit when you say there are only 3 DNS seeds:
vSeeds.push_back(CDNSSeedData("bitcoin.sipa.be", "seed.bitcoin.sipa.be", true)); // Pieter Wuille, only supports x1, x5, x9, and xd
vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me", true)); // Matt Corallo, only supports x9
vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org")); // Luke Dashjr
vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com", true)); // Christian Decker, supports x1 - xf
vSeeds.push_back(CDNSSeedData("bitcoin.jonasschnelli.ch", "seed.bitcoin.jonasschnelli.ch", true)); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.push_back(CDNSSeedData("petertodd.org", "seed.btc.petertodd.org", true)); // Peter Todd, only supports x1, x5, x9, and xd
By the way, I find it hilarious that the only BU-only DNS seed seed.btcc.com is broken right now, much like everything BU related.
yep if you dont want to upgrade. you have to still download a segwit node just to whitelist yourself.
No you just need to use one as a bridge, can be any node, use mine if you like