Tutorial · Running a node

Upgrade a node

A new IronDivi version is out and you want it without losing your wallet or your chain. Here is the whole upgrade, and the way back, run on a testnet node that went from IronDivi 0.2.4 to 0.2.5 and back again.

About 4 minutes · Checked 2026-10-22

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.

This is not instead of your recovery wordsThe file restores this wallet on this kind of node. Your recovery words restore it anywhere. Keep both, as Back up your wallet explains.

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 seeWhat to do
irondivi-cli stop says Divi server stopping but pgrep irondivid still finds itExpected in 0.2.4 and 0.2.5. Use kill (step 3).
The sha256 does not match the release pageDelete 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 unavailableThe old node is still running. Stop it and wait until pgrep irondivid finds nothing.
getnetworkinfo still shows the old versionThe old program started. Check which file your command or service file points at, and any copy on your PATH.
The log says Creating new walletThe 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 beforeWait 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.