Skip to content

Releases: truenorth-project/truenorth

v30.5.1-rc1

v30.5.1-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 03:11
v30.5.1-rc1

Full Changelog: v30.5.0...v30.5.1-rc1

v30.5.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 03:03
v30.5.0

TrueNorth Core v30.5.0

This is the mainnet release. The genesis block is final and compiled in.

Mainnet begins at 2026-10-12 00:00:00 UTC (Unix 1791763200). This is a consensus rule, not a convention: any block timestamped before that instant is rejected, so no amount of hashrate can start the chain early.

Running the daemon before then is fine — it simply has nothing to do. Running the miner before then is not: it will hash happily and every block it finds will be rejected, with nothing in its output to say why. Start it at or after the launch instant.

The genesis block

hash 470c8b8ae824c06575cfae0851282c495b861829211194842590dc6a2c829981
merkle root 2e4de71a24b24ac64cea9bbc52cb6a588c9a0bb53b6745a603240fd9efc6b289
nTime 1791763200 (2026-10-12 00:00:00 UTC)
nBits 0x1e1179ec
nNonce 741213

The coinbase carries a dated headline, as Bitcoin's did:

2026-10-05 Canada honours its top educators with Prime Minister's Awards - Canada.ca

That is a Government of Canada news release of 2026-10-05, so the block cannot have been constructed before that date. Check the genesis hash above against your own node — truenorth-cli getblockhash 0 — before trusting any peer that claims to serve mainnet.

The block subsidy of the genesis output is unspendable (OP_RETURN), as in Bitcoin. There is no premine, no allocation and no founder reward.

What's new since v30.4.1

  • Mainnet genesis finalized. Previous builds carried a placeholder that failed its own proof of work, so mainnet could not start at all.
  • The miner long-polls by default. truenorth-miner now asks the node to release getblocktemplate the moment the tip moves, so a template another miner has already replaced is abandoned immediately instead of at the end of a timer. Measured on testnet4, short polling against a 300-second budget was discarding roughly 45% of submitted work. Opt out with -longpoll=0.
  • -budgetseconds now defaults from -longpoll: 300 when long-poll is on (where it is only a backstop), 30 when it is off (where it is the real staleness bound). An explicit value still wins. Benchmark mode is unaffected.
  • Two more compiled-in mainnet seeds, contributed by robert-pathy, taking a clearnet node with no Tor from one reachable fixed seed to two.
  • doc/reorg-economics.md is new, and the exchange listing guidance is rebuilt around the 72-block consensus reorg cap rather than a calendar.

Breaking changes

  • Delete any mainnet chain directory created from a pre-release build. Those datadirs contain the placeholder genesis, which is a different chain — not an early start on this one. Testnet4, signet and regtest datadirs are unaffected; their genesis blocks have not changed.
  • Miner defaults changed. If you were relying on -budgetseconds alone, read the two bullets above. If you tuned a short budget to work around stale templates, you can drop it.

Verification

Two independent checks. They answer different questions, so do both.

Checksums and signature. SHA256SUMS lists the hash of every artifact and SHA256SUMS.asc is a detached signature over it:

sha256sum --ignore-missing -c SHA256SUMS
gpg --verify SHA256SUMS.asc SHA256SUMS

--ignore-missing so it checks only the archive you actually downloaded instead of failing on the two platforms you did not.

Release key fingerprint:

3F0BAE0458615427B8CA935E3E242DF5E4478AE5

The key is in the repository at contrib/keys/septentrion-dev.asc:

gpg --import contrib/keys/septentrion-dev.asc

Check the fingerprint against a source other than the repository before trusting it — anyone who can alter the repo can alter both the key and the fingerprint printed beside it. It is also in the #truenorth IRC topic.

gpg --verify prints Good signature, then a warning that the key is not certified with a trusted signature. That is expected and does not mean the check failed — it means you have not told GPG you trust this key. What matters is the Good signature line and that the primary key fingerprint matches the above.

