## Week 8 and Week 9 Updates:
### Progress on ePBS Implementation:
We made significant progress in implementing Enshrined Proposer-Builder Separation (ePBS) in Prysm. Several key PRs have been under development and review:
- [Execution payload envelope sync PR](https://github.com/prysmaticlabs/prysm/pull/14329) by potuz, successfully passed all tests and is now awaiting final reviews. This PR is crucial for handling the new execution payload envelope structure introduced in ePBS.
- Amaan's PR for [process_withdrawal](https://github.com/prysmaticlabs/prysm/pull/14297) was merged after alot of debugging. A separate test setup for ePBS was necessary due to differences in error handling and state initialization.
- Terence has been working diligently on validator client changes to support ePBS. His work includes developing new APIs for proposing headers, blocks, and execution payload envelopes, which are essential for the new ePBS workflow.
### My Ongoing Work:
I've been focusing on implementing the `UpdateVotesOnPayloadAttestation` function (PR [#14308](https://github.com/prysmaticlabs/prysm/pull/14308)). This involves handling of Payload Timeliness Committee (PTC) votes and addressing potential equivocations. After discussions with potuz, I've made adjustments to ensure we only set the first vote for each validator to prevent issues with unslashed equivocations.
### Team's Ongoing Work:
- Terence is developing new Prysm API interfaces for retrieving blocks, execution payloads, and execution headers. This work is fundamental for the new ePBS flow and will be used by both the beacon node and validator client.
- Jihoon is exploring possibilities for new beacon API calls, particularly focusing on the third interval of a slot. There's ongoing discussion about potentially combining some API calls for optimization.
- MD Amaan began work on `process_payload_attestation` but encountered challenges with participation flags specific to ePBS. This highlights the differences in handling attestations between ePBS and previous versions.
- PR #14329: [Execution payload envelope sync (potuz)](https://github.com/prysmaticlabs/prysm/pull/14329)
### Async Discussions
- In my work on `UpdateVotesOnPayloadAttestation`, we discussed how to properly handle PTC votes while accounting for potential equivocations. The solution we're implementing involves checking if a vote has already been set before updating.
- There's ongoing discussion about the optimal approach for new beacon API calls to support ePBS. Jihoon proposed combining some calls, like GetBlockV2, to return both blind and unblind blocks. Terence suggested keeping implementations simple initially but is open to optimizations later.
- We're considering how to optimize the validator's role in proposing headers, blocks, and execution payload envelopes. Terence has implemented a flow where these are separate steps, but we're discussing potential optimizations.
### Things I'll focusing on for next 2 weeks:
- PR [#14329](https://github.com/prysmaticlabs/prysm/pull/14329) needs additional reviews. I plan to take a look at it soon to provide feedback.
- We're eagerly awaiting Terence's PR for validator client changes, which will give us a clearer picture of the ePBS flow from the validator's perspective.
- There's a need for work on the REST API for the validator client. This is an area where we might need additional help, as Terence is focusing on the Prysm API.
- I'm considering helping Jihoon with APIs for the third interval of a slot, but we're waiting for Terence's PR to avoid duplicating work.
- potuz suggested focusing on RPC methods and beacon API implementations that are independent of core ePBS methods. This might be a good area for me to contribute next.
#### Personal Reflections:
Working on the ePBS implementation has been challenging but rewarding. I'm working on how we're handling the new PTC votes.
Moving forward, I'm excited to dive deeper into the beacon API changes and potentially contribute to new API calls. I also plan to spend more time reviewing other fellows' and mentors' PRs.