# Week 1 Update
This is my week1 update I saw the project ideas list and went on to learn more about them as well but ePBS is the one that I dived into firstly by Prysm team saw the blog post by [barnabe mannot ](https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879?u=barnabe) and then found out that [potuz](https://github.com/potuz) and [terence](https://github.com/terencechain) were the folks doing research on the ePBS topic.
## Latest Research on ePBS
I read these Resources :
#### - [ePBS Spec Notes](https://hackmd.io/@potuz/rJ9GCnT1C)
#### - [ePBS design constraints](https://ethresear.ch/t/epbs-design-constraints/18728)
#### - [Presentation shared by barnabe mannot](https://docs.google.com/presentation/d/1eWxKdykWGFx3OPT7t69R1GaoLYuNSNxTzvQx8M0TGsw/edit?pli=1#slide=id.g2e553bdd6f4_0_312)
#### - [EIP-7547](https://eips.ethereum.org/EIPS/eip-7547)
#### - [ePBS design constraints](https://ethresear.ch/t/epbs-design-constraints/18728)
#### - [EPF Wiki on PTC](https://epf.wiki/#/wiki/research/PBS/PTC)
After going through all these and forking and cloning the [Prysm repo](https://github.com/prysmaticlabs/prysm) which made some sense of how its gonna work but since Prysm is a new repo to me will take some time to understand it and then to contribute to it also golang is known to me but never coded much in that so learning it as well through [go-docs](https://go.dev/doc/tutorial/create-module) and [yt video](https://youtu.be/un6ZyFkqFKo?si=G13YgS8PIamW7ybx)
Also saw Bharath Vedartham's cohort four proposal on PEPC-Boost is a proposed out-of-protocol relay design where the top-of-block and rest-of-block are auctioned separately. This contrasts with the current MEV relays, where the complete block is auctioned wholly.But One thing that confused me was which design is failed and which one is the latest and full proof without a doubt but saw that its still under research to get the most optimized version of ePBS solution but it was mentioned that it is necessary to change the current one because it is not with the spirit of the protocol and also trust issues for proposer to trust the relay to successfully transfer the proposed commitment to the builder and builder payload to the beacon-proposer.
I read the ePBS specs and saw the [PR](https://github.com/prysmaticlabs/prysm/pull/13989) given by Potuz on the discord and also got to know that currently the state of implementation in Prysm on ePBS is the following :-
- P2P: Potuz (not started, PR open for PTC, needs tests)
- Core transition: Potuz (not started)
- Fork choice: Potuz (not started)
- RPC: Terence (not started)
- Validator client: Terence (~50% done, mostly PTC-related)
- Database: Done
- Beacon state implementation: Done
- State and block types: Done, but needs updating with the new consensus spec
Areas to explore further:
1) New beacon API specification: We will need an endpoint to get the fork choice weight of a given block for builder reveal.
2) Geth changes: It would be beneficial to have a Geth branch supporting solo builder behavior.
3) Beacon spec test addition: After Potuz opens the new consensus spec PR, terence plan is to make it executable and add as many tests as possible.
4) Fork choice audit: Fork choice additions are the most challenging part of ePBS. They've reviewed it but haven't found anything breaking yet. Additional scrutiny would be beneficial. Consider potential attack vectors like a 2-slot sandwich, liveness issues, etc.
So I am looking into how can I contribute to the above needs and learn golang laterally as well.Also understand the Prysm code base.
Further updates on my research and learning will be updated next week 👋