Skip to content

Commit df767ab

Browse files
Explicitly define updated light-client containers for Capella (#4647)
1 parent bb694b8 commit df767ab

1 file changed

Lines changed: 72 additions & 2 deletions

File tree

specs/capella/light-client/sync-protocol.md

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
- [Constants](#constants)
88
- [Containers](#containers)
99
- [Modified `LightClientHeader`](#modified-lightclientheader)
10+
- [Modified `LightClientBootstrap`](#modified-lightclientbootstrap)
11+
- [Modified `LightClientUpdate`](#modified-lightclientupdate)
12+
- [Modified `LightClientFinalityUpdate`](#modified-lightclientfinalityupdate)
13+
- [Modified `LightClientOptimisticUpdate`](#modified-lightclientoptimisticupdate)
14+
- [Modified `LightClientStore`](#modified-lightclientstore)
1015
- [Helper functions](#helper-functions)
1116
- [`get_lc_execution_root`](#get_lc_execution_root)
1217
- [Modified `is_valid_light_client_header`](#modified-is_valid_light_client_header)
@@ -44,13 +49,78 @@ Additional documents describes the impact of the upgrade on certain roles:
4449

4550
```python
4651
class LightClientHeader(Container):
47-
# Beacon block header
4852
beacon: BeaconBlockHeader
49-
# Execution payload header corresponding to `beacon.body_root` (from Capella onward)
53+
# [New in Capella]
5054
execution: ExecutionPayloadHeader
55+
# [New in Capella]
5156
execution_branch: ExecutionBranch
5257
```
5358

59+
### Modified `LightClientBootstrap`
60+
61+
```python
62+
class LightClientBootstrap(Container):
63+
# [Modified in Capella]
64+
header: LightClientHeader
65+
current_sync_committee: SyncCommittee
66+
current_sync_committee_branch: CurrentSyncCommitteeBranch
67+
```
68+
69+
### Modified `LightClientUpdate`
70+
71+
```python
72+
class LightClientUpdate(Container):
73+
# [Modified in Capella]
74+
attested_header: LightClientHeader
75+
next_sync_committee: SyncCommittee
76+
next_sync_committee_branch: NextSyncCommitteeBranch
77+
# [Modified in Capella]
78+
finalized_header: LightClientHeader
79+
finality_branch: FinalityBranch
80+
sync_aggregate: SyncAggregate
81+
signature_slot: Slot
82+
```
83+
84+
### Modified `LightClientFinalityUpdate`
85+
86+
```python
87+
class LightClientFinalityUpdate(Container):
88+
# [Modified in Capella]
89+
attested_header: LightClientHeader
90+
# [Modified in Capella]
91+
finalized_header: LightClientHeader
92+
finality_branch: FinalityBranch
93+
sync_aggregate: SyncAggregate
94+
signature_slot: Slot
95+
```
96+
97+
### Modified `LightClientOptimisticUpdate`
98+
99+
```python
100+
class LightClientOptimisticUpdate(Container):
101+
# [Modified in Capella]
102+
attested_header: LightClientHeader
103+
sync_aggregate: SyncAggregate
104+
signature_slot: Slot
105+
```
106+
107+
### Modified `LightClientStore`
108+
109+
```python
110+
@dataclass
111+
class LightClientStore(object):
112+
# [Modified in Capella]
113+
finalized_header: LightClientHeader
114+
current_sync_committee: SyncCommittee
115+
next_sync_committee: SyncCommittee
116+
# [Modified in Capella]
117+
best_valid_update: Optional[LightClientUpdate]
118+
# [Modified in Capella]
119+
optimistic_header: LightClientHeader
120+
previous_max_active_participants: uint64
121+
current_max_active_participants: uint64
122+
```
123+
54124
## Helper functions
55125

56126
### `get_lc_execution_root`

0 commit comments

Comments
 (0)