Skip to content

Seeds

Utility to generate the seeds.txt list that is compiled into the client (see src/chainparamsseeds.h and other utilities in 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 GetDesireableServiceFlags 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 the dnsseed.dump output file of a Bitcoin Cash Node Seeder that has been running for at least 30 days. The scripts below assume that the dnsseed.dump file from the mainnet seeder has been copied to seeds_main.txt and the dnsseed.dump file from the testnet3 seeder has been copied to seeds_testnet3.txt, etc.

python3 makeseeds.py < seeds_main.txt > nodes_main.txt
python3 makeseeds.py < seeds_testnet3.txt > nodes_testnet3.txt
python3 makeseeds.py < seeds_testnet4.txt > nodes_testnet4.txt
python3 makeseeds.py < seeds_scalenet.txt > nodes_scalenet.txt
python3 generate-seeds.py . > ../../src/chainparamsseeds.h

Dependencies

Ubuntu:

sudo apt-get install python3-dnspython

Testing user agent pattern modifications

A sample 'dnsseed.dump.test' has been provided, which contains some patterns to test against. It should be adapted when changes are made.

To check that the emitted patterns match only those you want, you can run the commands below. You may need to temporarily disable ASN limiting, ensure that the uptime and service bits in your test entries would pass the filters in makeseeds.py.

$ cp dnsseed.dump.test seeds_main.txt
$ python3 makeseeds.py < seeds_main.txt  | while read s; do grep -F "$s"
seeds_main.txt ; done