If you would like to modify your Umbrel to run the Taproot enforcing client found here: https://github.com/BitcoinActivation/bitcoin please do the following:
ssh umbrel@umbrel.local
cd umbrel
nano docker-compose.yml
CHANGE LINE:
image: lncm/bitcoind:v0.21.1@sha256:5bedb46d698de16c59e9e43d31485d0d82239bd437d62ac7cf47ebb633214f37
TO THIS:
image: bitcoinmechanic/bitcoind-based:v0.21.0-based-arm64@sha256:484c956abd791b138024367faee894135b87cdc14c288c8210e5c780fc3dd365
ctrl+x, y, Return
cd scripts
sudo ./stop
sudo ./start
exit
This repo builds bitcoind in an auditable way, and packages it into a minimal Docker containers provided for various CPU architectures.
The work here was initially based on ruimarinho/docker-bitcoin-core, but has significantly diverged since.
- All
git-tags(and most commits) are signed byD8CA1776EB9265491D07CE67F546ECBEA809CB18 - 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 checktest 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-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 Alpine for minimum base size - All binaries are
stripped - 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: ZMQ
blockandtxports are set to28332and28333respectively.
NOTE: For an always up-to-date list see: https://hub.docker.com/r/lncm/bitcoind/tags
v0.21.0v0.20.0v0.19.1v0.19.0.1v0.18.1v0.17.2v0.16.3v0.15.2
First pull the image from Docker Hub:
docker pull lncm/bitcoind:v0.21.0NOTE: Running above will automatically choose native architecture of your CPU.
Or, to pull a specific CPU architecture:
docker pull lncm/bitcoind:v0.21.0-arm64v8First of all, create a directory in your home directory called .bitcoin
Next, create a config file. You can take a look at the following samples: thebox-compose-system (1) / bitcoin main repo (2)
Some guides on how to configure bitcoin can be found here (bitcoin git repo)
Then to start bitcoind, run:
docker run -it --rm --detach \
-v ~/.bitcoin:/data/.bitcoin \
-p 8332:8332 \
-p 8333:8333 \
-p 28332:28332 \
-p 28333:28333 \
--name bitcoind \
lncm/bitcoind:v0.21.0That will run bitcoind such that:
- all data generated by the container is stored in
~/.bitcoinon your host machine, - port
8332will be reachable for the RPC communication, - port
8333will be reachable for the peer-to-peer communication, - port
28332will be reachable for ZMQ block notifications, - port
28333will be reachable for ZMQ transaction notifications, - created container will get named
bitcoind, - within the container,
bitcoindbinary is run as unprivileged userbitcoind(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 bitcoind BINARY COMMANDWhere:
BINARYis eitherbitcoind,bitcoin-cli,bitcoin-tx, (orbitcoin-walletonv0.18+) andCOMMANDis something you'd normally pass to the binary
Examples:
docker exec -it bitcoind bitcoind --help
docker exec -it bitcoind bitcoind --version
docker exec -it bitcoind bitcoin-cli --help
docker exec -it bitcoind bitcoin-cli -getinfo
docker exec -it bitcoind bitcoin-cli getblockcountHere are some possible reasons why.
The permissions for the bitcoin data direct is assumed to be UID 1000 (first user).
If you have a different setup, please do the following
# where ".bitcoin" is the data directory
sudo chown -R 1000.1000 $HOME/.bitcoin