This repo builds dnsseed in an auditable way, and packages it into a minimal Docker containers provided for various CPU architectures.
The work here was initially based on lncm/docker-bitcoind and ruimarinho/docker-bitcoin-core, but has significantly diverged since.
- All
git-tags(and most commits) are signed byABEDC4489B9188E45C2342A82E91240B293BA5D3 - All
git-tags(and most commits) areopentimestamps-ed - All builds aim to be maximally auditable. After
git tag push, the entire process is automated, with each step printed, and the code aiming to be easy to follow - All builds are based on [Debian]
- Cross-compiled builds are done using our (also auditable)
qemu - Each build produces binaries for:
amd64,arm64v8, andarm32v7 - All architectures are aggregated under an easy-to-use Docker Manifest
- All
git-tagsare build automatically, and with an auditable trace - Each successful build of a
git tagpushes result Docker image to Docker Hub - Images pushed to Docker Hub are never deleted (even if
lndversion gets overridden, previous one is preserved) - All
finalimages are based on Debian for minimum base size - Each
git-tagbuild is tagged with a unique tag number - Each minor version is stored in a separate directory (for the ease of backporting patches)
NOTE: For an always up-to-date list see: https://hub.docker.com/repository/docker/reddcoincore/dnsseed/tags
v0.05v0.04v0.03v0.01
First pull the image from Docker Hub:
docker pull reddcoincore/dnsseed:v0.05NOTE: Running above will automatically choose native architecture of your CPU.
Or, to pull a specific CPU architecture:
docker pull reddcoincore/dnsseed:v0.05First of all, create a directory in your home directory called dnsseed
Then to start dnsseed, run:
docker run -it --rm --detach \
-v ./dnsseed:/src \
-p 53:53 \
--name dnsseed \
reddcoincore/dnsseed:v0.05That will run dnsseed such that:
- all data generated by the container is stored in
~/dnsseedon your host machine, - port
53will be reachable for the dns communication, - created container will get named
dnsseed, - that command will run the container in the background and print the ID of the container being run.
Here is a docker-compose.yml
services:
reddcoin-seeder:
container_name: dnsseed
image: reddcoincore/dnsseed:v0.05
command: dnsseed -h dnsseed.example.com -n vps.example.com -p 53 -m info@example.com -v 80001
restart: on-failure
volumes:
- ./dnsseed:/src
ports:
- 53:53/udpFirst, ensure that the ./dnsseed/ folder is in the directory containing docker-compose.yml.
Then, Docker Compose will mount the ./dnsseed/ folder to /src.
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 15353
If properly configured, this will allow you to run dnsseed in userspace, using the -p 15353 option.