Electra Light Client -- Sync Protocol¶
Notice: This document is a work-in-progress for researchers and implementers.
Table of contents¶
- Introduction
- Custom types
- Constants
- Frozen constants
- New constants
- Helper functions
- Modified
finalized_root_gindex_at_slot
- Modified
current_sync_committee_gindex_at_slot
- Modified
next_sync_committee_gindex_at_slot
- Modified
get_lc_execution_root
- Modified
is_valid_light_client_header
Introduction¶
This upgrade updates light client data to include the Electra changes to the ExecutionPayload
structure and to the generalized indices of surrounding containers. It extends the Deneb Light Client specifications. The fork document explains how to upgrade existing Deneb based deployments to Electra.
Additional documents describes the impact of the upgrade on certain roles: - Full node - Networking
Custom types¶
Name | SSZ equivalent | Description |
---|---|---|
FinalityBranch |
Vector[Bytes32, floorlog2(FINALIZED_ROOT_GINDEX_ELECTRA)] |
Merkle branch of finalized_checkpoint.root within BeaconState |
CurrentSyncCommitteeBranch |
Vector[Bytes32, floorlog2(CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA)] |
Merkle branch of current_sync_committee within BeaconState |
NextSyncCommitteeBranch |
Vector[Bytes32, floorlog2(NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA)] |
Merkle branch of next_sync_committee within BeaconState |
Constants¶
Frozen constants¶
Existing GeneralizedIndex
constants are frozen at their Altair values.
Name | Value |
---|---|
FINALIZED_ROOT_GINDEX |
get_generalized_index(altair.BeaconState, 'finalized_checkpoint', 'root') (= 105) |
CURRENT_SYNC_COMMITTEE_GINDEX |
get_generalized_index(altair.BeaconState, 'current_sync_committee') (= 54) |
NEXT_SYNC_COMMITTEE_GINDEX |
get_generalized_index(altair.BeaconState, 'next_sync_committee') (= 55) |
New constants¶
Name | Value |
---|---|
FINALIZED_ROOT_GINDEX_ELECTRA |
get_generalized_index(BeaconState, 'finalized_checkpoint', 'root') (= 169) |
CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA |
get_generalized_index(BeaconState, 'current_sync_committee') (= 86) |
NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA |
get_generalized_index(BeaconState, 'next_sync_committee') (= 87) |