This commit is contained in:
NotRin7
2024-03-15 18:16:03 +01:00
commit 0a6901a7f0
1865 changed files with 515440 additions and 0 deletions

21
contrib/seeds/README.md Normal file
View File

@@ -0,0 +1,21 @@
# Seeds
Utility to generate the seeds.txt list that is compiled into the client
(see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and other utilities in [contrib/seeds](/contrib/seeds)).
Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
and remove old versions as necessary (at a minimum when GetDesirableServiceFlags
changes its default return value, as those are the services which seeds are added
to addrman with).
The seeds compiled into the release are created from sipa's DNS seed data, like this:
curl -s http://palladium.sipa.be/seeds.txt.gz | gzip -dc > seeds_main.txt
python3 makeseeds.py < seeds_main.txt > nodes_main.txt
python3 generate-seeds.py . > ../../src/chainparamsseeds.h
## Dependencies
Ubuntu:
sudo apt-get install python3-dnspython

138
contrib/seeds/generate-seeds.py Executable file
View File

@@ -0,0 +1,138 @@
#!/usr/bin/env python3
# Copyright (c) 2014-2017 Wladimir J. van der Laan
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
'''
Script to generate list of seed nodes for chainparams.cpp.
This script expects two text files in the directory that is passed as an
argument:
nodes_main.txt
nodes_test.txt
These files must consist of lines in the format
<ip>
<ip>:<port>
[<ipv6>]
[<ipv6>]:<port>
<onion>.onion
0xDDBBCCAA (IPv4 little-endian old pnSeeds format)
The output will be two data structures with the peers in binary format:
static SeedSpec6 pnSeed6_main[]={
...
}
static SeedSpec6 pnSeed6_test[]={
...
}
These should be pasted into `src/chainparamsseeds.h`.
'''
from base64 import b32decode
from binascii import a2b_hex
import sys
import os
import re
# ipv4 in ipv6 prefix
pchIPv4 = bytearray([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff])
# tor-specific ipv6 prefix
pchOnionCat = bytearray([0xFD,0x87,0xD8,0x7E,0xEB,0x43])
def name_to_ipv6(addr):
if len(addr)>6 and addr.endswith('.onion'):
vchAddr = b32decode(addr[0:-6], True)
if len(vchAddr) != 16-len(pchOnionCat):
raise ValueError('Invalid onion %s' % vchAddr)
return pchOnionCat + vchAddr
elif '.' in addr: # IPv4
return pchIPv4 + bytearray((int(x) for x in addr.split('.')))
elif ':' in addr: # IPv6
sub = [[], []] # prefix, suffix
x = 0
addr = addr.split(':')
for i,comp in enumerate(addr):
if comp == '':
if i == 0 or i == (len(addr)-1): # skip empty component at beginning or end
continue
x += 1 # :: skips to suffix
assert(x < 2)
else: # two bytes per component
val = int(comp, 16)
sub[x].append(val >> 8)
sub[x].append(val & 0xff)
nullbytes = 16 - len(sub[0]) - len(sub[1])
assert((x == 0 and nullbytes == 0) or (x == 1 and nullbytes > 0))
return bytearray(sub[0] + ([0] * nullbytes) + sub[1])
elif addr.startswith('0x'): # IPv4-in-little-endian
return pchIPv4 + bytearray(reversed(a2b_hex(addr[2:])))
else:
raise ValueError('Could not parse address %s' % addr)
def parse_spec(s, defaultport):
match = re.match(r'\[([0-9a-fA-F:]+)\](?::([0-9]+))?$', s)
if match: # ipv6
host = match.group(1)
port = match.group(2)
elif s.count(':') > 1: # ipv6, no port
host = s
port = ''
else:
(host,_,port) = s.partition(':')
if not port:
port = defaultport
else:
port = int(port)
host = name_to_ipv6(host)
return (host,port)
def process_nodes(g, f, structname, defaultport):
g.write('static SeedSpec6 %s[] = {\n' % structname)
first = True
for line in f:
comment = line.find('#')
if comment != -1:
line = line[0:comment]
line = line.strip()
if not line:
continue
if not first:
g.write(',\n')
first = False
(host,port) = parse_spec(line, defaultport)
hoststr = ','.join(('0x%02x' % b) for b in host)
g.write(' {{%s}, %i}' % (hoststr, port))
g.write('\n};\n')
def main():
if len(sys.argv)<2:
print(('Usage: %s <path_to_nodes_txt>' % sys.argv[0]), file=sys.stderr)
sys.exit(1)
g = sys.stdout
indir = sys.argv[1]
g.write('#ifndef PALLADIUM_CHAINPARAMSSEEDS_H\n')
g.write('#define PALLADIUM_CHAINPARAMSSEEDS_H\n')
g.write('/**\n')
g.write(' * List of fixed seed nodes for the palladium network\n')
g.write(' * AUTOGENERATED by contrib/seeds/generate-seeds.py\n')
g.write(' *\n')
g.write(' * Each line contains a 16-byte IPv6 address and a port.\n')
g.write(' * IPv4 as well as onion addresses are wrapped inside an IPv6 address accordingly.\n')
g.write(' */\n')
with open(os.path.join(indir,'nodes_main.txt'), 'r', encoding="utf8") as f:
process_nodes(g, f, 'pnSeed6_main', 8333)
g.write('\n')
with open(os.path.join(indir,'nodes_test.txt'), 'r', encoding="utf8") as f:
process_nodes(g, f, 'pnSeed6_test', 18333)
g.write('#endif // PALLADIUM_CHAINPARAMSSEEDS_H\n')
if __name__ == '__main__':
main()

