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.
 
 
 
 
Miguel Freitas 02d90b2097 optimizations until we grow older and bigger: getaddr always and return all known ips per dns thread. 11 years ago
Makefile Use more standard CXXFLAGS 11 years ago
README help text 13 years ago
bitcoin.cpp optimizations until we grow older and bigger: getaddr always and return all known ips per dns thread. 11 years ago
bitcoin.h Only poll nodes once a week for new addresses 11 years ago
combine.pl Better combination formula 12 years ago
compat.h Add missing files 12 years ago
db.cpp optimizations until we grow older and bigger: getaddr always and return all known ips per dns thread. 11 years ago
db.h now twister-seeder 11 years ago
dns.c Bugfix: case-insensitive hostname matching 11 years ago
dns.h IPv6/AAAA record support 12 years ago
main.cpp optimizations until we grow older and bigger: getaddr always and return all known ips per dns thread. 11 years ago
netbase.cpp Updated netbase from upstream bitcoin 12 years ago
netbase.h Updated netbase from upstream bitcoin 12 years ago
protocol.cpp now twister-seeder 11 years ago
protocol.h now twister-seeder 11 years ago
serialize.h working 13 years ago
strlcpy.h Add missing files 12 years ago
test.pl IPv6/AAAA record support 12 years ago
uint256.h working 13 years ago
util.cpp Add missing files 12 years ago
util.h fix logging 12 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.