Skip to content

Zebra v6.0.0

Latest

Choose a tag to compare

@gustavovalverde gustavovalverde released this 10 Jul 22:14
bb41d69

Zebra 6.0.0 - 2026-07-10

This release activates NU6.3 (Ironwood) on Zcash Mainnet at block height 3,428,143 (~2026-07-28).

⚠️ All node operators must upgrade before the activation height.

It also fixes a mempool denial-of-service issue where non-standard transparent inputs
were rejected only after the more expensive script verification step
(GHSA-84j3-rw4c-gqmj).

Update Priority

User Type Priority
All operators Critical

Network Upgrade Details

Activation Height 3,428,143
Expected Date ~2026-07-28
Consensus Branch ID 0x37a5165b
Testnet Activation Block 4,134,000 (active since v6.0.0-rc.0)

Implemented ZIPs


Added

  • NU6.3 (Ironwood) now activates on Mainnet at block height 3,428,143, matching
    zcash_protocol. Node operators must upgrade to this release before activation
    (#10938).

Changed

  • Updated the zcash_* and orchard crates to their released NU6.3 versions
    (#10938).
  • Updated rocksdb to 0.24. The bundled librocksdb-sys now always runs
    bindgen to generate its FFI bindings, so libclang is required at build
    time
    (in addition to protoc and a C++ compiler) even when linking a system
    RocksDB via ROCKSDB_LIB_DIR. Install libclang-dev (Debian/Ubuntu),
    clang (Arch), or the equivalent for your platform
    (#10922).
  • Bumped the workspace (libraries) MSRV from 1.85.1 to 1.88. The zebrad binary
    MSRV is unchanged at 1.91. home is no longer pinned to 0.5.11, since 0.5.12
    builds on the new MSRV
    (#10927).

Fixed

  • Keep the mempool active through transient sync-status noise. Once started, the
    mempool is no longer cleared and its queued transaction verification is no longer
    cancelled when a temporary signal (which lower-work forks or stale peers can
    trigger) reports Zebra is far from the tip; initial activation still waits until
    Zebra is near the chain tip
    (#10929).
  • Don't disconnect from peers that return empty FindBlocks or FindHeaders
    responses when the local node is at or near the chain tip
    (#10732)
  • Fix syncer restarts due to incorrect error downcasting
    (#10916).
  • Fix a read-state syncer startup hang: a co-located consumer whose finalized state
    had caught up past the node's non-finalized root would re-subscribe endlessly
    instead of syncing, advancing only one block per newly mined block
    (#10841)
  • Mempool transactions with non-standard transparent inputs are now rejected
    before script verification, to avoid the more expensive script verification
    and reduce DoS surface
    (GHSA-84j3-rw4c-gqmj).
    Thanks to @ouicate for reporting the issue.
  • Related to the previous item, script verification now runs on the shared Rayon
    thread pool to avoid blocking the runtime.

How to Upgrade

Upgrading from 5.x or 6.0.0-rc.0 keeps your synced state: the first start migrates
the state database in place to format 28, with no resync.

Docker

docker pull zfnd/zebra:6.0.0
# or update your compose file and:
docker compose pull && docker compose up -d

Binary

  1. Stop zebrad (systemctl stop zebrad or Ctrl+C) and wait for a clean shutdown
  2. Replace the binary with zebrad-6.0.0-<arch>-unknown-linux-gnu.tar.gz from this
    release's assets (signed; Linux x86_64 and aarch64, glibc 2.34+), or run
    cargo binstall zebrad
  3. Start zebrad again

Source

git fetch && git checkout v6.0.0
cargo build --release

Source builds need Rust 1.91+, protoc, a C++ compiler, and libclang (new in
this release).

Compatibility

Component Supported
Operating Systems Linux (prebuilt binaries: x86_64/aarch64, glibc 2.34+); macOS and Windows via source build
Zcash Protocol All network upgrades through NU6.3 (Ironwood)
State database Format 28.0.0; in-place upgrade from 5.x, no resync
Minimum Rust (source builds) 1.91
End of support Block 3,528,960 (~105 days after release)

Contributors

Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @conradoplg, @Cosmos-Harry, @dannywillems, @gustavovalverde, @jvff, @oxarbitrage, @upbqdn and @ValarDragon.