Skip to content

Changelog

Aggregated release notes across Navio repositories. Regenerated nightly.

All releases on GitHub

v0.2.2 — 2026-09-27

What's Changed

Full Changelog: https://github.com/nav-io/navio-core/compare/v0.2.1...v0.2.2


v0.2.1 — 2026-09-10

What's Changed

Full Changelog: https://github.com/nav-io/navio-core/compare/v0.2.0...v0.2.1


v0.2.0 — 2026-09-07

Navio Core v0.2.0 migrates the BLSCT cryptography stack to the supranational/blst backend, activates the v2 proof-transcript consensus, and introduces the encrypted p2p messaging subsystem with aggregated sends and RFQ atomic swaps.

Every node must update before the activation heights below.

Consensus

  • BLSCT proof transcript v2: canonical commitment binding with domain separation for the range-proof, set-membership and PoPS transcripts. Blocks and transactions signal the version explicitly, and verification enforces flag/height consistency both ways. Activates at height 70,600 on testnet and 42,500 on mainnet.
  • PoPS v2 kernel: the kernel hash binds the set-membership proof image (phi), removing header grindability of the anonymity ring.
  • Hardened proof verifiers: bounded proof deserialization, verifier hardening across BLSCT proof systems, and an overflow guard on the PoPS min-value path.

BLS backend

  • herumi/mcl replaced by vendored supranational/blst across the node, wallet and libblsct; byte-compatible on-chain (a full mainnet sync from genesis validates under the new backend).
  • Differential accept/reject evidence harness against mcl is tagged blst-differential-evidence-v1.

P2P messaging (p2pmsg)

  • Encrypted message bus with identity/prekey separation and forward-secure sessions.
  • Aggregated sends: aggregatesend merges fee-0 cover candidates pulled from peers so broadcast transactions hide which outputs are the sender's.
  • RFQ atomic swaps: standing orders (broadcastorder), quote matching (setswapintent, requestquote, replyquote) and wallet-side acceptance (acceptquotewallet) settle token/NAV swaps in a single aggregate transaction.

Miner

  • Transactions spending a staked commitment created earlier in the same block template are deferred to a later template, and colliding staked-commitment outputs are dropped from the template instead of stalling block production (fixes the 2026-09-05 mainnet stall).

Other

  • Wallet amount checks on connect, staked-commitment set reuse, PoS body-hash memoisation and parallel BLSCT output hashing on the connect path.
  • CI baseline repaired: the pos_chain_tests grind hang and the latent test breaks it masked are fixed, and the v2 transcript is carried through the aggregation and swap wallet paths.

SHA256SUMS covers all archives below. Guix-built, deterministic; attestation signature to follow as SHA256SUMS.asc.


v0.1.9 — 2026-08-29

This release fixes a consensus-critical bug related to the set-membership padding index encoding, which can lead to network forks due to non deterministic cross architectural validation, plus performance and portability improvements. It carries a consensus change gated at mainnet height 42,500.

Every node must update to v0.1.9 before the given height.

Performance

  • Fixed-base-window precompute for BLSCT verification MSMs.
  • Generator tables no longer copied on the verification hot path; PublicKeys holds a span rather than a copy; generator copy-elision.
  • Removed the unused per-output spending-key cache.

Build & portability

  • libc++ 14 PublicKeys construction fix.
  • Reorg-undo and portability hardening; zero-initialized transaction-data amount fields.
  • GMP tarball mirror fallbacks.

Cleanup

  • Deduplicated HD-enabled and identity-key destination helpers; hardened negative-account sub-address guards.
  • Removed the Transifex config and Qt translation docs.

What's Changed

Full Changelog: https://github.com/nav-io/navio-core/compare/v0.1.8...v0.1.9

Signed by Nav.io Releases releases@nav.io.


v0.1.8 — 2026-08-21

Priority upgrade for all staking nodes. This release fixes the mainnet block-production halt of 2026-08-20 (height 33792) and prevents the class of failure permanently.

What happened

A transaction re-adding a staked commitment that was already staked on-chain entered node mempools. Mempool acceptance only checks for duplicate staked commitments at accept time, so the transaction stayed put after the competing commitment landed on-chain. Block aggregation then folded it into every staker's candidate block, which failed validation with bad-txns-duplicate-staked-commitment — halting block production network-wide for ~4 hours.

Fixes (#378)

  • Mempool eviction: connecting a block now evicts any mempool transaction whose staked commitment the block just added, the same way input-spend conflicts are evicted. Stuck transactions from the incident disappear automatically on upgrade (they are rejected when the mempool reloads).
  • Miner resilience: the block builder drops a transaction with a duplicate staked commitment from the template instead of producing an invalid block — one bad transaction can never halt production again.
  • Wallet guard: stakelock/delegatestake now fail with a clear error when the resulting commitment already exists on-chain, instead of creating a forever-pending transaction.

Upgrading

Stop your node, replace the binaries, restart. No reindex or rescan needed; the stuck transactions are dropped from your mempool automatically. The prioritisetransaction workaround shared on Discord is no longer needed after upgrading.

Also includes all improvements merged since v0.1.7: BLSCT wallet-scan and verification optimizations (#352, #362, #363), FFI boundary hardening (#332), the birthday-mnemonic wallet creation time (#340), subaddress and keyman locking fixes (#344, #350, #351, #366–#370, #373–#377), and CI/depends reliability fixes (#364, #372).


v0.1.7 — 2026-08-08

What's Changed