Release highlights
Pending deposits are now taken into account when selecting validators to exit
When the operator needs to exit validators to cover withdrawals, it picks the ones with the
lowest balance first, so that as little stake as possible leaves the beacon chain.
After Pectra, a top-up deposit does not show up in the validator balance right away — it waits
in the beacon chain deposit queue. A validator with a large queued top-up therefore looked like
an ordinary 32 ETH validator and could be exited first. Its queued funds were later returned to
the vault and had to go through the deposit queue again from the very beginning.
If, for example, a validator has a large top-up waiting in the queue while its consensus balance
is still ~32 ETH, it could be exited before validators that hold no queued funds at all — and the
queued amount would lose its place in line.
The operator now adds pending deposits to the balance it sorts by, so validators with queued
top-ups are exited last. They are still exitable if nothing else is available. Exit queue
accounting is unchanged — an exit still counts only the currently active balance.
(#777)
Default max validator balance reduced: 1945 ETH → 300 ETH
The default cap on how much a single 0x02 validator is topped up to is now 300 ETH on Ethereum
(previously 1945 ETH). Assets above the cap go to the next validator, so vault stake is spread
across more validators instead of being concentrated in a few large ones.
The benefit is a smaller impact on the vault APR when a validator exits: the assets of an exited
validator have to pass through the deposit queue again, and a smaller validator means a smaller
amount waiting there.
You can still choose your own limit with the --max-validator-balance-gwei option or the
MAX_VALIDATOR_BALANCE_GWEI environment variable — raise it as your vault grows, so you don't
end up running more validators than you need.
The Gnosis default (1800 GNO) is unchanged.
(#779)
What's Changed
- Add Docker smoke test running init command in CI by @evgeny-stakewise in #770
- Fix outdated web3 exception handling by @evgeny-stakewise in #771
- Remove is_alchemy_used check by @evgeny-stakewise in #772
- Decode custom errors on transaction failures by @evgeny-stakewise in #774
- Reduce default max validator balance to 300 ETH by @evgeny-stakewise in #779
- Account for pending deposits in exit validator selection by @cyc60 in #777
- Release v4.2.1 by @cyc60 in #778
Full Changelog: v4.2.0...v4.2.1