Week 12

Hi everyone, this week I continued my work on the PR https://github.com/prysmaticlabs/prysm/pull/14376 which introduces new light client full-node.md changes from Capella and Deneb. There were some areas which needed minor changes and I mainly worked upon those. I also opened a small PR which addresses a few places where an epoch has been used instead of a sync committee.

Unifying Structs and Functions

I have also added Bastin as a collaborator in my repo as he plans to work on the API part and redesigning the proto files. Right now Prysm has different light client structs for Altair, Capella and Deneb, for example we have LightClientHeader struct for Altair and Bellatrix, LightClientHeaderCapella for Capella and LightClientHeaderDeneb for Deneb and Electra. This is because all these structs have version specific ExecutionPayloadHeader fields so we can't straight up use the same LightClientHeader struct for every fork.

type LightClientHeader struct {
	Beacon *BeaconBlockHeader `json:"beacon"`
}
type LightClientHeaderCapella struct {
	Beacon          *BeaconBlockHeader             `json:"beacon"`
	Execution       *ExecutionPayloadHeaderCapella `json:"execution"`
	ExecutionBranch []string                       `json:"execution_branch"`
}
type LightClientHeaderDeneb struct {
	Beacon          *BeaconBlockHeader           `json:"beacon"`
	Execution       *ExecutionPayloadHeaderDeneb `json:"execution"`
	ExecutionBranch []string                     `json:"execution_branch"`
}

We had a discussion with Radek and then Bastin decided to take up the work of unifying these structs in the same PR. We also decided to have a single createLightClientBootstrap function for each fork in the future and I have added that as a comment under our tracking issue.

What's Next

Upcoming week I am planning to take up some new topic from the tracking issue and work on it. I might also close this PR https://github.com/prysmaticlabs/prysm/pull/14406 and add its changes to the other open PR as the changes there are actually very minor to have their own separate PR.