Build provenance. The binaries are compiled by GitHub Actions from the tagged source, not on a maintainer's machine. Each artifact carries a provenance attestation binding it to the workflow run and the commit it was built from, recorded in a public transparency log:

gh attestation verify truenorth-v30.5.0-linux-x86_64.tar.gz --repo truenorth-project/truenorth

What neither check covers. These builds are not reproducible yet, so nobody can recompile the tagged source and confirm it yields these exact bytes. The signature attests that these are the files published as this release; the provenance attests which workflow and commit produced them. Reproducible builds through contrib/guix remain the goal.

This release is also the first with a signed git tag. git verify-tag v30.5.0 checks it against the same key.

Mining

CPU only; RandomX with a custom Argon2 salt ("RandomNorth"), so stock xmrig cannot be pointed at this chain. A miner ships in the archive. Start with:

truenorth-miner -chain=main -datadir= -address= -threads=

Leave -longpoll and -budgetseconds alone unless you have a reason. See doc/testnet.md for huge pages and NUMA tuning, both worth 10–40% on multi-socket hardware and inert below roughly 14 threads.

There is no pool. Solo works; P2Pool is preferred for steady payouts but nobody has stood one up yet. The project runs no pool and never will — if an "official TrueNorth pool" appears, it is not.

If your node finds no peers, this release queries no DNS seeds, so discovery depends on the six compiled-in fixed seeds: two clearnet addresses and four onions. If none is reachable from your network, pass an endpoint explicitly — for example -addnode=seed.tor.tncoin.xyz:9555, a hostname one of the seed operators maintains — or ask on IRC. Further endpoints are listed in doc/public-seed-setup.md.

TrueNorth has no official Twitter, Discord or Telegram, and nobody will ever DM you asking for keys or coins. Real-time discussion is #truenorth on OFTC.

Full Changelog: v30.4.1-tn4-reset...v30.5.0

v30.4.1-tn4-reset

Choose a tag to compare

@github-actions github-actions released this 22 Sep 15:09

Full Changelog: v30.4.1-rc2...v30.4.1-tn4-reset

TrueNorth Core v30.4.1-tn4-reset

Released 2026-09-22.

Downloads are attached to this release. This build exists to carry the testnet4 reset; mainnet launches with v30.5.0 on 2026-10-05.

What's new

  • testnet4 restarts from a new genesis at 1790186400 (2026-09-23 18:00:00 UTC). Full rationale and operator steps in doc/testnet4-reset.md.
  • LWMA retarget no longer overflows on chains with a permissive powLimit (917d097). The summed target was multiplied by the weighted solvetime sum before dividing, which wraps mod 2^256 once the summed target passes ~2^234. Consensus change on testnet3, testnet4 and signet. Mainnet is unaffected: its powLimit is 2^224 and the widest possible multiply is 2^245.5.
  • fPowAllowMinDifficultyBlocks is off on testnet3 and testnet4. Under LWMA a powLimit block dominates the 90-block average for its whole residency; one late block inflated the target ~607000x in simulation, with 89 of the next 90 blocks solving in under ten seconds. Mainnet already had the rule off.
  • testnet4 network magic is fac4b8d5 (was fac4b8d4), so nodes on the abandoned chain cannot handshake with nodes on the new one.
  • Pruned-peer windows scaled for 2-minute blocks. MIN_BLOCKS_TO_KEEP goes 288 -> 960 and the NODE_NETWORK_LIMITED thresholds 288/144 -> 960/720, so a pruned peer advertises roughly the wall-clock window the values were meant to describe rather than a fifth of it.
  • Header presync records the per-epoch RandomX seed (2531fc2), so headers validated during presync use the right seed instead of the genesis one. This would have broken IBD once nMinimumChainWork is raised. The same change stops headers already in the index being re-hashed on every announcement.
  • Mainnet wallets derive at SLIP-44 coin type 1867 instead of Bitcoin's 0 (a45597d), so a seed reused across TrueNorth and Bitcoin no longer produces the same keys on both chains.
  • truenorth-chainstate links the P2QRH symbols it needs and no longer fails at link time.
  • The genesis coinbase message is per-chain. It feeds the merkle root and so the genesis hash, which every chain asserts at startup, so a single shared string meant setting mainnet's real message would silently move the genesis of every test chain.
  • A chain whose genesis fails its own proof of work is now rejected at startup with a readable error rather than aborting on an assertion.
  • Man pages regenerated; truenorth-tx and truenorth-wallet test fixtures brought up to current output.

Breaking changes

  • testnet4 chain reset. Delete your testnet4 data directory (~/.truenorth/testnet4 by default) before restarting. Coins on the old chain are gone. A node that is not upgraded stays on the old chain and will not find peers on the new one.
  • testnet3 carries the same retarget and min-difficulty changes. An existing testnet3 data directory is unlikely to sync under this build for the same reason testnet4 could not; that chain is dormant and this has not been exercised.
  • Minimum -prune target is now 1500 MiB (was 550), following MIN_DISK_SPACE_FOR_BLOCK_FILES. A node configured below that refuses to start. -prune=1 (manual pruning via RPC) is unchanged.
  • Newly created mainnet wallets use coin type 1867. Wallets created by earlier builds keep their existing descriptors and are unaffected.

Verification

Two independent checks.

Checksums and signature. SHA256SUMS lists the hash of every artifact and SHA256SUMS.asc is a detached signature over it:

sha256sum -c truenorth-v30.4.1-tn4-reset-linux-x86_64.tar.gz.sha256
gpg --verify SHA256SUMS.asc SHA256SUMS
Release key fingerprint:

3F0BAE0458615427B8CA935E3E242DF5E4478AE5
This is the first TrueNorth release the key has signed. The key itself is in the repository at contrib/keys/septentrion-dev.asc:

gpg --import contrib/keys/septentrion-dev.asc
Check the fingerprint against a source other than the repository before trusting it — anyone who can alter the repo can alter both the key and the fingerprint printed beside it.

gpg --verify prints Good signature, then a warning that the key is not certified with a trusted signature. That is expected and does not mean the check failed — it only means you have not told GPG you trust this key. What matters is the Good signature line and that the primary key fingerprint it prints matches the one above.

Build provenance. The binaries are compiled by GitHub Actions from the tagged source, not on a maintainer's machine. Each artifact carries a provenance attestation binding it to the workflow run and the commit it was built from, recorded in a public transparency log. With the GitHub CLI installed:

gh attestation verify truenorth-v30.4.1-tn4-reset-linux-x86_64.tar.gz --repo truenorth-project/truenorth
What neither check covers: these builds are not reproducible yet, so nobody can recompile the tagged source and confirm it yields these exact bytes. The signature attests that these are the files published as this release. The provenance attests to which workflow and commit produced them. Reproducible builds through contrib/guix are the goal and are not in place.

Nobody will ever DM you asking for keys or coins.

Known issues

  • Mainnet does not run in this build. The mainnet genesis is still a placeholder whose nBits (0x207fffff) is easier than mainnet's own powLimit, so it fails its own proof-of-work check. Since mainnet is the default chain, truenorthd with no arguments exits with:

Error: Genesis block for chain "main" does not satisfy its own proof
of work. This build cannot run that chain.
Pass -testnet4. Mainnet genesis is mined at the launch ceremony and ships in v30.5.0.

v30.4.1-rc2

v30.4.1-rc2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 04:08

v30.4.0-tn4-soft-launch

Choose a tag to compare

v30.2.1-tn4-p2qrh

Choose a tag to compare

@github-actions github-actions released this 16 Aug 23:43

What's Changed

New Contributors

Full Changelog: v30.3.0-tn4-soft-launch...v30.2.1-tn4-p2qrh

v30.3.0-tn4-soft-launch

Choose a tag to compare

v30.2.0-tn4-soft-launch

Pre-release

Choose a tag to compare

v30.2.0-tn3-soft-launch

Pre-release

Choose a tag to compare