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.
 
 
 
 
Luke Dashjr d8e20ba484 Check for required block height in IsGood to ensure nodes not meeting the requirement are indexed properly 12 years ago
Makefile Use -flto by default 12 years ago
README help text 13 years ago
bitcoin.cpp Check for required block height in IsGood to ensure nodes not meeting the requirement are indexed properly 12 years ago
bitcoin.h add startingheight to output 13 years ago
combine.pl Better combination formula 13 years ago
compat.h Add missing files 13 years ago
db.cpp Remove O(n) selection logic 12 years ago
db.h Check for required block height in IsGood to ensure nodes not meeting the requirement are indexed properly 12 years ago
dns.c Bugfix: Send DNS replies from the same IP the request was sent to 13 years ago
dns.h IPv6/AAAA record support 13 years ago
main.cpp Remove O(n) selection logic 12 years ago
netbase.cpp Updated netbase from upstream bitcoin 12 years ago
netbase.h Updated netbase from upstream bitcoin 12 years ago
protocol.cpp IPv6/AAAA record support 13 years ago
protocol.h IPv6/AAAA record support 13 years ago
serialize.h working 13 years ago
strlcpy.h Add missing files 13 years ago
test.pl IPv6/AAAA record support 13 years ago
uint256.h working 13 years ago
util.cpp Add missing files 13 years ago
util.h fix logging 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.