Go Language dns seeder for Bitcoin based networks
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.

101 lines
2.3 KiB

9 years ago
# dnsseeder
Go Language dns seeder for the Twister P2P network
This is a dns seeder for the [Twister P2P network](http://twister.net.co/)
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](https://github.com/gombadi/nonstd/)
> **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