This release includes awaited features and bug fixes that should improve performance!
⚠️ Caution
This release includes a database migration, you won't be able to use a database from this release with older version. If you wish to run an older version after this you MUST prune your database and the node will resync it.
Upgrade Priority
Network | Priority |
---|---|
Mainnet | 👍 Recommended |
Holesky | 👍 Recommended |
Docker Image
docker pull ssvlabs/ssv-node:v2.2.0
🚀 Features
- Multi client - SSV now supports multiple EL/CL nodes to use as fallback using the original env variables
BEACON_NODE_ADDR
orETH_1_ADDR
. It supports semi-colon (;
) seperated addresses. ex:ws://localhost:8546;ws://localhost:8547
orhttp://localhost:5052;http://localhost:5053
🐛 Bug Fixes
- Fixed a bug where libp2p would drop some messages causing some duties to fail. (#1989)
🛠️ Maintenance
- Removed deprecated CI files to streamline the CI/CD pipeline.
- Updated Go modules to the latest versions for better compatibility and security.
- Improved the Developer Guide with clearer instructions for contributors.
- Revamped how info about validators is stored in the database (#1837)
What's Changed
- fix: (EventHandler) update non-committee shares upon liquidation/reactivation by @moshe-blox in #1689
- optimization(validatorStore): handlers (add, remove, update) and tests by @olegshmuelov in #1946
- feat(eventsyncing): health calls check last seen block distance by @anatolie-ssv in #1978
- fix(p2p): start listening to P2P messages only after contract and metadata sync by @nkryuchkov in #1805
- refactor(storage/participants): change key structure, add cleanup job by @anatolie-ssv in #1845
- feat(metrics) - Beacon client 'Validators' endpoint request duration metric by @oleg-ssvlabs in #1971
- fix(eventsyncer): remove check for block below threshold in the sync history method by @anatolie-ssv in #1983
- feat(metrics) - EL status 'syncing' distance above threshold by @oleg-ssvlabs in #1984
- fix(eth/executionclient): fix double sync distance metrics by @nkryuchkov in #1985
- fix(pubsub): increase subscription buffer size to prevent message drops by @olegshmuelov in #1989
- chore: remove old ci files by @vaclav-ssvlabs in #1943
- Linter config by @oleg-ssvlabs in #1991
- shares-storage: replace GOB encoding with SSZ, deduplicate validator Index field by @iurii-ssv in #1837
- fix(pubsub): increase subscription buffer size to 256 and update go-libp2p-pubsub by @olegshmuelov in #1992
- v2.2.0 feat(cl/el): support multiple nodes by @nkryuchkov in #1964
- refactor: using slices.Contains to simplify the code by @zhoufanjin in #1976
- fix(exporter): missing identifier value by @anatolie-ssv in #1982
- chore(dependabot) - Dependabot config github actions by @oleg-ssvlabs in #2003
- fix(eventsyncer): retry if historical sync finished an on old block by @anatolie-ssv in #1986
- fix(flaky test) - fix inconsistent results in unit test by @oleg-ssvlabs in #2004
- config: p2p, fix parsing HostDNS by @iurii-ssv in #1995
- fix: (discovery) logged configuration (attempt 2) by @iurii-ssv in #1981
- migrations: finalize migration_5 (share encoding GOB -> SSZ) by @iurii-ssv in #2002
- executionclient: add a comment about SubscribeNewHead choice by @nkryuchkov in #1996
- fix(metrics) - Drop unused prometheus metric by @oleg-ssvlabs in #2005
- hotfix(el/cl): allow multi clients to start if at least one node is up by @y0sher in #2000
- eth/executionclient: rate limit multi client Healthy call by @nkryuchkov in #2010
- eth/executionclient: use go-eth2-client with el_offline support by @nkryuchkov in #2012
- Revert "eth/executionclient: use go-eth2-client with el_offline support (#2012)" by @nkryuchkov in #2014
- eth/executionclient: fix panic in multi-client by @nkryuchkov in #2015
- eth/executionclient: use go-eth2-client with el_offline support by @nkryuchkov in #2017
- fix: (exporter) memory leak in partial sig container by @y0sher in #2022
New Contributors
- @zhoufanjin made their first contribution in #1976
Full Changelog: v2.1.1...v2.2.0