Merge #9736: Pre-0.14.0 hardcoded seeds update
a60677e
Pre-0.14.0 hardcoded seeds update (Wladimir J. van der Laan)bfa9393
contrib/seeds: Update PATTERN_AGENT (Wladimir J. van der Laan)4dfac2c
Update seeds tooling to Python 3 (Wladimir J. van der Laan)
This commit is contained in:
commit
d978c41e1e
5 changed files with 2084 additions and 1614 deletions
|
@ -1,11 +1,19 @@
|
|||
### Seeds ###
|
||||
# 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.
|
||||
|
||||
The seeds compiled into the release are created from sipa's DNS seed data, like this:
|
||||
|
||||
curl -s http://bitcoin.sipa.be/seeds.txt > seeds_main.txt
|
||||
python makeseeds.py < seeds_main.txt > nodes_main.txt
|
||||
python generate-seeds.py . > ../../src/chainparamsseeds.h
|
||||
python3 makeseeds.py < seeds_main.txt > nodes_main.txt
|
||||
python3 generate-seeds.py . > ../../src/chainparamsseeds.h
|
||||
|
||||
## Dependencies
|
||||
|
||||
Ubuntu:
|
||||
|
||||
sudo apt-get install python3-dnspython
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright (c) 2014 Wladimir J. van der Laan
|
||||
#!/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.
|
||||
'''
|
||||
|
@ -31,7 +31,7 @@ The output will be two data structures with the peers in binary format:
|
|||
|
||||
These should be pasted into `src/chainparamsseeds.h`.
|
||||
'''
|
||||
from __future__ import print_function, division
|
||||
|
||||
from base64 import b32decode
|
||||
from binascii import a2b_hex
|
||||
import sys, os
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright (c) 2013-2016 The Bitcoin Core developers
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (c) 2013-2017 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
#
|
||||
|
@ -14,13 +14,13 @@ MIN_BLOCKS = 337600
|
|||
|
||||
# These are hosts that have been observed to be behaving strangely (e.g.
|
||||
# aggressively connecting to every node).
|
||||
SUSPICIOUS_HOSTS = set([
|
||||
SUSPICIOUS_HOSTS = {
|
||||
"130.211.129.106", "178.63.107.226",
|
||||
"83.81.130.26", "88.198.17.7", "148.251.238.178", "176.9.46.6",
|
||||
"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"
|
||||
])
|
||||
}
|
||||
|
||||
import re
|
||||
import sys
|
||||
|
@ -30,7 +30,7 @@ import collections
|
|||
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:0\.8\.6\/|\/Satoshi:0\.9\.(2|3|4|5)\/|\/Satoshi:0\.10\.\d{1,2}\/|\/Satoshi:0\.11\.\d{1,2}\/)$")
|
||||
PATTERN_AGENT = re.compile(r"^(/Satoshi:0.12.(0|1|99)/|/Satoshi:0.13.(0|1|2|99)/)$")
|
||||
|
||||
def parseline(line):
|
||||
sline = line.split()
|
||||
|
@ -104,7 +104,7 @@ def filtermultiport(ips):
|
|||
hist = collections.defaultdict(list)
|
||||
for ip in ips:
|
||||
hist[ip['sortkey']].append(ip)
|
||||
return [value[0] for (key,value) in hist.items() if len(value)==1]
|
||||
return [value[0] for (key,value) in list(hist.items()) if len(value)==1]
|
||||
|
||||
# Based on Greg Maxwell's seed_filter.py
|
||||
def filterbyasn(ips, max_per_asn, max_total):
|
||||
|
@ -164,9 +164,9 @@ def main():
|
|||
|
||||
for ip in ips:
|
||||
if ip['net'] == 'ipv6':
|
||||
print '[%s]:%i' % (ip['ip'], ip['port'])
|
||||
print('[%s]:%i' % (ip['ip'], ip['port']))
|
||||
else:
|
||||
print '%s:%i' % (ip['ip'], ip['port'])
|
||||
print('%s:%i' % (ip['ip'], ip['port']))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue