Skip to content

v5.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 18:01
03e7ccd

Tari 5.4.0

Released 2026-06-30

This release focuses on hardening the base node's consensus and storage paths, reworking wallet coin selection, and extending Layer‑1 → Layer‑2 (Ootle) burn/claim support. It also improves day‑to‑day operability with a sync‑aware gRPC healthcheck, more flexible peer transport configuration, and bundled install/Ledger scripts.

Compare: v5.3.1-pre.3...v5.4.0


⚠️ Heads‑up: first startup after upgrading will take a while.
This release performs a one‑time JMT backend migration on the base node. The node will appear busy and unavailable while the migration runs, and the duration scales with your database size — expect anywhere from several minutes to significantly longer on large or archival nodes. Do not interrupt or kill the process mid‑migration. Ensure adequate free disk space beforehand and plan for the downtime. See Upgrade notes for details.


Highlights

  • Wallet coin selection reworked for more predictable output/UTXO handling.
  • Consensus hardening across prune mode, block addition, and reorg handling.
  • L1 → L2 burn/claim support extended with stealth‑address claim keys and sidechain‑bound ownership proofs.
  • Sync‑aware gRPC healthcheck for cleaner orchestration and load‑balancer integration.
  • Peer transport preference modes for finer control over how the node connects.

Upgrade notes

  • Automatic wallet key‑id migration. On first startup after upgrading, the wallet migrates legacy output key‑ids to the current format. This runs once; allow it to complete before interrupting. (#7859, closes #7829)
  • JMT backend migration (expect a long first startup). Upgrading to 5.4.0 triggers a one‑time JMT migration on the base node before it becomes available. This can take a while — the time scales with database size, so large or archival nodes may be offline for an extended period. The migration flow has been improved for smoother state transitions (#7862), but you should still: ensure ample free disk space, let it run to completion, and not interrupt the process. Budget for the downtime when scheduling the upgrade.
  • LMDB compaction is now non‑fatal on low disk. If there isn't enough free space to compact, the node logs and continues rather than aborting. Compaction still benefits from adequate headroom, so keep disk space provisioned. (#7874)

Wallet

  • Reworked output selection when building transactions for more predictable coin selection. (#7889)
  • Fixed UTXO selection to correct edge cases in how spendable outputs are chosen. (#7895)
  • Legacy output key‑ids migrated on startup to the current format (see Upgrade notes). (#7859)
  • Stealth‑address claim key for L1 → L2 burns, enabling burn‑to‑claim flows into the Ootle sidechain. (#7861)
  • Burn claim ownership proof now bound to the target sidechain, preventing a proof from being reused against a different sidechain. (#7868)
  • Clearer wallet feedback during operations. (#7845)

Blockchain & consensus

  • Hardened prune mode for greater reliability when running a pruned node. (#7902)
  • Hardened block addition path. (#7888)
  • Updated reorg logic for more robust chain reorganization handling. (#7881)
  • Reject duplicate validator node registrations within a single block. (#7870)
  • Fixed difficulty check. (#7890)
  • Fixed a potential cache correctness issue. (#7623)

Storage & state (JMT / LMDB)

  • Improved JMT upgrade migration flow (see Upgrade notes). (#7862)
  • Reduced JMT data usage. (#7824)
  • LMDB compaction no longer fatal when disk space is insufficient (see Upgrade notes). (#7874)

Networking

  • Peer transport preference modes to control how the node prefers to connect to peers. (#7851, closes #7830)
  • Revised connection handling. (#7865)
  • Improved pool management. (#7857)

Node operations

  • Sync‑aware gRPC healthcheck that reports healthy only once the node is synced — well suited to orchestrators and load balancers. (#7867)

Sidechain / Layer‑2 (Ootle)

  • EndEpoch now carries the next‑epoch hash, tightening epoch transitions on the sidechain. (#7856)
  • Plus the L1 → L2 burn/claim wallet work listed above (#7861, #7868).

Mining

  • xmrig-proxy gains getinfo and getheight methods on the node's integrated proxy. (#7827)

Ledger

  • Ledger scripts bundled into release assets for easier setup. (#7878)
  • Ledger fix. (#7877)

Build, packaging & internals

  • Bundled install scripts with the release. (#7879)
  • StaticApplicationInfo now works for crates.io consumers, improving the experience for downstream Rust crates depending on Tari. (#7860)
  • Build fixes. (#7841)
  • Increased buffer size. (#7844)
  • Removed an unnecessary clone. (#7869)

Full changelog

For the complete commit‑level list, see v5.3.1-pre.3...v5.4.0.