Tutorial · Running a node

IronDivi vs the C++ node

Two programs follow the same Divi chain. Where they are the same, where they differ, measured side by side on one machine, and which one to run.

About 8 minutes · Checked 2026-10-22

1Two nodes, one chain

The original Divi node is written in C++ and descends from Bitcoin Core by way of PIVX. Its last release is v3.0.0 from July 2023, and it reports itself to other nodes as DIVI Core: 3.0.0.0. Divi Desktop runs a copy of it behind its window.

IronDivi is a new node written in Rust. Its latest release is v0.2.5 from October 2026, and it reports itself as /IronDivi:0.2.5/. It follows the same chain, accepts the same blocks, talks the same network protocol, and answers the same commands, so you can swap one for the other and your scripts keep working. The rest of this page is about the edges where that is not quite true.

Everything below was measured on 2026-10-21 with both programs running on one Ubuntu 22.04 machine, each synced to the testnet tip, with the same IronDivi and C++ node installs the previous tutorials walk through.

2What is the same

3Files, folders and ports

C++ nodeIronDivi
Programsdivid, divi-cliirondivid, irondivi-cli
Data folder, Linux~/.divi, testnet in testnet3 under it~/.irondivi/testnet
Data folder, Mac~/Library/Application Support/DIVI~/Library/Application Support/IronDivi/testnet
Settings filedivi.conf, key=value linesirondivi.conf, TOML: key = "value"
Walletone file, wallet.data folder, wallet/
Blocks on diskblocks/ and chainstate/chainstate/ holds both; txindex/ if enabled
Logdebug.log, trimmed by the nodedebug.log, rotated into debug.log.1 and so on
Network port, mainnet / testnet51472 / 5147451472 / 51474
Command port, mainnet / testnet51473 / 5147551471 / 51473
Windows buildyesno
The command ports do not line up

IronDivi's testnet command port, 51473, is the C++ node's mainnet command port. If you run both programs on one machine, or move from one to the other and keep an old rpcport line, you can end up talking to the wrong node, or get HTTP 401 Unauthorized because the name and password belong to the other one. Set rpcport yourself in both settings files when they share a machine.

The network ports match, so two nodes on one machine still need one of them moved with port, whichever programs they are.

4Starting and configuring

The C++ node takes single-dash options and the same words in divi.conf; IronDivi takes double-dash options and a TOML file. The common ones:

You wantC++ nodeIronDivi
testnet-testnet or testnet=1--testnet (command line only; it picks the folder)
run in the background-daemon or daemon=1--daemon
another folder-datadir=/path--datadir /path
a peer to try firstaddnode=host:51474, one line eachaddnode = "host:51474", or a list ["a:51474", "b:51474"]
keep every transaction findabletxindex=1txindex = true
stake or notstaking=0staking = false, or setstaking while running
print the log to the screen-printtoconsole--printtoconsole
rebuild the chain from the block files-reindexno such option in 0.2.5; delete chainstate/ and sync again
a settings file elsewhere-conf=/path/divi.conf--conf /path/irondivi.conf
stop the nodedivi-cli stop; it exits in a few secondskill and its process number, or Ctrl+C. irondivi-cli stop answers Divi server stopping but 0.2.5 keeps running

The C++ node reads testnet=1 from the settings file; IronDivi does not, because it needs to know the network before it knows which folder to read the file from. Give --testnet on the command line every time, to the node and to irondivi-cli. Three things only IronDivi has: --addressindex and --spentindex for looking up any address's history, --disablewallet to run with no wallet at all, and --export-chain to write the chain out as JSON. The full list for each is in Config files explained.

Start-up feels different. The C++ node spends about two and a half minutes on "Loading wallet" before it opens a single connection; IronDivi had its first two peers one second after starting.

5Commands only one of them has

We asked both nodes for every command, then called each name that appeared on one side only, so this list is what the programs actually do, not what their help text claims. Masternode commands exist on both and are left out of this tutorial.

C++ node only (IronDivi 0.2.5 answers Method not found):

IronDivi only (divi-cli answers Method not found):

Help is not the whole story

IronDivi's help lists 118 commands but answers more: signmessage and verifymessage work yet are missing from the list, and help signmessage says "Method not found". The C++ help lists 102 and hides a few that work, such as walletpassphrase. When in doubt, call the command.

6Where the answers differ

For commands both nodes have, the fields are nearly always the same. IronDivi keeps a running parity audit that calls every command on both nodes and compares the shape of the answers; at its last run on the main branch, 61 commands matched exactly, 11 could not be compared, and 23 differed, mostly by extra fields that IronDivi adds. In release 0.2.5 you will notice these:

7Memory, disk and sync time

Both nodes, same machine, same afternoon, both at the testnet tip with a transaction index, after about five hours running:

401 MB
C++ node in memory
789 MB
IronDivi in memory
454 MB
C++ node on disk
1.2 GB
IronDivi on disk

IronDivi's folder was 946 MB of chain data plus a 131 MB log; the C++ node's was 415 MB of blocks, 37 MB of chain state and a log it keeps short. IronDivi's log is far chattier than the C++ node's at its default level, so give it room or lower it with setlogconfig.

Sync time from nothing to the tip, on the same machine the same afternoon: the C++ node took about 20 minutes and IronDivi 62 minutes. Both found a fast node on the local network as well as the internet, so this measures the programs more than the connection; on the open internet both will be slower, and an hour or two is normal for either. Testnet had 360,000 blocks at the time; mainnet has many more and takes proportionally longer.

8Which one to run

Whichever you choose, the settings that matter are in Config files explained, and Run a node as a service keeps either one running after a reboot.

If something goes wrong

You seeWhat it means
HTTP 401 Unauthorized from irondivi-cliIt reached a node, but the C++ one: IronDivi's testnet command port is the C++ mainnet port. Set rpcport in both settings files.
Method not found for a command the other node hasSee step 5. Where there is a same-named command on the other side (ban/setban) use it; otherwise the feature is not there yet.
A script that parses getblock breaks on IronDiviIt probably counted lines or expected moneysupply. Parse by field name and treat missing fields as absent.
Addresses start with D on a testnet IronDivi nodeThe known 0.2.5 decoding quirk. The key is right; the prefix is not. Compare the script hex.
Bind failed or address already in useBoth nodes on one machine want the same network port. Give one of them another port.
testnet=1 in irondivi.conf has no effectIronDivi takes the network from the command line only. Add --testnet.

Still stuck? Ask the Divi chatbot, or see all tutorials.