## Week 10 and Week 11 Updates:
### Progress on ePBS Implementation:
- PR [#14363](https://github.com/prysmaticlabs/prysm/pull/14363): Implements sync for signed execution payload header. Introduces `ExecutionHeaderVerifier` and new getters in chain info package(terence)
- PR [#14308](https://github.com/prysmaticlabs/prysm/pull/14308): Implements `UpdateVotesOnPayloadAttestation`. Handles PTC votes and equivocations(kira)
- PR [#14373](https://github.com/prysmaticlabs/prysm/pull/14373): Adds unit tests for execution payload envelope verifier(Jihoon)
- PR [#14378](https://github.com/prysmaticlabs/prysm/pull/14378): Adds Prysm RPC endpoint for validator to get header from beacon node(terence)
- PR [#14380](https://github.com/prysmaticlabs/prysm/pull/14380): Implements retrieval of payload attestation data. Modifies `HighestReceivedBlockSlot` to `HighestReceivedBlockSlotRoot`(terence)
- PR [#14381](https://github.com/prysmaticlabs/prysm/pull/14381): Implements Prysm RPC for submitting payload attestation messages(terence)
- PR [#14365](https://github.com/prysmaticlabs/prysm/pull/14365): Hardcodes `GenesisValidatorRoot` in config(Amaan)
- PR [#14383](https://github.com/prysmaticlabs/prysm/pull/14383): Adds ePBS fork configuration. Merged(Jihoon)
### Some challenges we faced and discussion
- Execution payload header handling: Discussion on using hash vs hash+root for proposer and sync. Decided on ByHash for sync and ByHashAndRoot for proposer.
- State access optimization: Proposed using ReadOnlyBeaconState instead of multiple helpers to reduce locking/unlocking overhead.
- Caching mechanism: Current cache implementation clears after payload processing, causing issues for payload attestation message construction.
- Updated PTC vote handling in UpdateVotesOnPayloadAttestation:
```go
if node.ptcVote[i] == primitives.PTCStatus(0) {
node.ptcVote[i] = data.PayloadStatus
}
```
- Modified test implementation to handle Electra and ePBS having same epoch:
```go
// Changed from using epoch to update name
if update.Name == "electra" {
// Electra-specific logic
} else if update.Name == "epbs" {
// ePBS-specific logic
}
```
### Focus for the next 2 weeks:
- Implement builder's blacklist to prevent P2P stack poisoning.
- Optimize caching mechanism for payload status.
- Update spec to replace `MIN_BUILDER_BALANCE` with `EJECTION_BALANCE`.
- Implement internal function for payload attestation message handling.
- Resolve Gazelle-related issues in CI pipeline.