Skip to content

Releases: ssvlabs/ssv

v2.1.1

23 Jan 12:01
2d44f39
Compare
Choose a tag to compare

v2.1.1

This release includes an option to adjust the default gas limit used when sending validator registrations to MEV relays through the Beacon node.

Gas Limit

The SSV node registers its validators to MEV relays with a preferred gas limit. With this release, this gas limit becomes configurable.

Gas limit for local blocks (non-MEV) are set by the execution node (see https://pumpthegas.org) which you should ideally be set to the same value.

The default gas limit is 30M and this release makes it configurable as long as the operator committees converge on the same value.

⚠️ Caution ⚠️

All operators in the committee MUST set the same gas limit, otherwise MEV registrations would fail and the validators would eventually not propose MEV blocks and instead fall back to local non-MEV blocks.

At the time being, we recommend to leave the gas limit at the default of 30M for most operators.

Configuration

Set the EXPERIMENTAL_GAS_LIMIT environment variable or by ValidatorOptions.GasLimit in the config.yaml file:

ValidatorOptions:
    ExperimentalGasLimit: 35000000

Verification

You can verify the configuration change works by querying one of the MEV relays used by the operator:
https://<relay-url>/relay/v1/data/validator_registration?pubkey=0x<validator-pubkey>

Validators are registered in a round-robin fashion once an hour, so you may have to wait this long or check more validators.

Upgrade Priority

Network Priority
Mainnet Optional
Holesky Optional

Docker Image

docker pull ssvlabs/ssv-node:v2.1.1

What's Changed

  • main - spec alignment (v1.0.2): custom GasLimit , 1000 validators #1973 by @y0sher in #1979

Full Changelog: v2.1.0...v2.1.1

v2.1.0

07 Jan 15:24
473bd8b
Compare
Choose a tag to compare

v2.1.0

This release introduces bug fixes, performance improvements and a metrics redesign.

Upgrade Priority

Network Priority
Mainnet 👍 Recommended
Holesky 👍 Recommended

Docker Image

docker pull ssvlabs/ssv-node:v2.1.0

New Grafana Dashboard

We've redesigned the SSV metrics and Grafana dashboard from scratch.

Download the new Dashboard JSON and import it to Grafana to try it out.

Note: the old dashboards aren't compatible with v2.1.0

Features

Performance

Fixes

v2.0.2

15 Dec 10:29
b5766a8
Compare
Choose a tag to compare

Release Notes: Version 2.0.2

This release introduces bug fixes, pre-Alan fork cleanup, and connectivity enhancements for public operators.

🚀 Upgrade Priority

Network Priority
Mainnet 👍 Strongly Recommended
Holesky 👍 Strongly Recommended

🐳 Docker Image

Pull the latest version using:

docker pull ssvlabs/ssv-node:v2.0.2

🆕 What's New and Improved

Improvements and Enhancements

  • Reduced excessive “skipped peers” logs in Discovery.
  • Improved connectivity with increased block propagation delay.
  • Enhanced public operator usability by setting a max message size in PubSub.
  • Optimized committee management by sharing CommitteeDutyGuard across committees.
  • Discovery adjustments: Fixed IP logging and enhanced subnet index removal logic.

Performance Optimizations

  • Avoid in-memory lock delays during database operations in Registry/Storage.
  • Reduced memory usage in hashmap for tests.
  • Added caching for Beacon Client attestation data requests.
  • Concurrent slashing protection tests for increased robustness.

Bug Fixes

  • Resolved typos in documentation.
  • Fixed participant updates to occur atomically in Exporter.
  • Addressed DutyScheduler issues with missed first epoch slot duties.
  • Corrected queue message type priorities.
  • Restored proper configuration logging in Discovery.

Chore and Maintenance

  • Cleaned up code related to the pre-Alan fork.
  • Updated GitLab CI pipeline and removed old CI/CD stages.
  • Redesigned the README for improved readability.
  • Updated dependencies to align with ssv-spec v1.0.0.

Feature Updates

  • Discovery improvements: Re-enabled post-fork discovery.
  • P2P enhancements: Dynamically grow MaxPeers based on subnet count.
  • Added tracing context arguments for improved observability.

📋 Full Changelog

v2.0.1

03 Dec 16:53
8bcc2b4
Compare
Choose a tag to compare

This release includes a few bug fixes, mainly causing validators to miss some duties in certain edge cases described below.

Upgrade Priority

Network Priority
Mainnet 👍 Strongly recommended
Holesky 👍 Strongly recommended

Docker Tag

docker pull ssvlabs/ssv-node:v2.0.1

What's Changed

Full Changelog: v2.0.0...v2.0.1

v2.0.0

28 Oct 14:57
Compare
Choose a tag to compare

This release introduces support for the Alan fork to Mainnet.

Note: Alan databases are not backwards-compatible, meaning an upgraded node cannot downgrade without removing the database and syncing from scratch.

Warning

Mainnet operators MUST upgrade to v2.0.0 prior to the fork epoch!

Fork Schedule

Network Upgrade Alan Fork
Mainnet ❗ Mandatory ⌛ Nov. 25 12:00:23 UTC (Epoch 327,375)
Holesky 👌 Recommended Already forked (Epoch 84,600)

Docker Tag

docker pull ssvlabs/ssv-node:v2.0.0

Introducing Alan

Alan is the most significant SSV upgrade to date, poised to tackle scalability by dramatically reducing resource usage.

Alan changes the way a committee (group of operators) perform their validators's duties. Rather than performing every attestation and sync committee duty separately, a committee would perform them all together.

For more, see Meet Alan.

Other Changes

On top of Alan support, this release includes many fixes and improvements.

Features

  • feat: custom graffiti (#1600)
  • feat: duty stopping (#1743)
  • feat: (p2p) drop bad or irrelevant peers (#1707)
  • spec alignment to dev branch (#1639)

Optimizations

  • perf: (eventsyncer) don't remove QBFT instances to speed up historical syncing (#1615)
    • should significantly reduce how long it takes to sync from scratch
  • perf: batch-save validator metadata (#1392)

Bugs

  • fix: (discovery) publish latest ENR despite ongoing publish (#1740)
  • fix: minor refactor ECDSAPrivFromInterface to remove ScalarBaseMult (#1734)
  • fix: (eventhandler) pubkey & id uniqueness check in OperatorAdded (#1729)
  • fix: Erroneous Threshold Logic in Key Splitting Mechanism (#1737)
  • fix: (differ) incorrect diffs
  • fix: run local nodes using local events (#1688)
  • fix: ekm deadlock (#1675)
  • fix: (validation) MessageCounts check (#1652)
  • fix: replace cornelk/hashmap with sync.Map (#1683)
  • fix: (queue) nil return condition in Pop (#1678)
  • fix: (network/records) panic due to insufficient subnets length (#1804)

v1.3.11

28 Oct 15:01
662f423
Compare
Choose a tag to compare

Caution

THIS VERSION DOES NOT SUPPORT THE ALAN FORK, AND IS ONLY MEANT FOR EMERGENCY ROLLBACK FROM v2.0.0 BEFORE NOVEMBER 25th.

PLEASE UPGRADE TO v2.0.0 INSTEAD

This release is a fallback version to prevent slow rollback in case of emergencies with v2.0.0. This version only improves the syncing speed of the node.

Caution

This database is not compatible with Alan. To downgrade from v2.0.0, first wipe your existing database.

When to use v1.3.11?

Network Priority
Mainnet ⚠️ Never, unless the upgrade to v2.0.0 failed before the fork (November 25th)
Holesky ⚠️ Never, it's already past the Alan fork

Docker Tag

docker pull ssvlabs/ssv-node:v1.3.11

Changes

  • optimization: (eventsyncer) don't remove QBFT instances to speed up sync #1824

v1.3.10

15 Oct 09:41
027ec07
Compare
Choose a tag to compare

⚠️ This release is for Mainnet only, you should not run it on Holesky which is already past the Alan fork ⚠️

This releases rolls out only three features from the upcoming Alan Mainnet release, in preparation for it.

After enough of the network upgrades to v1.3.10, SSV nodes should find peers significantly faster, which is crucial for the Alan fork to pass smoothly.

Upgrade Priority

Network Priority
Mainnet 👍 Strongly recommended
Holesky ⚠️ Don't upgrade, stay on v2.0.0-unstable.2

Docker Tag

docker pull ssvlabs/ssv-node:v1.3.10

When Alan?

The next release (v2.0.0) should schedule the Alan fork on Mainnet 🤞

Changes

  • Upgraded discovery mechanism in preparation for the upcoming Alan release (#1771)
  • Custom graffiti (#1569)
  • Build blocks with the new v3 Beacon API endpoint (#1569)
  • Drop bad or irrelevant peers (#1730)

v2.0.0-unstable.0

23 Sep 18:35
aafa85e
Compare
Choose a tag to compare
v2.0.0-unstable.0 Pre-release
Pre-release

⚠️ You should not run this release on mainnet operators ⚠️

This release introduces support for the Alan fork to the SSV Holesky testnet.

Note: Alan databases are not backwards-compatible, meaning an upgraded node cannot downgrade without removing the database and syncing from scratch.

Upgrade Priority

Network Priority Alan Fork
Holesky Mandatory Oct. 8th 12:00 UTC (Epoch 84,600)
Mainnet Don't upgrade ⚠️ TBD

Docker Tag

docker pull ssvlabs/ssv-node:v2.0.0-unstable.0

Intoducing Alan

Alan is the most significant SSV upgrade to date, poised to tackle scalability by dramatically reducing resource usage.

Alan changes the way a committee (group of operators) perform their validators's duties. Rather than performing every attestation and sync committee duty separately, a committee would perform them all together.

For more, see Meet Alan.

Other Changes

On top of Alan support, this release includes many fixes and improvements.

Features

  • feat: custom graffiti (#1600)
  • feat: duty stopping (#1743)
  • feat: (p2p) drop bad or irrelevant peers (#1707)
  • spec alignment to dev branch (#1639)

Optimizations

  • perf: (eventsyncer) don't remove QBFT instances to speed up historical syncing (#1615)
    • should significantly reduce how long it takes to sync from scratch
  • perf: batch-save validator metadata (#1392)

Bugs

  • fix: (discovery) publish latest ENR despite ongoing publish (#1740)
  • fix: minor refactor ECDSAPrivFromInterface to remove ScalarBaseMult (#1734)
  • fix: (eventhandler) pubkey & id uniqueness check in OperatorAdded (#1729)
  • fix: Erroneous Threshold Logic in Key Splitting Mechanism (#1737)
  • fix: (differ) incorrect diffs
  • fix: run local nodes using local events (#1688)
  • fix: ekm deadlock (#1675)
  • fix: (validation) MessageCounts check (#1652)
  • fix: replace cornelk/hashmap with sync.Map (#1683)
  • fix: (queue) nil return condition in Pop (#1678)

v1.3.8: Custom DomainType and Trusted Peers (#1493)

07 Aug 14:46
2eea503
Compare
Choose a tag to compare
* enable custom domain support

* update domain type while loading shares

* print self address

* new address format

* fix unit test

* parse trusted peers in p2p.New

---------

Co-authored-by: Lior Rutenberg <liorr@blox.io>
Co-authored-by: rehs0y <lyosher@gmail.com>

v1.3.7

07 Jul 15:40
cc6f7d1
Compare
Choose a tag to compare

This release includes a fix for cases where validators are registered while in a sync committee, alongside a performance optimization in how SSV retrieves validators from Beacon nodes.

Changes

  • fix: refetch duties after metdata update (#1429)