Browse Source

Update seeds tooling to Python 3

All the other tooling scripts require Python 3, it makes sense to do so
here too.

Also document the dependency on python3-dnspython.
0.14
Wladimir J. van der Laan 8 years ago
parent
commit
4dfac2c950
  1. 11
      contrib/seeds/README.md
  2. 6
      contrib/seeds/generate-seeds.py
  3. 14
      contrib/seeds/makeseeds.py

11
contrib/seeds/README.md

@ -1,4 +1,4 @@
### Seeds ### # Seeds
Utility to generate the seeds.txt list that is compiled into the client 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)). (see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and other utilities in [contrib/seeds](/contrib/seeds)).
@ -6,6 +6,11 @@ Utility to generate the seeds.txt list that is compiled into the client
The seeds compiled into the release are created from sipa's DNS seed data, like this: 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 curl -s http://bitcoin.sipa.be/seeds.txt > seeds_main.txt
python makeseeds.py < seeds_main.txt > nodes_main.txt python3 makeseeds.py < seeds_main.txt > nodes_main.txt
python generate-seeds.py . > ../../src/chainparamsseeds.h python3 generate-seeds.py . > ../../src/chainparamsseeds.h
## Dependencies
Ubuntu:
sudo apt-get install python3-dnspython

6
contrib/seeds/generate-seeds.py

@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright (c) 2014 Wladimir J. van der Laan # Copyright (c) 2014-2017 Wladimir J. van der Laan
# Distributed under the MIT software license, see the accompanying # Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # 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`. These should be pasted into `src/chainparamsseeds.h`.
''' '''
from __future__ import print_function, division
from base64 import b32decode from base64 import b32decode
from binascii import a2b_hex from binascii import a2b_hex
import sys, os import sys, os

14
contrib/seeds/makeseeds.py

@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python3
# Copyright (c) 2013-2016 The Bitcoin Core developers # Copyright (c) 2013-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying # Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # 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. # These are hosts that have been observed to be behaving strangely (e.g.
# aggressively connecting to every node). # aggressively connecting to every node).
SUSPICIOUS_HOSTS = set([ SUSPICIOUS_HOSTS = {
"130.211.129.106", "178.63.107.226", "130.211.129.106", "178.63.107.226",
"83.81.130.26", "88.198.17.7", "148.251.238.178", "176.9.46.6", "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.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.66.214.167", "54.66.220.137", "54.67.33.14", "54.77.251.214",
"54.94.195.96", "54.94.200.247" "54.94.195.96", "54.94.200.247"
]) }
import re import re
import sys import sys
@ -104,7 +104,7 @@ def filtermultiport(ips):
hist = collections.defaultdict(list) hist = collections.defaultdict(list)
for ip in ips: for ip in ips:
hist[ip['sortkey']].append(ip) 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 # Based on Greg Maxwell's seed_filter.py
def filterbyasn(ips, max_per_asn, max_total): def filterbyasn(ips, max_per_asn, max_total):
@ -164,9 +164,9 @@ def main():
for ip in ips: for ip in ips:
if ip['net'] == 'ipv6': if ip['net'] == 'ipv6':
print '[%s]:%i' % (ip['ip'], ip['port']) print('[%s]:%i' % (ip['ip'], ip['port']))
else: else:
print '%s:%i' % (ip['ip'], ip['port']) print('%s:%i' % (ip['ip'], ip['port']))
if __name__ == '__main__': if __name__ == '__main__':
main() main()

Loading…
Cancel
Save