DNS seeder for the Peercoin network
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 20 commits ahead of thokon00:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
systemd
.dockerignore Dockerize... Apr 29, 2018
.gitignore updated .gitignore Aug 11, 2014
Dockerfile Fix entrypoint to accept params May 5, 2018
Makefile adopted for the FairCoin network Aug 9, 2014
README fix docker link May 7, 2018
bitcoin.cpp port to PPC network Mar 16, 2015
bitcoin.h Only poll nodes once a week for new addresses Apr 24, 2013
combine.pl adopted for the FairCoin network Aug 9, 2014
compat.h removed redundant insert and added a missing define on mac os x Mar 24, 2014
db.cpp Only poll nodes once a week for new addresses Apr 24, 2013
db.h require latest peercoin version. Oct 30, 2016
dns.c Avoid circular references Apr 3, 2015
dns.h
main.cpp chaps seeds May 9, 2018
netbase.cpp Updated netbase from upstream bitcoin Sep 29, 2012
netbase.h Updated netbase from upstream bitcoin Sep 29, 2012
protocol.cpp
protocol.h port to PPC network Mar 16, 2015
serialize.h require latest peercoin version. Oct 30, 2016
strlcpy.h
test.pl IPv6/AAAA record support May 25, 2012
uint256.h working Dec 20, 2011
util.cpp Add missing files May 25, 2012
util.h

README

peercoin-seeder
===============

peercoin-seeder is a crawler for the Peercoin 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 behavior
* accepts nodes down to v0.5.4 to request new IP addresses from,
  but only reports good post-v0.5.4 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 96 threads simultaneously).

Dependencies & building on Ubuntu Linux:

sudo apt install libboost-all-dev libssl-dev
make

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 setcap (Linux only) to give the executable permission
to use a privileged port:

sudo setcap 'cap_net_bind_service=+ep' ./dnsseed

RUNNING in Docker
-----------------

docker pull peerchemist/peercoin-seeder

docker run -it peercoin-seeder --testnet -h $DOMAIN_NAME -n $IP -t 32