1See what you run now
Ask the running node for its version, and write down its balance and addresses so you can compare them afterwards. The steps use testnet on Linux, set up as in Install IronDivi. On the real network, leave out --testnet. The commands assume irondivi-cli is on your PATH; if it is not, run ./irondivi-x86_64-linux-musl/irondivi-cli from ~/irondivi.
irondivi-cli --testnet getnetworkinfo | grep subversion "subversion": "/IronDivi:0.2.4/", irondivi-cli --testnet getbalance 100.0 irondivi-cli --testnet getaddressesbylabel "" > ~/addresses-before.txt
getaddressesbylabel ignores the label in IronDivi and lists every address in the wallet, which is what you want here. Our node was at block 360,943 with one address and one transaction.
Then look at the IronDivi releases page. On 22 October 2026 the newest was v0.2.5, from 8 October. v0.2.4 came out the day before it.
2Download and check the new version
Do this while the old node keeps running, so it is down for as short a time as possible. Use a new folder so nothing overwrites the old program yet:
mkdir -p ~/irondivi/0.2.5 && cd ~/irondivi/0.2.5 curl -LO https://github.com/DiviDomains/IronDivi/releases/download/v0.2.5/irondivi-x86_64-linux-musl.tar.gz sha256sum irondivi-x86_64-linux-musl.tar.gz cda18c3c6d9716aba3634edb8caef44a2bb6a26fe72ccad7186cdf3e33530445 irondivi-x86_64-linux-musl.tar.gz tar xzf irondivi-x86_64-linux-musl.tar.gz ./irondivi-x86_64-linux-musl/irondivid --version irondivid 0.2.5
Compare the long string with the sha256: value next to the file on the release page. If they differ, delete the file and do not run it. The package holds irondivid, irondivi-cli, a licence and a README.
3Stop the node
Do not rely on irondivi-cli stop. It prints Divi server stopping, but our 0.2.4 node was still running 60 seconds later, and 0.2.5 does the same. Send the process the stop signal instead and wait until it is gone:
kill $(pgrep irondivid) pgrep irondivid || echo stopped
Ours exited 11 seconds after kill. If you run IronDivi as a service, use sudo systemctl stop irondivid instead, as in Run your node as a service.
4Back up the wallet
IronDivi keeps its wallet in a folder called wallet inside the data folder. Pack it while the node is stopped, and keep the file private, because it holds your keys:
tar -czf ~/irondivi-wallet-backup.tar.gz -C ~/.irondivi/testnet wallet chmod 600 ~/irondivi-wallet-backup.tar.gz
Ours was 3 MB. On the real network the folder is ~/.irondivi/wallet, so use -C ~/.irondivi.
5Swap the programs and start
Rename the old program folder, keep it for step 7, and move the new one into its place. The path stays the same, so a service file or an alias that points at it needs no change:
cd ~/irondivi mv irondivi-x86_64-linux-musl irondivi-0.2.4 mv 0.2.5/irondivi-x86_64-linux-musl . ./irondivi-x86_64-linux-musl/irondivid --testnet --daemon
If you copied the programs into ~/.local/bin or another folder on your PATH, copy the new irondivid and irondivi-cli there too, or you will start the old one again. Or start the service again with sudo systemctl start irondivid. Nothing has to be converted: 0.2.5 used the chain and the wallet as 0.2.4 left them. Ours answered after 14 seconds, at the same block, and its log said:
Wallet loaded: 1 keys, 1 UTXOs, 1 transactions, 0 accounts, 0 scripts, balance = 100 DIVI UTXO reconciliation complete: all 1 wallet UTXOs verified against chain
6Check the upgrade
irondivi-cli --testnet getnetworkinfo | grep subversion "subversion": "/IronDivi:0.2.5/", irondivi-cli --testnet getbalance 100.0 irondivi-cli --testnet getaddressesbylabel "" > ~/addresses-after.txt diff ~/addresses-before.txt ~/addresses-after.txt && echo "addresses identical" addresses identical irondivi-cli --testnet getconnectioncount
A minute after the start our node had 6 connections and had taken in the next block. If the balance is lower while the node is still catching up, wait until it reaches the tip and check again.
7Going back
If the new version misbehaves, stop it and put the old folder back:
kill $(pgrep irondivid) cd ~/irondivi mv irondivi-x86_64-linux-musl irondivi-0.2.5 mv irondivi-0.2.4 irondivi-x86_64-linux-musl ./irondivi-x86_64-linux-musl/irondivid --testnet --daemon
We tried it: 0.2.4 started on the data 0.2.5 had used, showed the same balance and took in new blocks. Then we switched back to 0.2.5. That held for these two versions. A later version may change the data so an older one cannot read it, so read the release notes before you upgrade. If the wallet itself is ever damaged, stop the node, move the wallet folder aside and unpack your backup with tar -xzf ~/irondivi-wallet-backup.tar.gz -C ~/.irondivi/testnet.
8The original Divi node
Divi 3.0.0, from 14 July 2023, is still the newest version of the original node; the one before it was 2.5.1. If you followed Install the Divi node, you already run the newest, and there is nothing to upgrade. We could not test an upgrade, because there is no newer version to upgrade to.
If one comes out, the same order applies: check it, stop the node with divi-cli stop (which does work on the original node), copy wallet.dat, swap the program folder and start it. Read the release notes first for anything extra, such as a one-time -reindex.
If something goes wrong
| What you see | What to do |
|---|---|
irondivi-cli stop says Divi server stopping but pgrep irondivid still finds it | Expected in 0.2.4 and 0.2.5. Use kill (step 3). |
| The sha256 does not match the release page | Delete the file and download it again. Never run a file that does not match. |
The new node exits at once, and debug.log in the data folder says While lock file: …/chainstate/LOCK: Resource temporarily unavailable | The old node is still running. Stop it and wait until pgrep irondivid finds nothing. |
getnetworkinfo still shows the old version | The old program started. Check which file your command or service file points at, and any copy on your PATH. |
The log says Creating new wallet | The node is using a different data folder. Stop it and start it with the right --datadir. Your wallet is untouched. |
| The balance is 0 or lower than before | Wait until the node reaches the tip. If it is still wrong, go back (step 7) and restore the wallet backup. |
Next: run your node as a service, or recover a chain if a node will not start.