owned this note
owned this note
Published
Linked with GitHub
# Activation and Exiting
## Electra Activation and Exiting
From Electra, queues for maintaining security are now expressed in ETH, rather than the count of validators moving through the queue. Because all activating validators previously had to have 32 ETH [effective balance](https://hackmd.io/@rolfyone/B1Uw8Pm3kg#What-is-Effective-Balance), a count was adequate, but this has changed due to the creation of compounding validators.
From Electra, there are now 3 queues for effective balances moving through the system.

## Deposit / Activation queue
In Deneb, the activation queue was rate limited to 8 (validators) maximum per epoch. This remains in place for Electra, however as with other queue rates, it's now expressed as 256 ETH per epoch.
One thing that does change in Electra, is deposits no longer have to be on chain for hours prior to being accepted by the beacon-chain.
## Exit Queue
In Deneb and prior, the rate of exits was determined by the total number of active validators (`active_count` below).
```
exit_rate = max(4, active_count / 65536)
```
Given roughly 1 million validators, that will mean the exit rate can be up to 15 validators per epoch.
From Electra, the rate is restricted to give space to consider consolidations.
From Electra, we also express exits in terms of a balance rather than the number of active validators, so the formula replaces active validator count with the total active balance. The total active balance is the cumulative effective balance of all validators that are active and not slashed.
```
exit_rate = min(256, max(128, total_active_balance / 65536))
```
Numerically, the exit rate is now balance based , so 4 (validators) in Deneb previously becomes 128 ETH now (4 x 32) - it's the same 'balance' value, but just harder to see.
256 ETH is an expression of 8 x 32 validators . So basically we're saying that 256 ETH can exit via the exit queue, per epoch.
These values needed to be expressed as ETH now, so that validators with different effective balances can be catered for.
## Consolidation queue
Consolidation is the process of taking several validators and combining them to end up with less active validators, but staking the same amount. For example, 2 x 32 ETH validators could be changed to be 1 x 64 ETH compounding validator.
Space was made in Electra for consolidations, by reducing the exit queue capacity to a maximum of 256 ETH, leaving roughly 224 ETH worth of validators that are no longer consumed by the exit queue, per epoch, on mainnet active count at the time of writing.
Just like the normal exit queue, this is a limited rate queue, but the difference is that it's separate to the exit queue, so if there are many exits and no consolidations, you'd still be waiting the minimum time to consolidate your validators. Equally, if there are a lot of pending consolidations and no exits, exits will not be delayed by the consolidations that have been scheduled.
With an empty queue, you'd be looking at roughly a 27 hour delay on mainnet between issuing the consolidation request, and the funds appearing on the target validator. Most of that time will see the source validator (the one being moved) in an exited state, waiting to become withdrawable so that the funds can be re-allocated.
## Withdrawal sweep
Compounding validators will not have excess effective balance for the withdrawal sweep to consider until their balance exceeds 2048 ETH.
The withdrawals sweep only considers excess balance - this is not the part of the effective balance that provides chain security. It therefore does not have the same constraints as when effective balance moves, and is just swept from validators at a rate per block.
## Partial Withdrawals
Adjacent to the withdrawal sweep is the new concept of partial withdrawals. These do consume capacity of the exit queue, as a partial withdrawal part of the validators 'effective balance', so it has impacts on security.
Partial withdrawals are an option for validators whose effective balance exceeds 32 ETH, so only compounding validators (0x02) will be currently able to utilize this option. These validators can draw down to 32 ETH if they choose to, or part of their balance over 32 ETH, it is up to the operator.
For example, a 1024 ETH validator could withdraw 0.001 ETH, or anything up to 992.0 ETH, but attempts to withdraw 1000 eth would exceed the limit and be restricted to the 992.0 ETH.