Releases: ssvlabs/ssv
v2.0.0
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
withsync.Map
(#1683) - fix: (queue) nil return condition in Pop (#1678)
- fix: (network/records) panic due to insufficient subnets length (#1804)
v1.3.11
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 | v2.0.0 failed before the fork (November 25th) |
Holesky |
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
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 | 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
v2.0.0-unstable.0
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
withsync.Map
(#1683) - fix: (queue) nil return condition in Pop (#1678)
v1.3.8: Custom DomainType and Trusted Peers (#1493)
* 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 <[email protected]> Co-authored-by: rehs0y <[email protected]>
v1.3.7
v1.3.6
This release features a hotfix for block proposals with recent Lighthouse and Teku versions.
Upgrade Priority
Beacon Node | Version | Priority |
---|---|---|
Lighthouse | >= v5.2.0 | |
Teku | >= 24.4.0 | |
Others | ⭐️ Strongly Recommended |
Note: Affected Teku users can safely remove the --validators-graffiti-client-append-format=DISABLED
flag after upgrading to SSV v1.3.6
Brief
Recent Lighthouse and Teku versions began modifying the graffiti of block proposals to include EL/CL versions for client diversity analysis.
This caused a dependency we use to interact with Beacon nodes to reject block proposals from those Beacon nodes, because the returned graffiti was different than requested.
This hotfix removes this unnecessary constraint.
Changes
v1.3.5
This release includes an optimization which should accelerate the rate at which nodes form connections.
This should improve the performance of nodes after restarts, by helping them recover their ideal peer count quicker.
Changes
v1.3.4
v1.3.3
This version introduces mainly optimizations to the consensus and message processing.
- By introducing OpenSSL for RSA signing we expect 10x faster signature verifications and lower CPU usage. As a side effect, memory usage should increase. Make sure to allocate at least as much RAM as is recommended in the docs (4 GB, as of this release).
NOTE: This optimization is for Linux OS only. - Enhancing consensus BLS verification by choosing an optimistic approach, verifying reconstructed messages and falling back to verify each one of the signatures if it fails.
Also fixed a bug that caused newly active validators to miss first epoch.
Expect fast consensus times and higher attestation rates.
IMPORTANT: Users running full nodes (exporters) should NOT update to this release.
Upgrade Priority
Network | Priority |
---|---|
mainnet | Recommended |
holesky | Recommended |
Change log
- 🕒 Validator Startup: Fixed an issue to ensure validators start on time by using
ActivationEpoch
(#1347, @olegshmuelov). - 🆔 Stale Operator ID Cases: Addressed and resolved remaining stale operator ID issues (#1240, @nkryuchkov).
- 🔏 Operator Key Encapsulation: Improved security by encapsulating operator keys (#1274, @nkryuchkov, @olegshmuelov, @y0sher, @moshe-blox).
- 💾 OperatorData Store: Introduced
OperatorData
store for efficient data management (#1356, @nkryuchkov, @moshe-blox, @y0sher). - ✅ Signature Verification: Implemented partial signature verification aggregation to enhance performance (#1351, @nkryuchkov, @moshe-blox).
- ⚡ RSA Optimization: Utilized
microsoft/openssl
for RSA sign/verify operations to optimize performance (#1358, @y0sher, @moshe-blox).