Releases: ssvlabs/ssv
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).
v1.3.2
v1.3.1
This release is a hotfix for Prysm users, fixing a block proposal bug which occurs in certain environments where Prysm returns JSON responses (rather than SSZ).
Affected users are those who run Prysm with an HTTP proxy and/or load balancer in-between Prysm and SSV.
Fixes
- update to use patched fixed go-eth2-client (#1334)
v1.3.0 — Dencun
This release is mandatory for all mainnet operators, as it's the first stable release for the upcoming Dencun fork.
Upgrade Priority
Network | Priority | Dencun Fork |
---|---|---|
mainnet | Mandatory | ⌛️ Epoch 269,568 (Mar-13-2024 13:55:35 UTC) |
holesky | Mandatory | ✔️ Already forked |
jato-v2 | Mandatory | ✔️ Already forked |
🛠️ Enhancements
- 📈 Proposal V3: Implemented to enhance the system's efficiency and reliability. By @y0sher, @zevzek, @moshe-blox, (#1329).
🐛 Bug Fixes
- 🛠️ Makefile Environments: Corrected an incorrect fallback issue that could affect build and deployment processes. Fixed by @moshe-blox (#1247).
- 🧮 Compute Cluster Hash Calculation: Addressed a bug where the cluster hash was calculated incorrectly, potentially impacting system performance and stability. Resolved by @guym-blox (#1269).
- 📊 Exporter Deadlock: Fixed a bug where the exporter would get stuck waiting for committee validator setup, hindering data exportation processes. Rectified by @moshe-blox (#1316).
- 🚧 ProposerRunner Bug: Solved a missing block summary issue for Deneb, which could affect block processing and chain integrity. Corrected by @moshe-blox (#1319).
v1.3.0-rc.1
This pre-release introduces support for the Deneb fork, which has already occured on Goerli and is scheduled for Holesky in epoch 29696.
Upgrade Priority
Network | Priority |
---|---|
mainnet | Do not upgrade |
jato-v2 | Mandatory |
holesky | Mandatory |
New
Fixes
- fix: (API) missing nil check in byIndices (#1283)
- fix: (SlotTicker) potential double tick (#1244)
- fix: don't start liquidated validators after metadata fetch (#1273)
- fix: get own sync committee duties after validators setup (#1305)
Changes
v1.2.3
This release upgrades several outdated Go dependencies.
v1.2.2
This release, v1.2.2, introduces a major feature: voluntary exit! Additionally, it brings a range of improvements, bug fixes, and security updates, including stale operator ID resolution, timeout adjustments for duty fetch, and extensive P2P metrics enhancements.
Upgrade Priority
Network | Priority |
---|---|
mainnet | Mandatory |
jato-v2 | Mandatory |
holesky | Mandatory |
Changes
- 🛠 Stale Operator ID Fix: Resolved an issue with stale operator ID in p2pNetwork. (PR #1229)
- ⏱ Initial Duty Fetch Timeout: Implemented a sufficient timeout for initial duty fetch. (PR #1214)
- 🚀 Bootnode Deployment: Deployed a new bootnode ENR for holesky stage. (PR #1233)
- 🚪 Voluntary Exit: Added functionality for voluntary exit. (PR #1200)
- 📊 Peer Scores Logging: Included 'connected' status in peer scores log. (PR #1224)
- 📈 P2P Metrics: Enhanced P2P metrics including new counters, RSA verifications, and various refinements. (PR #1163)
- 🩺 Node Health API: Introduced and refined the node health route in the SSV API. (PR #1203)
- 🔍 Subnet Subscription: Added feature to subscribe to a random subnet with 0 validators. (PR #1245)
- 🛠️ Health Route Host Address Fix: Adjusted the node health API route to correctly advertise host addresses from the config. (PR #1246)
- 🚫 Rate Limiting Inbound Connections: Implemented rate limiting for inbound connections by IP. (PR #1226)
- 🐳 Include Git Commit/Version in Docker Build: Included git commit/version information in Docker builds for better tracking and consistency. (PR #1231)
v1.2.1
Permissionless Mainnet 🚀
This release schedules the permissionless network fork for SSV on mainnet.
Fork Schedule
Network | Date (UTC) | Epoch |
---|---|---|
mainnet | ⌛️ Dec-13-2023 09:58:47 AM | 249056 |
jato-v2 | ✔️ Already forked | 220708 |
holesky | ✔️ Already forked | 13951 |
Upgrade Priority
Network | Priority |
---|---|
mainnet | Mandatory |
jato-v2 | Recommended |
holesky | Recommended |
Bug Fixes
- fix: stale operator ID in p2pNetwork (#1229)
v1.2.0
Permissionless Testnets
This release introduces the permissionless network fork, and includes network security upgrades.
💎 We strongly recommend to upgrade and test this version on jato-v2
before doing so on mainnet
.
Fork Schedule
Network | Date | Epoch |
---|---|---|
mainnet | TBD | TBD |
jato-v2 | Nov-29-2023 12:11:12 PM | 220708 |
holesky | Nov-29-2023 12:06:24 PM | 13951 |
Changes
- 🔐 RSA Message Encryption (#1190)
- 🕒 Permissionless Fork (#1211, #1204)
- 🚀 Duty Prefetch (#1205)
- 📈 Peer Scoring Improvements (#1210, #1206)
Fixes
v1.1.0
Changes
Resource optimisation changes
- 🔗 Drop sync requirements (#1109) - New duty slots are not dependent on previous ones, hence no syncing needed anymore.
- 🕙 New slot ticker (#1149) - More efficient way of distributing new slot events around the node.
- ♻️ Remove non committee validator message processing (#1183) - no need to process non committee messages since message validation now handles them.
General improvements
- 📈Metrics improvement (#1014, #1184)
- 📡 Holesky support (#1166) - Added config to support running on Holesky network.
- 📄 Log File Options (#1129) - Introduced configuration for debug log file, location, size, and backups.
- ⏳ Deterministic Round Timeout (#1120) - First consensus round timeout is now calculated by the slot start time + 6 seconds.
- 🌐 Domain type discovery (#1039) - An effort to make peers from other networks not connect to each other based on domain type exposed in discovery.
- 🕶️ Drop blinded block rejection (#1109) - Nodes now participate in blinded blocks consensus even if they are not supporting proposing blinded blocks.
- 🛡️ Slashing protection update (#1144) - Improvement when updating slashing protection data for reactivated validators
- 💬 Message validation (#1066) - Biggest change in this release, we now started validating all the messages in the P2P network before forwarding them to our peers. The set of rules can be seen in the PR or the knowledge base. A big step towards a completely permissionless network.
Bug Fixes
- 🐛fixed bug in validator registrations (ssv-spec - #318) -get stuck after failed pre consensus step.
- 🐛Various bug fixes (#1142, #1140, #1131, #1192, #1188)