twister dns seeder
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Pieter Wuille 635b2ad075 Better combination formula 12 years ago
Makefile Make DNS optional 12 years ago
README help text 13 years ago
bitcoin.cpp monthly stats, subversion, better dump 12 years ago
bitcoin.h monthly stats, subversion, better dump 12 years ago
combine.pl Better combination formula 12 years ago
db.cpp monthly stats, subversion, better dump 12 years ago
db.h monthly stats, subversion, better dump 12 years ago
dns.c getopt 13 years ago
dns.h forgotten file 13 years ago
main.cpp No help output if no host is specified 12 years ago
netbase.cpp nicer output 13 years ago
netbase.h netbase and protocol from satoshi bitcoin 13 years ago
protocol.cpp working 13 years ago
protocol.h working 13 years ago
serialize.h working 13 years ago
uint256.h working 13 years ago
util.h rwlocks 13 years ago

README

bitcoin-seeder
==============

Bitcoin-seeder is a crawler for the Bitcoin network, which exposes a list
of reliable nodes via a built-in DNS server.

Features:
* regularly revisits known nodes to check their availability
* bans nodes after enough failures, or bad behaviour
* accepts nodes down to v0.3.19 to request new IP addresses from,
but only reports good post-v0.3.24 nodes.
* keeps statistics over (exponential) windows of 2 hours, 8 hours,
1 day and 1 week, to base decisions on.
* very low memory (a few tens of megabytes) and cpu requirements.
* crawlers run in parallel (by default 24 threads simultaneously).

USAGE
-----

Assuming you want to run a dns seed on dnsseed.example.com, you will
need an authorative NS record in example.com's domain record, pointing
to for example vps.example.com:

$ dig -t NS dnsseed.example.com

;; ANSWER SECTION
dnsseed.example.com. 86400 IN NS vps.example.com.

On the system vps.example.com, you can now run dnsseed:

./dnsseed -h dnsseed.example.com -n vps.example.com

If you want the DNS server to report SOA records, please provide an
e-mailadres (with the @ part replaced by .) using -m.

RUNNING AS NON-ROOT
-------------------

Typically, you'll need root privileges to listen to port 53 (name service).

One solution is using an iptables rule (Linux only) to redirect it to
a non-privileged port:

$ iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 5353

If properly configured, this will allow you to run dnsseed in userspace, using
the -p 5353 option.