2.3 KiB
dnsseeder
Go Language dns seeder for the Twister P2P network
This is a dns seeder for the Twister P2P network
It is based on the original twister-seeder https://github.com/miguelfreitas/twister-seeder
Also see the associated utility to display information about non-standard ip addresses
NOTE: This repository is under ongoing development. Stable releases have been tagged and should be used for production systems.
Installing
Simply use go get to download the code:
$ go get github.com/gombadi/dnsseeder
Dependencies are handled by the Go vendor directory. Note: This means the codebase requires Go 1.5 or higher and use of GO15VENDOREXPERIMENT=1
There seem to be some issues with using go get so a process that works for me on Unix based systems is -
cd ${HOME}
mkdir -p go/src/github.com/gombadi
cd go/src/github.com/gombadi
git clone the repo into this directory
cd dnsseeder
go install
The binary will then be available in ${HOME}/go/bin
Usage
$ dnsseeder -h <domain respond to>
An easy way to run the program is with tmux or screen. This enables you to log out and leave the program running.
Command line Options:
-h hostname to serve
-p port to listen on
-d Produce debug output
-v Produce verbose output
-v Produce stats output
An easy way to run the program is with the following script. Change to suit your system.
#!/bin/bash
LOGDIR=${HOME}/goseederlogs/
mkdir -p ${LOGDIR}
# pass through the logging level needed
if [ -z ${1} ]; then
LOGLV="-v"
else
LOGLV="${1}"
fi
cd
echo
echo "======= Run the Go Language dnsseed ======="
echo
${HOME}/go/bin/dnsseeder -h <host.to.serve> -p <port.to.listen.on> ${LOGLV} 2>&1 | tee ${LOGDIR}/$(date +%F-%s)-goseeder.log
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 dnsseeder in userspace, using the -p 5353 option.
License
For the DNS library license see https://github.com/miekg/dns
For the bitcoin library license see https://github.com/btcsuite/btcd