github ssvlabs/ssv v2.3.7

19 hours ago

This is the Fusaka mainnet stable release.
It activates Fusaka support on Ethereum mainnetmainnet operators must upgrade before the Fusaka fork.


🔐 Upgrade Priority

Network Priority Fork date
Mainnet 🟢 Required 3.12.25
Hoodi 🟢 Required 28.10.25

⚠️ This is the Fusaka mainnet release. Always ensure your Execution + Consensus clients and any remote signers (web3signer, external signers) are updated. SSV strives to support the latest released versions of these clients.


🐳 Docker image

docker pull ssvlabs/ssv-node:v2.3.7

✨ Highlights

  • Fulu & Fusaka fork support – SSV is ready for the Fulu chain changes and activates Fusaka fork support on Ethereum mainnet.
  • Majority fork protection – Safer attestation signing when the network is on a majority fork, reducing slash risk. check the SIP
  • Blinded blocks for all forks – All beacon blocks are blinded in QBFT, cutting consensus bandwidth and improving scalability for large BPO-era blocks.

What's Changed

Forks, Protocol & Core Consensus

  • Fulu & Fusaka fork support
    Adds Fulu support and Fulu mainnet fork handling, plus Fusaka-related changes and additional cosmetic fixes and exporter bug fixes to make this release fork-ready.
    PRs: #2528, #2549, #2589

  • Blinded blocks for all beacon blocks
    Blinds all beacon blocks in QBFT (including large Fulu/Fusaka-era blocks), significantly reducing consensus bandwidth and improving robustness for big-block forks.
    PR: #2569

  • Majority fork protection
    Introduces majority fork protection for attestations, tightening validation and improving validator safety when the chain is in a majority fork.
    PR: #2358

  • Runners & duties robustness
    Refactors runners to simplify and future-proof the code, adds robust message replay, logs more duty details, improves the “no running duty” error, and cleans up retry-related logs.
    PRs: #2136, #2445, #2419, #2476, #2587, #2590

  • Threshold safety
    Adds validation to threshold signature splitting to avoid panics and surface configuration errors as clear, human-readable errors.
    PR: #2466


Exporter 2.0 & API

  • Exporter features & bug fixes
    Enables partial results, adds scheduled duties storage and API exposure, fixes committee/quorum handling, proactively populates committee links for scheduled validators, fixes retro-compat issues, and ships exporter v2.0.0-rc1 notes.
    PRs: #2460, #2552, #2579, #2574, #2558, #2556, #2559, #2521, #2538

  • Exporter & API refactors
    Reduces exporter log noise, removes pubkeys from the collector (privacy/size), refactors the API into one package per handler, and adds an OpenAPI generator.
    PRs: #2467, #2498, #2507, #2535


Node, CL/EL Clients, P2P & Probing

  • Node startup & probing
    Ensures the node can cleanly start with 0 active validators and stabilizes node-probe behavior with cleanup and retry delays.
    PRs: #2540, #2542, #2492, #2534

  • Execution & beacon client integration
    Relies on execution-client library reconnects, fixes potential zero-fee-recipient blocks on CL restart, corrects CL multi-client usage, and stabilizes flaky multi-client tests.
    PRs: #2465, #2415, #2494, #2524, #2472, #2550

  • P2P networking
    Adjusts P2P connection settings and correctly calculates best-peer subnets for more efficient peers and subnets selection.
    PRs: #2578, #2577

  • Fee recipient consistency
    Establishes a single source of truth for fee recipients to avoid configuration drift between components.
    PR: #2457


Observability, Metrics & Tracing

  • Metrics improvements
    Adds missing duty details, standardizes QBFT instance metrics, tracks message-queue sizes, and cleans up msg-validation metrics.
    PRs: #2485, #2496, #2529, #2490

  • Tracing volume control
    Introduces droppable spans and reduces trace volume to keep telemetry cost-effective and focused.
    PRs: #2576, #2585

  • Logging quality
    Trims startup log clutter, extends and simplifies CL/EL logs, and logs signers on invalid messages for easier debugging.
    PRs: #2497, #2550, #2557, #2419


Storage, Safety, Ops & Misc

  • Doppelganger behavior
    Documents post-consensus doppelganger marking behavior to clarify how the node treats doppelganger detection after consensus.
    PR: #2575

  • Storage & operators
    Adds a ListOperatorsAll storage method for more flexible operator introspection.
    PR: #2501

  • CI/CD & branch sync
    Runs CI on merges into stage/main and syncs stage/main through a series of Stage ← Main / Stage → Main PRs (including the v2.3.5 merge and this release PR).
    PRs: #2463, #2522, #2520, #2548, #2595, #2570, #2591

  • Docs & links
    Updates the public Discord link in docs.
    PR: #2592

  • Dependency & config tweaks
    Updates go-ethereum to v1.16.4 and removes INTERVALS_PER_SLOT from network config while adjusting logging on missing parameters.
    PRs: #2537, #2486


Cleanups, Refactors, Tests

  • General cleanup & refactors
    Removes old integration tests, performs general cleanup, stabilizes a flaky QBFT timeout test, and introduces small refactors using max/min, maps.Copy, and SplitSeq to simplify code.
    PRs: #2464, #2504, #2491, #2456, #2563, #2565

  • Comment & docs cleanups
    Fixes minor issues in comments and test descriptions across the codebase.
    PRs: #2502, #2531, #2495, #2566, #2573


New Contributors

Full Changelog: v2.3.6...v2.3.7

Don't miss a new ssv release

NewReleases is sending notifications on new releases.