Hard Fork 14 Testnet

Hard Fork 14 is coming. Before it goes live on mainnet, we need your help testing it on testnet. Testnet is a separate, isolated network: the coins have no value and nothing you do there touches the real chain. It is the safest place to find problems before the fork.

Hard Fork 14 brings smaller, more efficient transactions (CLSAG signatures and Bulletproofs+), stronger privacy through a larger anonymity set, and an evolved fair-mining algorithm (CryptoNight-Adaptive v7) that keeps mining competitive on ordinary CPUs.

A multi-step process

Hard Fork 14 is a large upgrade with several separate changes, so we did not test it all at once. Rushing everything into a single testnet would have made it impossible to tell which change caused a problem if something broke. Instead we ran each change on its own testnet first, and we are now running the final combined test.

  • Round 1: new transactions and mining algorithm. CLSAG signatures, Bulletproofs+, and CryptoNight-Adaptive v7 together (PR #117). Complete.
  • Round 2: larger ring size. Raised the ring size from 5 to 16 for a bigger anonymity set (PR #124). Complete.
  • Round 3: final combined run. Everything merged together on one chain, exactly as it will ship to mainnet. Testing now.

This is the last round before mainnet. Every Hard Fork 14 change is now merged and running together: CLSAG signatures, Bulletproofs+, ring size 16, and CryptoNight-Adaptive v7, along with all the fixes that came out of the first two rounds. Nothing new is being introduced here. The purpose of this round is to confirm the pieces work together, on real hardware, across as many platforms as we can cover.

That makes this the round where broad participation matters most. The individual changes have each been exercised. What has not been proven is the whole thing, end to end, on machines that are not ours.

Because this is a new combined chain, Round 3 runs on a brand new testnet. Testnet starts fresh from block 0 and activates Hard Fork 14 at block 1000. Difficulty starts at the floor, so mining with a single CPU core is enough to build the chain, cross the fork, and send transactions.

Once past the fork you should see the change in your own transactions: the ring size goes from 5 to 16, so a CLSAG input grows from 224 to 576 bytes and a typical two-in two-out send goes from roughly 1,461 to 2,209 bytes, paying about 50% more fee. That trade-off buys the larger anonymity set, and seeing those bigger transactions go through is part of what we are confirming.

Note: multisig is disabled in this release, and Ledger hardware wallet support is not available for Hard Fork 14. Wallets using either cannot create transactions after the fork. If you rely on either, now is the time to yell very loudly.

1. Download the Round 3 testnet build

Grab the build for your platform. Keep it separate from your mainnet install. You must use this Round 3 build, builds from the earlier rounds will not follow this chain.

Other platforms (ARMv7 / ARMv8, FreeBSD, iOS, 32-bit) are available from the GitHub build below.

2. Prefer source or other platforms?

Every Hard Fork 14 change is merged, so you can build straight from the master branch. Per-platform CI artifacts are attached to each run in the Actions tab of the repository.

Delete your old testnet data first.

This round starts a brand new testnet chain from block 0, so leftover testnet data from any earlier round will conflict with it and cause sync errors. Delete the testnet folder inside your Nerva data directory before starting the daemon:

  • Windows: C:\ProgramData\nerva\testnet
  • Linux / macOS: ~/.nerva/testnet

This only affects testnet. Your mainnet chain (in the parent nerva folder) is not touched.

3. Run a testnet node

Start the daemon with the --testnet flag. It uses its own data directory and ports, so it will not touch your mainnet node.

nervad --testnet

Check you are on the right build before syncing. Type status in the daemon console and confirm it reports software version 0.3.0.0-ac3ec66e2. An older or wrong build reports a different commit and will fork off onto a dead chain, this is the most common cause of “I can’t sync” reports.

If the node has trouble finding peers, add a known testnet node:

nervad --testnet --add-priority-node 74.208.52.101:18565

4. Create a testnet wallet

Open the CLI wallet in testnet mode and create a new wallet when prompted. It will connect to your local testnet daemon.

nerva-wallet-cli --testnet

5. Mine to build the chain and cross the fork

Because testnet starts fresh from block 0, difficulty is very low and a single CPU core is plenty to mine blocks quickly. Mining is how the chain grows, how you get test coins, and how we reach and cross Hard Fork 14 at block 1000. In the daemon console:

start_mining <your_testnet_address> 1

Let it run past block 1000, then send some transactions and confirm they are accepted under the new rules.

Two things that are expected rather than bugs. Blocks after 1000 take noticeably longer to verify, because CryptoNight-Adaptive v7 is a heavier hash, so syncing past the fork is slower than before it. And any transaction still unconfirmed when block 1000 arrives will be rejected and needs sending again, because the old transaction format stops being valid at the fork with no overlap period.

What to test (Round 3)

  • Mine with a single CPU core to help build the chain from block 0 across Hard Fork 14 (block 1000)
  • After the fork, send transfers between testnet wallets, with single and multiple recipients, and confirm they go through
  • Run a sweep (send your whole balance to one address) after the fork and confirm it builds and sends
  • Confirm transactions made after the fork are larger and pay a bit more fee than before, this is the expected cost of the larger ring, not a bug
  • Create a wallet and restore a wallet from seed, including a rescan across the fork
  • Confirm a fresh node syncs cleanly from block 0 all the way past the fork, and reaches the same top block as everyone else
  • Check that your node and wallet survive being stopped and restarted on either side of the fork
  • Try it on different operating systems and hardware, especially anything low powered, 32-bit, or ARM

If anything breaks, a crash, a stuck sync, a rejected block, or a wallet error, that is exactly what we want to hear about.

How to report results

Share results, logs, and issues in the Nerva Discord, or open an issue on GitHub.

When reporting a problem, please include:

  • Your operating system and hardware
  • The build or commit you are running (the status line from the daemon)
  • The daemon log if the node hit an error

Thank you for helping test Hard Fork 14. This is the last chance to catch something before it reaches mainnet, so every node and every platform we cover makes the fork safer.