227
contrib/seeds/makeseeds.py Executable file
View File

@@ -0,0 +1,227 @@
#!/usr/bin/env python3
# Copyright (c) 2013-2019 The Palladium Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
# Generate seeds.txt from Pieter's DNS seeder
#
import re
import sys
import dns.resolver
import collections
NSEEDS=512
MAX_SEEDS_PER_ASN=2
MIN_BLOCKS = 337600
# These are hosts that have been observed to be behaving strangely (e.g.
# aggressively connecting to every node).
with open("suspicious_hosts.txt", mode="r", encoding="utf-8") as f:
SUSPICIOUS_HOSTS = {s.strip() for s in f if s.strip()}
PATTERN_IPV4 = re.compile(r"^((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})):(\d+)$")
PATTERN_IPV6 = re.compile(r"^\[([0-9a-z:]+)\]:(\d+)$")
PATTERN_ONION = re.compile(r"^([abcdefghijklmnopqrstuvwxyz234567]{16}\.onion):(\d+)$")
PATTERN_AGENT = re.compile(
r"^/Satoshi:("
r"0.14.(0|1|2|3|99)|"
r"0.15.(0|1|2|99)|"
r"0.16.(0|1|2|3|99)|"
r"0.17.(0|0.1|1|2|99)|"
r"0.18.(0|1|99)|"
r"0.19.(0|1|99)|"
r"0.20.99"
r")")
def parseline(line):
sline = line.split()
if len(sline) < 11:
return None
m = PATTERN_IPV4.match(sline[0])
sortkey = None
ip = None
if m is None:
m = PATTERN_IPV6.match(sline[0])
if m is None:
m = PATTERN_ONION.match(sline[0])
if m is None:
return None
else:
net = 'onion'
ipstr = sortkey = m.group(1)
port = int(m.group(2))
else:
net = 'ipv6'
if m.group(1) in ['::']: # Not interested in localhost
return None
ipstr = m.group(1)
sortkey = ipstr # XXX parse IPv6 into number, could use name_to_ipv6 from generate-seeds
port = int(m.group(2))
else:
# Do IPv4 sanity check
ip = 0
for i in range(0,4):
if int(m.group(i+2)) < 0 or int(m.group(i+2)) > 255:
return None
ip = ip + (int(m.group(i+2)) << (8*(3-i)))
if ip == 0:
return None
net = 'ipv4'
sortkey = ip
ipstr = m.group(1)
port = int(m.group(6))
# Skip bad results.
if sline[1] == 0:
return None
# Extract uptime %.
uptime30 = float(sline[7][:-1])
# Extract Unix timestamp of last success.
lastsuccess = int(sline[2])
# Extract protocol version.
version = int(sline[10])
# Extract user agent.
agent = sline[11][1:-1]
# Extract service flags.
service = int(sline[9], 16)
# Extract blocks.
blocks = int(sline[8])
# Construct result.
return {
'net': net,
'ip': ipstr,
'port': port,
'ipnum': ip,
'uptime': uptime30,
'lastsuccess': lastsuccess,
'version': version,
'agent': agent,
'service': service,
'blocks': blocks,
'sortkey': sortkey,
}
def dedup(ips):
'''deduplicate by address,port'''
d = {}
for ip in ips:
d[ip['ip'],ip['port']] = ip
return list(d.values())
def filtermultiport(ips):
'''Filter out hosts with more nodes per IP'''
hist = collections.defaultdict(list)
for ip in ips:
hist[ip['sortkey']].append(ip)
return [value[0] for (key,value) in list(hist.items()) if len(value)==1]
def lookup_asn(net, ip):
'''
Look up the asn for an IP (4 or 6) address by querying cymru.com, or None
if it could not be found.
'''
try:
if net == 'ipv4':
ipaddr = ip
prefix = '.origin'
else: # http://www.team-cymru.com/IP-ASN-mapping.html
res = str() # 2001:4860:b002:23::68
for nb in ip.split(':')[:4]: # pick the first 4 nibbles
for c in nb.zfill(4): # right padded with '0'
res += c + '.' # 2001 4860 b002 0023
ipaddr = res.rstrip('.') # 2.0.0.1.4.8.6.0.b.0.0.2.0.0.2.3
prefix = '.origin6'
asn = int([x.to_text() for x in dns.resolver.query('.'.join(
reversed(ipaddr.split('.'))) + prefix + '.asn.cymru.com',
'TXT').response.answer][0].split('\"')[1].split(' ')[0])
return asn
except Exception:
sys.stderr.write('ERR: Could not resolve ASN for "' + ip + '"\n')
return None
# Based on Greg Maxwell's seed_filter.py
def filterbyasn(ips, max_per_asn, max_per_net):
# Sift out ips by type
ips_ipv46 = [ip for ip in ips if ip['net'] in ['ipv4', 'ipv6']]
ips_onion = [ip for ip in ips if ip['net'] == 'onion']
# Filter IPv46 by ASN, and limit to max_per_net per network
result = []
net_count = collections.defaultdict(int)
asn_count = collections.defaultdict(int)
for ip in ips_ipv46:
if net_count[ip['net']] == max_per_net:
continue
asn = lookup_asn(ip['net'], ip['ip'])
if asn is None or asn_count[asn] == max_per_asn:
continue
asn_count[asn] += 1
net_count[ip['net']] += 1
result.append(ip)
# Add back Onions (up to max_per_net)
result.extend(ips_onion[0:max_per_net])
return result
def ip_stats(ips):
hist = collections.defaultdict(int)
for ip in ips:
if ip is not None:
hist[ip['net']] += 1
return '%6d %6d %6d' % (hist['ipv4'], hist['ipv6'], hist['onion'])
def main():
lines = sys.stdin.readlines()
ips = [parseline(line) for line in lines]
print('\x1b[7m IPv4 IPv6 Onion Pass \x1b[0m', file=sys.stderr)
print('%s Initial' % (ip_stats(ips)), file=sys.stderr)
# Skip entries with invalid address.
ips = [ip for ip in ips if ip is not None]
print('%s Skip entries with invalid address' % (ip_stats(ips)), file=sys.stderr)
# Skip duplicates (in case multiple seeds files were concatenated)
ips = dedup(ips)
print('%s After removing duplicates' % (ip_stats(ips)), file=sys.stderr)
# Skip entries from suspicious hosts.
ips = [ip for ip in ips if ip['ip'] not in SUSPICIOUS_HOSTS]
print('%s Skip entries from suspicious hosts' % (ip_stats(ips)), file=sys.stderr)
# Enforce minimal number of blocks.
ips = [ip for ip in ips if ip['blocks'] >= MIN_BLOCKS]
print('%s Enforce minimal number of blocks' % (ip_stats(ips)), file=sys.stderr)
# Require service bit 1.
ips = [ip for ip in ips if (ip['service'] & 1) == 1]
print('%s Require service bit 1' % (ip_stats(ips)), file=sys.stderr)
# Require at least 50% 30-day uptime for clearnet, 10% for onion.
req_uptime = {
'ipv4': 50,
'ipv6': 50,
'onion': 10,
}
ips = [ip for ip in ips if ip['uptime'] > req_uptime[ip['net']]]
print('%s Require minimum uptime' % (ip_stats(ips)), file=sys.stderr)
# Require a known and recent user agent.
ips = [ip for ip in ips if PATTERN_AGENT.match(ip['agent'])]
print('%s Require a known and recent user agent' % (ip_stats(ips)), file=sys.stderr)
# Sort by availability (and use last success as tie breaker)
ips.sort(key=lambda x: (x['uptime'], x['lastsuccess'], x['ip']), reverse=True)
# Filter out hosts with multiple palladium ports, these are likely abusive
ips = filtermultiport(ips)
print('%s Filter out hosts with multiple palladium ports' % (ip_stats(ips)), file=sys.stderr)
# Look up ASNs and limit results, both per ASN and globally.
ips = filterbyasn(ips, MAX_SEEDS_PER_ASN, NSEEDS)
print('%s Look up ASNs and limit results per ASN and per net' % (ip_stats(ips)), file=sys.stderr)
# Sort the results by IP address (for deterministic output).
ips.sort(key=lambda x: (x['net'], x['sortkey']))
for ip in ips:
if ip['net'] == 'ipv6':
print('[%s]:%i' % (ip['ip'], ip['port']))
else:
print('%s:%i' % (ip['ip'], ip['port']))
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,747 @@
2.39.173.126:8333
2.57.38.133:8333
2.92.39.39:15426
2.230.146.163:8333
5.2.74.175:8333
5.8.18.29:8333
5.39.222.39:8333
5.103.137.146:9333
5.128.87.126:8333
5.149.250.76:8333
5.182.39.200:8333
5.187.55.242:8333
5.188.62.24:8333
5.188.62.33:8333
5.188.187.130:8333
5.189.153.179:8333
5.198.20.227:8333
5.199.133.193:8333
5.254.82.130:8333
13.237.147.15:8333
18.27.79.17:8333
20.184.15.116:8433
23.17.160.159:8333
23.175.0.212:8333
23.245.24.154:8333
24.76.122.108:8333
24.96.73.156:8333
24.96.125.57:8333
24.155.196.27:8333
24.203.88.167:8333
24.233.245.188:8333
24.246.31.205:8333
31.6.98.94:8333
31.14.201.156:8333
31.25.241.224:8335
31.43.140.190:8333
31.134.121.223:8333
31.173.48.61:8333
34.203.169.172:8333
35.178.31.4:8333
35.185.172.62:8333
35.206.171.89:8333
35.208.87.203:8333
37.61.219.34:8333
37.143.210.19:8333
37.143.211.83:8333
37.235.128.11:8333
37.252.190.88:8333
38.102.134.85:8333
39.109.0.150:8333
42.200.72.205:8333
43.229.132.102:8333
45.36.184.6:8333
45.58.49.35:8333
45.76.18.47:8333
45.115.239.108:8333
46.23.87.218:8333
46.28.132.34:8333
46.32.50.98:8333
46.36.97.10:8333
46.38.237.108:8333
46.39.129.82:8333
46.160.195.121:8333
46.166.162.45:20001
46.188.30.118:8333
46.229.238.187:8333
46.254.217.169:8333
47.52.114.198:8885
47.88.84.126:8333
47.108.29.152:8333
47.108.30.165:8333
47.222.103.234:8333
49.245.50.224:8333
50.53.250.162:8333
50.225.198.67:6000
51.154.60.34:8333
54.242.17.7:8333
58.146.222.198:8333
58.158.0.86:8333
59.149.205.197:8333
60.251.129.61:8336
61.155.5.4:8333
62.45.4.139:8333
62.97.244.242:8333
62.109.18.23:8333
62.133.194.156:8333
62.138.0.217:8333
62.152.58.16:9421
63.143.34.98:8333
63.211.111.122:8333
63.224.249.240:8333
64.182.119.36:8333
64.229.105.111:8333
65.27.104.112:8333
65.183.76.73:8333
66.151.242.154:8335
66.206.13.70:8333
66.240.237.155:8333
66.240.237.172:8333
67.205.140.145:8333
67.210.228.203:8333
67.221.193.55:8333
67.222.131.151:8333
68.110.90.111:8333
68.142.33.36:8333
68.199.157.183:8333
68.202.128.19:8333
68.206.21.144:8333
69.30.215.42:8333
69.55.234.74:8333
69.59.18.22:8333
69.145.122.160:8333
69.175.49.230:8333
70.64.48.41:8333
71.33.232.126:8333
71.73.18.32:8333
71.146.114.111:8333
72.53.134.182:8333
73.126.97.99:8333
74.83.126.150:8333
74.84.128.158:9333
74.98.242.97:8333
74.118.137.119:8333
74.220.255.190:8333
75.45.51.41:8333
75.158.39.231:8333
76.11.17.187:8333
76.84.79.211:8333
76.167.179.75:8333
77.53.158.137:8333
77.119.229.106:8333
77.120.122.22:8433
77.120.122.114:8433
77.163.136.136:8333
77.220.140.74:8333
77.247.178.130:8333
78.128.62.52:8333
78.128.79.22:8333
78.141.123.99:8333
78.143.214.223:8333
78.159.99.85:8333
79.77.33.131:8333
79.120.70.47:8333
79.142.129.218:8333
79.175.125.210:8333
80.47.156.43:8333
80.89.203.172:8001
80.93.213.246:8333
80.111.142.213:8333
80.147.82.165:8333
80.211.191.11:8333
80.211.245.151:8333
80.229.28.60:8333
80.229.168.1:8333
80.253.94.252:8333
81.4.102.69:8333
81.7.13.84:8333
81.10.205.21:8333
81.117.225.245:8333
81.177.157.81:39993
81.235.185.150:8333
82.29.58.109:8333
82.117.166.77:8333
82.118.20.37:8333
82.146.50.143:8333
82.146.153.130:8333
82.149.97.25:17567
82.169.130.61:8333
82.181.179.230:8333
82.181.218.229:8333
82.194.153.233:8333
82.195.237.253:8333
82.197.218.97:8333
82.199.102.10:8333
82.199.102.133:8333
82.202.197.224:8333
82.217.245.7:8333
82.221.111.136:8333
83.89.27.50:8333
83.89.250.69:8333
83.167.27.4:8333
83.208.254.182:8333
83.217.8.31:44420
83.221.211.116:8335
83.243.59.41:8333
83.251.241.0:8333
84.38.3.249:8333
84.40.94.170:8333
84.192.16.234:8333
84.209.9.23:8333
84.234.96.115:8333
84.248.14.210:8333
85.119.83.25:8333
85.144.119.222:8333
85.145.238.93:8333
85.184.138.108:8333
85.190.0.5:8333
85.202.11.119:8333
85.204.96.207:8333
85.208.69.13:8333
85.214.90.161:8333
85.240.233.220:8333
85.241.106.203:8333
86.15.38.61:8333
86.76.7.132:8333
87.79.68.86:8333
87.79.94.221:8333
87.118.116.237:8333
87.120.8.5:20008
87.222.22.255:8333
87.233.181.146:8333
87.246.46.132:8333
87.249.207.89:8333
88.86.116.140:8333
88.86.116.142:8333
88.88.13.249:8333
88.147.244.250:8333
88.150.230.95:8333
88.202.202.221:8333
88.208.3.195:8333
88.212.44.33:8333
89.25.80.42:8333
89.28.117.31:8333
89.106.199.38:8333
89.142.75.60:8333
89.190.19.162:8333
89.212.9.96:8333
89.212.75.6:8333
89.248.250.12:8333
90.94.83.26:8333
90.182.165.18:8333
91.185.198.234:8333
91.193.237.116:8333
91.204.99.178:8333
91.204.149.5:8333
91.210.24.30:8333
91.211.88.33:8333
91.216.149.28:8333
91.222.128.59:8333
92.18.180.225:8333
92.53.89.123:8333
92.240.69.195:8333
92.249.143.44:8333
92.255.176.109:8333
93.57.81.162:8333
93.90.193.195:8330
93.90.207.46:8333
93.115.26.186:20004
93.115.240.26:8333
93.123.180.164:8333
93.175.204.121:8333
93.180.178.213:8333
94.19.7.55:8333
94.52.112.227:8333
94.53.2.181:8333
94.72.143.26:8333
94.103.120.173:8333
94.237.64.138:8333
94.237.80.207:8333
94.242.255.31:8333
95.24.48.84:15426
95.42.2.113:8333
95.69.249.63:8333
95.79.35.133:8333
95.87.226.56:8333
95.90.3.210:8333
95.110.234.93:8333
95.156.252.34:8333
95.211.189.3:8333
95.217.9.207:8333
96.9.80.109:8333
96.245.218.247:8333
97.104.206.3:8333
98.29.195.204:8333
99.231.196.126:8333
101.100.174.24:8333
101.100.174.240:8333
103.14.244.190:8333
103.37.205.47:8333
103.60.109.184:20008
103.84.84.250:8335
103.85.190.218:20000
103.99.168.100:8333
103.99.168.130:8333
103.214.146.86:8333
104.171.242.155:8333
104.199.184.15:8333
104.244.223.151:8333
105.29.76.194:8333
107.150.45.18:8333
107.180.77.21:8333
108.58.252.82:8333
108.183.77.12:8333
109.72.83.127:8333
109.99.63.159:8333
109.109.36.19:8333
109.110.81.90:8333
109.173.112.224:8333
109.202.107.125:8333
109.205.109.56:8333
109.236.84.141:8333
109.238.81.82:8333
109.248.206.13:8333
111.40.4.103:8333
111.90.140.217:8333
111.90.158.212:8333
112.213.103.98:8333
113.52.135.125:8333
115.47.141.250:8885
115.70.110.4:8333
116.87.15.244:8333
119.17.151.61:8333
119.171.134.87:8333
121.18.238.39:8333
121.78.223.186:8333
121.98.205.102:8333
122.112.148.153:8339
122.116.42.140:8333
124.160.119.93:8333
125.236.215.133:8333
129.13.189.212:8333
129.97.243.18:8333
130.185.77.105:8333
131.114.10.233:8333
131.188.40.34:8333
132.249.239.163:8333
134.19.186.195:8333
134.249.187.97:8333
136.144.215.219:8333
137.226.34.46:8333
139.9.249.234:8333
141.101.8.36:8333
143.89.121.207:8333
143.176.224.104:8333
144.34.161.65:18333
147.253.70.208:8333
148.66.50.82:8335
153.92.127.216:8333
153.120.115.15:8333
154.52.98.2:8444
155.4.116.169:8333
156.19.19.90:8333
156.34.178.138:8333
157.13.61.66:8333
157.13.61.67:8333
158.181.226.33:8333
159.100.242.254:8333
159.100.248.234:8333
159.253.98.209:8333
160.16.0.30:8333
160.20.145.62:8333
162.62.18.226:8333
162.62.26.218:8333
162.209.88.174:8333
162.244.80.208:8333
163.158.202.112:8333
163.172.181.191:8333
166.62.100.55:8333
167.114.35.12:8333
168.62.167.209:8200
168.235.74.110:8333
168.235.90.188:8333
170.249.37.243:8333
172.99.120.113:8333
173.21.218.95:8333
173.51.177.2:8333
173.95.72.234:8333
173.208.128.10:8333
173.209.44.34:8333
173.231.57.194:8333
173.255.204.124:8333
174.65.135.60:8333
174.94.155.224:8333
174.115.120.186:8333
176.53.160.170:8333
176.85.188.213:8333
176.99.2.207:8333
176.121.14.157:8333
176.122.157.173:8333
176.126.85.34:8333
176.198.120.197:8334
178.61.141.198:8333
178.119.183.34:8333
178.234.29.184:8333
178.255.42.126:8333
179.48.251.41:8333
180.150.73.100:8333
181.47.220.242:8333
181.170.139.47:8333
183.110.220.210:30301
183.230.93.139:8333
184.95.58.164:8663
184.164.147.82:41333
185.15.92.18:20993
185.25.60.199:8333
185.52.3.185:8333
185.61.138.4:8333
185.64.116.15:8333
185.83.110.53:8333
185.83.214.123:8333
185.95.219.53:8333
185.96.94.24:8333
185.102.71.6:8333
185.138.35.183:8333
185.140.252.253:8333
185.143.145.113:8333
185.148.3.227:8333
185.157.160.220:8333
185.163.44.44:8333
185.176.221.32:8333
185.186.208.162:8333
185.198.58.47:8333
185.198.59.183:8333
185.215.224.22:8333
185.232.28.254:8333
185.239.236.116:8333
185.251.161.54:8333
188.42.40.234:18333
188.65.212.138:8333
188.65.212.157:8333
188.68.45.143:8333
188.127.229.105:8333
188.131.177.130:8333
188.134.8.36:8333
188.134.88.5:8333
188.138.17.92:8333
188.150.157.11:8333
188.208.111.62:8333
188.231.177.149:8333
190.2.145.177:8333
190.104.249.44:8333
191.209.21.188:8333
192.3.11.20:8333
192.3.11.24:8333
192.34.56.59:8333
192.65.170.15:8333
192.65.170.50:8333
192.146.137.18:8333
192.166.47.32:8333
192.169.94.29:8333
192.227.80.83:8333
192.254.65.126:8333
193.10.203.23:8334
193.29.57.4:8333
193.58.196.212:8333
193.59.41.11:8333
193.84.116.22:8333
193.108.131.43:8333
193.148.71.10:8333
193.169.244.190:8333
193.194.163.35:8333
193.194.163.53:8333
194.5.159.197:8333
194.14.246.205:8333
194.135.92.96:8333
194.135.135.69:8333
194.158.92.150:8333
194.187.251.163:31239
195.56.63.5:8333
195.56.63.10:8333
195.67.139.54:8333
195.95.225.17:8333
195.135.194.8:8333
195.154.113.90:8333
195.206.20.114:8333
195.206.105.42:8333
195.209.249.164:8333
195.224.116.20:8333
198.1.231.6:8333
198.251.83.19:8333
199.48.83.58:8333
199.96.50.211:8333
199.188.204.25:8333
199.192.20.201:8333
200.76.194.7:8333
200.87.116.213:8333
202.28.194.82:8333
202.55.87.45:8333
203.130.48.117:8885
203.132.95.10:8333
204.14.245.180:8333
204.152.203.98:8333
205.209.162.98:8333
206.221.178.149:8333
208.110.99.105:8333
209.133.220.74:8333
209.151.237.71:8333
211.149.170.31:8333
212.51.132.226:8333
212.241.70.213:8333
213.21.15.22:8333
213.136.83.8:8333
213.227.152.108:8333
213.254.23.116:8333
216.108.236.180:8333
216.194.165.98:8333
216.236.164.82:8333
217.16.185.165:8333
217.21.24.146:8333
217.26.32.10:8333
217.64.47.138:8333
217.64.133.220:8333
217.92.55.246:8333
217.172.244.9:8333
218.75.140.45:8333
219.75.122.47:8333
220.233.138.130:8333
221.130.29.230:18421
222.122.49.40:8333
222.186.169.1:8333
222.222.43.29:8333
223.16.30.175:8333
[2001:1bc0:cc::a001]:8333
[2001:1c02:2f18:d00:b62e:99ff:fe49:d492]:8333
[2001:250:200:7:d6a9:fcf4:e78d:2d82]:8333
[2001:41c9:1:424::231]:8333
[2001:41d0:1004:19b4::]:8333
[2001:44b8:4195:1801:5c73:5d67:d2a6:9910]:8333
[2001:470:88ff:2e::1]:8333
[2001:470:a:c13::2]:8333
[2001:4800:7821:101:be76:4eff:fe04:9f50]:8333
[2001:4801:7819:74:b745:b9d5:ff10:aaec]:8333
[2001:48d0:1:2163:0:ff:febe:5a80]:8333
[2001:4ba0:fffa:5d::93]:8333
[2001:638:a000:4140::ffff:191]:8333
[2001:678:7dc:8::2]:8333
[2001:678:ec:1:250:56ff:fea7:47e9]:8333
[2001:67c:10ec:2a49:8000::1082]:8333
[2001:67c:16dc:1201:5054:ff:fe17:4dac]:8333
[2001:67c:21ec:1000::a]:8333
[2001:67c:26b4:12:7ae3:b5ff:fe04:6f9c]:8333
[2001:67c:2db8:6::45]:8333
[2001:700:300:1513:29c7:2430:190e:ab59]:8333
[2001:718:801:311:5054:ff:fe19:c483]:8333
[2001:818:e245:f800:4df:2bdf:ecf5:eb60]:8333
[2001:8f1:1404:3700:8e49:715a:2e09:b634]:9444
[2001:ba8:1f1:f069::2]:8333
[2001:bb8:4008:20:648c:5eff:fe74:ce4]:8333
[2001:da8:d800:821:a7d5:f5a7:530d:b71e]:8333
[2001:e42:103:100::30]:8333
[2001:e68:7400:2:6854:419e:221c:82f3]:8333
[2002:b610:1ca3::b610:1ca3]:8333
[2002:b6ff:3dca::b6ff:3dca]:28364
[2400:2651:42e0:3300:40b4:576d:d14c:65d4]:8333
[2400:4052:e20:4f00:69fe:bb33:7b1c:a1ca]:8333
[2401:2500:203:184::15]:8333
[2401:3900:2:1::2]:8333
[2401:a400:3200:5600:14ee:f361:4bdc:1f7c]:8333
[2401:d002:4402:0:8f28:591a:6ea0:c683]:8333
[2402:cb40:1000:504::dead]:8333
[2405:aa00:2::40]:8333
[2409:10:ca20:1df0:224:e8ff:fe1f:60d9]:8333
[2409:8a15:4a1a:2830:7285:c2ff:fe70:60a4]:8333
[2409:8a1e:6938:d2c0:2e0:70ff:fe86:cb59]:8333
[2409:8a28:421:2580:2e0:70ff:fe8b:13e]:8333
[2409:8a28:421:2770:2e0:70ff:fe87:fecb]:8333
[240d:1a:759:6000:ddab:3141:4da0:8878]:8333
[2600:3c01::f03c:91ff:fecd:1b95]:8333
[2600:6c40:7980:27:20a:f7ff:fe69:f4d5]:8333
[2602:ffc5::ffc5:b844]:8333
[2604:2d80:c808:857b:8d6:9e1c:7131:4bea]:8333
[2604:4300:a:2e:21b:21ff:fe11:392]:8333
[2604:5500:c134:4000::3fc]:32797
[2604:5500:c2a3:7b00:cc6:373b:44a8:caa4]:8333
[2604:6000:6e85:4a01:a82d:f9ff:fef5:28b9]:8333
[2604:7780:303:80::80]:8333
[2605:4d00::50]:8333
[2605:9880:0:777:225:90ff:fefc:8958]:8333
[2605:ae00:203::203]:8333
[2605:c000:2a0a:1::102]:8333
[2605:e000:1127:8fc:ec63:a191:32c2:633c]:8333
[2605:e200:d202:300:20c:29ff:fef1:85ec]:8333
[2605:f700:100:400::131:5b54]:8333
[2606:c680:0:b:3830:34ff:fe66:6663]:8333
[2607:4480:2:1:38:102:69:70]:8333
[2607:9280:b:73b:250:56ff:fe21:9c2f]:8333
[2607:f128:40:1703::2]:8333
[2607:f188:0:4:eef4:bbff:fecc:6668]:8333
[2607:f2c0:e1e2:11:1044:9b7a:b81e:1d74]:8333
[2607:f470:8:1048:ae1f:6bff:fe70:7240]:8333
[2620:11c:5001:1118:d267:e5ff:fee9:e673]:8333
[2620:6e:a000:1:42:42:42:42]:8333
[2804:14d:baa7:9674:21e:67ff:fea8:d799]:8333
[2804:14d:baa7:9674:3615:9eff:fe23:d610]:8333
[2804:39e8:ff85:a600:7285:c2ff:feae:9925]:8333
[2804:d41:aa01:1600:5a2d:3b27:3b83:2b45]:8333
[2a00:12d8:7001:1:46e7:6915:75be:92f9]:8333
[2a00:1398:4:2a03:215:5dff:fed6:1033]:8333
[2a00:1630:14::101]:8333
[2a00:1768:2001:27::ef6a]:8333
[2a00:1828:a004:2::666]:8333
[2a00:1838:36:142::ec73]:8333
[2a00:1838:36:7d::d3c6]:8333
[2a00:1f40:2::1126]:8333
[2a00:23a8:41d0:5800:20c:29ff:fe0d:6a75]:8333
[2a00:23c5:fd01:9f00:6317:7c02:788f:88ea]:8333
[2a00:6020:13c2:3800:be6a:a1c8:c9e7:65ec]:8333
[2a00:63c2:8:88::2]:8333
[2a00:7143:3::227]:8333
[2a00:7b80:452:2000::138]:8333
[2a00:8a60:e012:a00::21]:8333
[2a00:ca8:a1f:3025:f949:e442:c940:13e8]:8333
[2a00:d70:0:15:f816:3eff:fe73:d819]:8333
[2a00:d880:5:331::3978]:8333
[2a01:238:420f:9200:fa5a:1a4b:1e6a:fadf]:8333
[2a01:430:17:1::ffff:1153]:8333
[2a01:488:66:1000:53a9:1573:0:1]:8333
[2a01:4f8:120:80cc::2]:8433
[2a01:5f0:beef:5:0:3:0:1]:52101
[2a01:79c:cebc:a630:9dd8:ef55:8374:92a1]:8333
[2a01:7a0:2:137a::11]:8333
[2a01:7a0:2:137c::3]:8333
[2a01:7c8:aab6:db:5054:ff:feca:cfc8]:8333
[2a01:8b81:6403:4700::1]:8333
[2a01:cb00:7cd:b000:fa1f:bd1:fe0:62a6]:8333
[2a01:cb00:d3d:7700:227:eff:fe28:c565]:8333
[2a01:d0:bef2::12]:8333
[2a01:d0:f34f:1:1f67:e250:6aeb:b9c4]:8333
[2a01:e34:ee6b:2ab0:88c2:1c12:f4eb:c26c]:8333
[2a01:e35:2fba:2e90:1:0:b:1]:8333
[2a02:1205:505d:eb50:beae:c5ff:fe42:a973]:8333
[2a02:120b:2c3f:a90:10dd:31ff:fe42:5079]:8333
[2a02:130:300:1520:1::2]:8333
[2a02:13b8:4000:1000:216:e6ff:fe92:8619]:8333
[2a02:180:1:1::5b8f:538c]:8333
[2a02:2168:8062:db00:96de:80ff:fea3:fd00]:8333
[2a02:2770:5:0:21a:4aff:fe44:8370]:8333
[2a02:2788:864:fb3:5b8a:c8f7:9fff:ae2d]:8333
[2a02:2f0d:607:bc00:5e9a:d8ff:fe57:8bc5]:8333
[2a02:348:9a:83b1::1]:8333
[2a02:390:9000:0:218:7dff:fe10:be33]:8333
[2a02:4780:8:6:2:354e:1256:7a04]:8333
[2a02:578:4f07:24:76ad:cef7:93c1:b9b9]:8333
[2a02:6d40:30f6:e901:89b8:bb58:25a:6050]:8333
[2a02:750:7:c11:5054:ff:fe43:eb81]:8333
[2a02:7aa0:1619::adc:8de0]:8333
[2a02:7b40:4f62:19ae::1]:8333
[2a02:8108:95bf:eae3:211:32ff:fe8e:b5b8]:8333
[2a02:e00:fff0:23f::1]:8333
[2a02:e00:fff0:23f::a]:8333
[2a03:1b20:1:f410:40::3e]:16463
[2a03:6000:870:0:46:23:87:218]:8333
[2a03:9da0:f6:1::2]:8333
[2a03:e2c0:1ce::2]:8333
[2a04:2180:0:2::f2]:8333
[2a04:2180:1:c:f000::15]:8333
[2a04:52c0:101:97f::dcbe]:8333
[2a04:ee41:83:50df:d908:f71d:2a86:b337]:8333
[2a05:1700::100]:8333
[2a05:fc87:4::2]:8333
[2a05:fc87:4::7]:8333
[2a07:5741:0:69d::1]:8333
[2a07:5741:0:7cd::1]:8333
[2a07:7200:ffff:c53f::e1:17]:8333
[2a07:b400:1:34c::2:1002]:8333
[2a0b:ae40:3:4a0a::15]:8333
[2a0e:b780::55d1:f05b]:8333
[2c0f:fce8:0:400:b7c::1]:8333
2empatdfea6vwete.onion:8333
34aqcwnnuiqh234f.onion:8333
3gxqibajrtysyp5o.onion:8333
3sami4tg4yhctjyc.onion:8333
3w77hrilg6q64opl.onion:8333
46xh2sbjsjiyl4fu.onion:8333
4ee44qsamrjpywju.onion:8333
4haplrtkprjqhm2j.onion:8333
4u3y3zf2emynt6ui.onion:8333
57dytizbai7o4kq7.onion:8333
5guaeulc7xm4g2mm.onion:8334
5mtvd4dk62ccdk4v.onion:8333
5pmjz6mmikyabaw5.onion:8333
6eurcxoqsa4qpiqq.onion:8333
6ivvkeseojsmpby4.onion:8333
6tlha6njtcuwpfa3.onion:8333
6ymgbvnn6d5nfmv4.onion:8333
72y2n5rary4mywkz.onion:8333
7b75ub5dapphemit.onion:8333
7xaqpr7exrtlnjbb.onion:8333
a64haiqsl76l25gv.onion:8333
ab7ftdfw6qhdx3re.onion:8333
aiupgbtdqpmwfpuz.onion:8333
akeg56rzkg7rsyyg.onion:8333
akinbo7tlegsnsxn.onion:8333
anem5aq4cr2zl7tz.onion:8333
at3w5qisczgguije.onion:8333
auo4zjsp44vydv6c.onion:8333
bowg4prf63givea4.onion:8333
cjuek22p4vv4hzbu.onion:8333
cklaa2xdawrb75fg.onion:8333
coxiru76nnfw3vdj.onion:8333
cwq2fuc54mlp3ojc.onion:8333
dganr7dffsacayml.onion:8333
djbsspmvlc6ijiis.onion:8333
dmfwov5ycnpvulij.onion:8333
dp2ekfbxubpdfrt4.onion:8333
dw2ufbybrgtzssts.onion:4333
edkmfeaapvavhtku.onion:8333
ejdoey3uay3cz7bs.onion:8333
eladlvwflaahxomr.onion:8333
ffhx6ttq7ejbodua.onion:8333
hbnnzteon75un65y.onion:8333
hcyxhownxdv7yybw.onion:8333
hdfcxll2tqs2l4jc.onion:8333
hdld2bxyvzy45ds4.onion:8333
hlnnhn2xj2qffqjs.onion:8333
hnqwmqikfmnkpdja.onion:8333
hvmjovdasoin43wn.onion:8333
hwzcbnenp6dsp6ow.onion:8333
i5ellwzndjuke242.onion:8333
iapvpwzs4gpbl6fk.onion:8885
if7fsvgyqwowxkcn.onion:8333
ilukzjazxlxrbuwy.onion:8333
kswfyurnglm65u7b.onion:8333
ldu2hbiorkvdymja.onion:8333
lvvgedppmpigudhz.onion:8333
mk3bnep5ubou7i44.onion:8333
muhp42ytbwi6qf62.onion:8333
n5khsbd6whw7ooip.onion:8333
ndmbrjcvu2s6jcom.onion:8333
nf4iypnyjwfpcjm7.onion:8333
nkdw6ywzt3dqwxuf.onion:8333
o4sl5na6jeqgi3l6.onion:8333
opencubebqqx3buj.onion:8333
ovbkvgdllk3xxeah.onion:8333
pg2jeh62fkq3byps.onion:8333
pkcgxf23ws3lwqvq.onion:8333
qdtau72ifwauot6b.onion:8333
qidnrqy2ozz3nzqq.onion:8333
readybit5veyche6.onion:8333
s2epxac7ovy36ruj.onion:8333
satofxsc3xjadxsm.onion:8333
sv5oitfnsmfoc3wu.onion:8333
uftbw4zi5wlzcwho.onion:8333
uz3pvdhie3372vxw.onion:8333
v2x7gpj3shxfnl25.onion:8333
vov46htt6gyixdmb.onion:8333
wg3b3qxcwcrraq2o.onion:8333
wgeecjm4w4ko66f7.onion:8333
wmxc6ask4a5xyaxh.onion:8333
wqrafn4zal3bbbhr.onion:8333
xhi5x5qc44elydk4.onion:8333
xk6bjlmgvwojvozj.onion:8333
xmgr7fsmp7bgburk.onion:8333
xocvz3dzyu2kzu6f.onion:8333
xv7pt6etwxiygss6.onion:8444
yumx7asj7feoozic.onion:8333
zmaddsqelw2oywfb.onion:8444

View File

@@ -0,0 +1,11 @@
# List of fixed seed nodes for testnet
# Onion nodes
thfsmmn2jpalladium.onion
it2pj4f7657g3rhi.onion
nkf5e6b7pl4jfd4a.onion
4zhkir2ofl7orfom.onion
t6xj6wilh4ytvcs7.onion
i6y6ivorwakd7nw3.onion
ubqj4rsu3nqtxmtp.onion

View File

@@ -0,0 +1,16 @@
130.211.129.106
148.251.238.178
176.9.46.6
178.63.107.226
54.173.72.127
54.174.10.182
54.183.64.54
54.194.231.211
54.66.214.167
54.66.220.137
54.67.33.14
54.77.251.214
54.94.195.96
54.94.200.247
83.81.130.26
88.198.17.7