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 you want to run and how you want them configured 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 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 that 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.”
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://code.samourai.io/dojo/samourai-dojo/-/archive/master/samourai-dojo-master.zip
Unpack the Dojo archive.
unzip samourai-dojo-master.zip -d .
Copy the contents to the “dojo-app” directory.
cp -a samourai-dojo-master/. dojo-app/
Remove the archive and remaining folder.
rm samourai-dojo-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 Whirlpool CLI #
Package updates can be monitored from the official Whirlpool CLI repository.
Stop the Whirlpool CLI.
sudo systemctl stop whirlpool
Enter the Whirlpool directory.
cd ~/whirlpool
Remove the old CLI jar file.
rm whirlpool-client-cli-*-run.jar
Visit the Whirlpool CLI release page and copy the link to the latest Whirlpool CLI “run.jar” file.
Paste the URL into the terminal, prefixed with the “torsocks wget” command.
torsocks wget ENTERURLHERE
For example, the command for CLI version 0.10.17 would be as follows.
torsocks wget https://code.samourai.io/whirlpool/whirlpool-client-cli/uploads/18b7a87106e9810471aed5aead2d92e8/whirlpool-client-cli-0.10.17-run.jar
Next, edit the ‘ExecStart’ line of your systemd file to correctly reflect the new CLI file version number.
sudo nano /etc/systemd/system/whirlpool.service
Save and exit, then reload systemd.
sudo systemctl daemon-reload
Start Whirlpool CLI.
sudo systemctl start whirlpool
Complete.
Updating System #
The Debian base system can be upgraded anytime to ensure it’s updated with the latest security patches with the following command.
sudo apt update && sudo apt upgrade -y
Complete.