No description, website, or topics provided.
Clone or download
Pull request Compare This branch is 15 commits ahead of sipa:master.
Latest commit 4b53a87 Nov 20, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Add .gitignore Oct 12, 2013
Makefile Fix per-flag-cache size tracking Oct 29, 2016
README rename seed Sep 29, 2018
bitcoin.cpp fixes Sep 29, 2018
bitcoin.h Only poll nodes once a week for new addresses Apr 24, 2013
combine.pl change ports Sep 29, 2018
compat.h rename seed Sep 29, 2018
db.cpp Improve filter whitelist Jun 7, 2016
db.h Update db.h Nov 16, 2018
dns.c Add support to filter nodes by node flags May 27, 2016
dns.h Add support to filter nodes by node flags May 27, 2016
main.cpp fix mainseed Nov 20, 2018
netbase.cpp rename seed Sep 29, 2018
netbase.h rename seed Sep 29, 2018
protocol.cpp pchMessageStart update Sep 29, 2018
protocol.h change ports Sep 29, 2018
serialize.h Hostname and version Nov 15, 2018
strlcpy.h Add missing files May 25, 2012
test.pl testing Sep 29, 2018
uint256.h rename seed Sep 29, 2018
util.cpp Add missing files May 25, 2012
util.h fix logging May 25, 2012

README

onixcoin-seeder
==============

Onixcoin-seeder is a crawler for the Onixcoin 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).

REQUIREMENTS
------------

$ sudo apt-get install build-essential libboost-all-dev libssl-dev

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-mail address (with the @ part replaced by .) using -m.

COMPILING
---------
Compiling will require boost and ssl.  On debian systems, these are provided
by `libboost-dev` and `libssl-dev` respectively.

$ make

This will produce the `dnsseed` binary.


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.