Capella -- Fork Logic¶
Introduction¶
This document describes the process of the Capella upgrade.
Configuration¶
Name | Value |
---|---|
CAPELLA_FORK_VERSION |
Version('0x03000000') |
CAPELLA_FORK_EPOCH |
Epoch(194048) (April 12, 2023, 10:27:35pm UTC) |
Helper functions¶
Misc¶
Modified compute_fork_version
¶
Fork to Capella¶
Fork trigger¶
The fork is triggered at epoch CAPELLA_FORK_EPOCH
.
Note that for the pure Capella networks, we don't apply upgrade_to_capella
since it starts with Capella version logic.
Upgrading the state¶
If state.slot % SLOTS_PER_EPOCH == 0
and
compute_epoch_at_slot(state.slot) == CAPELLA_FORK_EPOCH
, an irregular state
change is made to upgrade to Capella.
The upgrade occurs after the completion of the inner loop of process_slots
that sets state.slot
equal to CAPELLA_FORK_EPOCH * SLOTS_PER_EPOCH
. Care
must be taken when transitioning through the fork boundary as implementations
will need a modified
state transition function
that deviates from the Phase 0 document. In particular, the outer
state_transition
function defined in the Phase 0 document will not expose the
precise fork slot to execute the upgrade in the presence of skipped slots at the
fork boundary. Instead, the logic must be within process_slots
.