github aleo-labs-protocol/snarkOS testnet-v4.13.0

pre-release2 hours ago

Network: testnet. This is release v4.13.0 for testnet. It is built against snarkVM v4.13.0-rc.1 (8d4ca1b93). Every change below applies to all networks. These changes reach mainnet in a later mainnet v4.13.0 release, when testnet accepts this one.

Who needs to act

There is no activation height. This release has no consensus change, and V22 stays the latest consensus version. Testnet validators and node operators may upgrade at their convenience. Nodes on v4.12.x and v4.13.0 can run on the same network.

Validators, read Upgrade safety below.

Changes since testnet-v4.12.1

Validators

  • Upgrade safety (#4534). Validators exchange their consensus version schedules in the gateway handshake.
    • Suppose a committee member schedules a consensus version that this build does not support. Then the validator stops before that version activates. It does not build blocks that the network would reject.
    • When this happens, the validator writes a required-consensus-upgrade file to its data directory and exits with status 1.
    • New metrics:
      • snarkos_consensus_needs_upgrade
      • snarkos_consensus_required_upgrade_height
      • snarkos_consensus_required_upgrade_version
    • This does not trigger on testnet today, because all nodes share the same schedule.
  • Genesis binding (#4618). The gateway handshake carries the genesis block hash. A validator disconnects a v4.13.0 peer that runs on a different genesis block.
  • Handshake compatibility (#4534, #4618). The gateway event version moves from 10 to 12. Validators still accept peers at version 10 or later, so v4.12.x and v4.13.0 validators connect in both directions.
  • Proposal spacing (#4551). Certification time now counts toward the minimum gap between proposals, so rounds can be slightly shorter.
  • Worker refill (#4552). Workers refill their memory pools after a local proposal.

Clients and sync

  • Block requests (#4588). Block sync re-issues the requests that a responsive peer skipped.
  • Prover solutions (#4584). Clients drop solutions from provers that are at their solution limit. They no longer relay them.
  • CDN compression (#4608). The CDN sync asks for zstd-compressed block files. It still reads uncompressed files.

REST API

  • v1 deprecation (#4650). The v1 REST API and the unversioned routes are deprecated.
    • They still work. Their responses now carry Deprecation and Link headers.
    • To move to /v2, see node/rest/MIGRATING_TO_V2.md.
  • Compact JSON (#4548). Responses are compact JSON, not pretty-printed.
  • Gzip (#4537). A response is gzip-compressed when the client sends Accept-Encoding: gzip.

CLI

  • snarkos developer and /v2 (#4650). The snarkos developer commands now use /v2.
    • An --endpoint without a version gets /v2/ appended.
    • An endpoint with a query string is rejected.

Tools

  • Ledger distribution (#4597, #4600). The fastsync tool moves into snarkOS as snarkos-ledger-distribution. It reads blocks from the node's ledger database. The bucket format does not change.

Metrics

  • Per-call-site counts (#4582). Transaction verification, memory pool admission and gossip are now counted per call site.
  • Counters (#4582). snarkos_consensus_unconfirmed_transactions_total and snarkos_consensus_unconfirmed_solutions_total change from gauges to counters.

snarkVM

  • Release candidate. snarkVM moves to v4.13.0-rc.1. See its release notes.
    • Proving and execution checks are stricter on the prover side.
    • Circuits and the ledger are faster.
    • The cuda feature is now supported.
  • Source URL (#4610). snarkOS fetches snarkVM from aleo-labs-protocol/snarkVM.

Dependencies

  • tracing-subscriber 0.3.23 (RUSTSEC-2025-0055, #4523)
  • jsonwebtoken 11.1 (#4544)
  • axum-extra 0.12 (#4548)
  • sha2 0.11 (#4613)
  • One duplicate crate is trimmed (#4598).

Developers

  • Fuzz helpers (#4641). The proptest generators are available behind a fuzz-helpers feature.
  • Example (#4625). The simple_node example runs again.
  • CI. CI gains:
    • stress, load and sync tests on the Gauntlet host.
    • release devnet scripts.
    • telemetry tests.
    • a twice-weekly snarkVM bump.
    • a twice-daily merge of the release branches into staging.

Don't miss a new snarkOS release

NewReleases is sending notifications on new releases.