This repo builds reddcoind
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 Alpine
- Cross-compiled builds are done using our (also auditable)
qemu
- To fit build and complete
make check
test suite, BerkeleyDB is build separately here - Each build produces binaries for:
amd64
,arm64v8
, andarm32v7
- All architectures are aggregated under an easy-to-use Docker Manifest
- All
git-tags
are build automatically, and with an auditable trace - Each successful build of a
git tag
pushes result Docker image to Docker Hub - Images pushed to Docker Hub are never deleted (even if
lnd
version gets overridden, previous one is preserved) - All
final
images are based on Alpine for minimum base size - All binaries are
strip
ped - Each
git-tag
build is tagged with a unique tag number - Each minor version is stored in a separate directory (for the ease of backporting patches)
NOTE: ZMQ
block
andtx
ports are set to28332
and28333
respectively.
NOTE: For an always up-to-date list see: https://hub.docker.com/repository/docker/reddcoincore/reddcoind/tags
v4.22.8
v4.22.7
First pull the image from Docker Hub:
docker pull reddcoincore/reddcoind:v4.22.7
NOTE: Running above will automatically choose native architecture of your CPU.
Or, to pull a specific CPU architecture:
docker pull reddcoincore/reddcoind:v4.22.7-arm64v8
First of all, create a directory in your home directory called .reddcoin
Next, create a config file. You can take a look at the following sample: thebox-compose-system (1).
Some guides on how to configure reddcoin can be found here (reddcoin git repo)
Then to start reddcoind, run:
docker run -it --rm --detach \
-v ~/.reddcoin:/data/.reddcoin \
-p 45444:45444 \
-p 45443:45443 \
-p 18444:18444 \
-p 28333:28333 \
--name reddcoind \
reddcoincore/reddcoind:v4.22.7
That will run reddcoind such that:
- all data generated by the container is stored in
~/.reddcoin
on your host machine, - port
45443
will be reachable for the RPC communication, - port
45444
will be reachable for the peer-to-peer communication, - port
28332
will be reachable for ZMQ block notifications, - port
28333
will be reachable for ZMQ transaction notifications, - created container will get named
reddcoind
, - within the container,
reddcoind
binary is run as unprivileged userreddcoind
(UID=1000
), - that command will run the container in the background and print the ID of the container being run.
To issue any commands to a running container, do:
docker exec -it reddcoind BINARY COMMAND
Where:
BINARY
is eitherreddcoind
,reddcoin-cli
,reddcoin-tx
, (orreddcoin-wallet
onv0.18+
) andCOMMAND
is something you'd normally pass to the binary
Examples:
docker exec -it reddcoind reddcoind --help
docker exec -it reddcoind reddcoind --version
docker exec -it reddcoind reddcoin-cli --help
docker exec -it reddcoind reddcoin-cli -getinfo
docker exec -it reddcoind reddcoin-cli getblockcount
Here is a docker-compose.yml for mainnet
version: '3'
services:
reddcoin:
container_name: reddcoind
user: 1000:1000
image: reddcoincore/reddcoind:v4.22.8
volumes:
- ./reddcoin:/data/.reddcoin
restart: on-failure
environment:
- RPC_SERVER=1
- RPC_USERNAME=[create a user name]
- RPC_PASSWORD=[UseALongAndHardToGuessPassWord]
- RPC_PORT=45443
- RPC_ALLOW_IP=127.0.0.1/0
stop_grace_period: 15m30s
ports:
- "45443:45443"
- "45444:45444"
- "28332:28332"
- "28333:28333"
First, ensure that the reddcoin/
folder is in the directory containing docker-compose.yml.
Then, Docker Compose will mount the reddcoin/
folder to /data/.reddcoin
.
Here are some possible reasons why.
The permissions for the reddcoin data direct is assumed to be UID 1000 (first user).
If you have a different setup, please do the following
# where ".reddcoin" is the data directory
sudo chown -R 1000.1000 $HOME/.reddcoin