Introduction #
The ability to update your node’s packages independently provides node operators with a much higher level of sovereignty. You can choose which updates to run and how to configure them rather than relying on the preferences and timescales of plug-and-play node developers.
Here, we will cover the individual upgrade steps of the binaries that make up your node.
Updating Core #
Package updates can be monitored on the official Bitcoin Core repository.
Check what version of Core is currently installed with the following command.
bitcoin-cli --version
If a newer version is available, stop Bitcoin CLI.
bitcoin-cli stop
Visit bitcoincore.org and locate the page for the most current Bitcoin version, avoiding any releases marked “test.”
Enter the downloads directory.
cd ~/downloads
Copy the URL for the latest “x86_64-linux-gnu.tar.gz” package and download it using “wget.”
The following command can be edited to include the required version number.
torsocks wget https://bitcoincore.org/bin/bitcoin-core-0.0/bitcoin-0.0-x86_64-linux-gnu.tar.gz
Download the releases matching verification files.
The following commands can be edited to include the required version number.
torsocks wget https://bitcoincore.org/bin/bitcoin-core-0.0/SHA256SUMS
torsocks wget https://bitcoincore.org/bin/bitcoin-core-0.0/SHA256SUMS.asc
Verify the checksum of the download.
sha256sum --ignore-missing --check SHA256SUMS
The output should show an “ok” message, for example: “bitcoin-0.0-x86_64-linux-gnu.tar.gz: OK.”
Verify the signatures.
gpg --verify SHA256SUMS.asc
The developer keys previously imported should show a “gpg: Good signature” message.
Unpack the downloaded archive.
tar xzf bitcoin-*-x86_64-linux-gnu.tar.gz
Remove the verification files and the empty archive.
rm SHA256SUMS && rm SHA256SUMS.asc
rm -r bitcoin-*-x86_64-linux-gnu.tar.gz
Install the new Core package.
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-*/bin/*
Start Bitcoin Core.
sudo systemctl start bitcoind
Remove the remaining folder.
rm -r bitcoin-*/
Check that the latest version of Bitcoin Core is installed.
bitcoin-cli --version
To confirm that everything is operating as expected, check the logs from the home directory.
tail -f .bitcoin/debug.log
Complete.
Updating Fulcrum #
Package updates can be monitored on the official Fulcrum repository.
Enter the downloads directory.
cd ~/downloads
Copy the URL for the latest “x86_64-linux-gnu.tar.gz” package and download it using “get.”
The following command can be edited to include the required version number.
torsocks wget https://github.com/cculianu/Fulcrum/releases/download/v0.0.0/Fulcrum-0.0.0-x86_64-linux.tar.gz
Download the releases matching verification files.
The following commands can be edited to include the required version number.
torsocks wget https://github.com/cculianu/Fulcrum/releases/download/v0.0.0/Fulcrum-0.0.0-shasums.txt.asc
torsocks wget https://github.com/cculianu/Fulcrum/releases/download/v0.0.0/Fulcrum-0.0.0-shasums.txt
Verify the checksum of the download.
sha256sum --ignore-missing --check Fulcrum-*-shasums.txt
The output should show an “ok” message, for example: “Fulcrum-0.0.0-x86_64-linux.tar.gz: OK.”
Verify the signature.
gpg --verify Fulcrum-*-shasums.txt.asc
Cculianu’s previously imported key should show a “gpg: Good signature” message.
Unpack the downloaded archive.
tar xvf Fulcrum-*-x86_64-linux.tar.gz
Remove the archive.
rm Fulcrum-*-x86_64-linux.tar.gz
Remove the verification files.
rm Fulcrum-*-shasums.txt.asc && rm Fulcrum-*-shasums.txt
Stop Fulcrum.
sudo systemctl stop fulcrum
Enter the Fulcrum directory.
cd ~/fulcrum
Copy existing “fulcrum.conf” and SSL “.pem” files to the downloads directory.
cp key.pem cert.pem fulcrum.conf ~/downloads
Delete the remaining Fulcrum files.
rm -rf ./*
Copy the contents of your newly unpacked archive to the Fulcrum folder.
cp -r ~/downloads/Fulcrum-*-x86_64-linux/* ~/fulcrum
Move the “fulcrum.conf” and SSL “.pem” files to the Fulcrum directory.
mv ~/downloads/{key.pem,cert.pem,fulcrum.conf} ~/fulcrum
Remove the remaining folder.
rm -rf ~/downloads/Fulcrum-*-x86_64-linux
Start Fulcrum.
sudo systemctl start fulcrum.service
Restart Tor.
sudo systemctl restart tor
Check the logs with the following command to confirm everything is operating as expected.
journalctl -fu fulcrum.service
Complete.
Updating Mempool #
Package updates can be monitored from the official Mempool repository.
Enter the Mempool directory.
cd ~/mempool/docker
Pull the latest Mempool Docker package.
docker compose down --rmi all
Build and start the new Mempool Docker package.
docker compose up -d
Complete.
Updating Dojo #
Package updates can be monitored from the official Dojo repository.
SSH into the node as user “dojo.”
If you configured a different username other than “dojo” when initially configuring Dojo, you will need to SSH into that user instead.
Enter the Dojo directory.
cd ~/dojo-app/docker/my-dojo
Stop Dojo.
./dojo.sh stop
Go to the home directory.
cd
Download the latest Dojo release.
torsocks wget https://github.com/Dojo-Open-Source-Project/samourai-dojo/archive/refs/heads/master.zip
Unpack the Dojo archive.
unzip master.zip
Copy the contents to the “dojo-app” directory.
cp -a samourai-dojo-master/. dojo-app/
Remove the archive and remaining folder.
rm master.zip
rm -rf samourai-dojo-master
Return to the “my-dojo” directory.
cd ~/dojo-app/docker/my-dojo
Run the Dojo upgrade script.
./dojo.sh upgrade -y
Once the logs show a constant stream of “node.js” logs, the upgrade is complete, and you can safely exit the logs with “control + c.”
Complete.
Updating System #
The Debian base system can be upgraded anytime to ensure it’s updated with the latest security patches using the following command.
sudo apt update && sudo apt upgrade -y
Complete.