# Final Report – EPF 6 – Ream Beacon API ## Project Abstract The Ream client is a lean Ethereum client. Ideally, it should support both the current Beacon Chain and the future lean Ethereum Chain. This project focused on implementing several Beacon API endpoints to move closer to a fully featured Beacon Chain implementation. * [Project Proposal](https://github.com/eth-protocol-fellows/cohort-six/blob/master/projects/ream-beacon-api.md) * Contributors: [Prototype](https://github.com/ShiroObiJohnhttps://), [Jay](https://github.com/jveer634) ## Project Overview & State Below are the issues we worked on, my focus is on sync committee–related endpoints: - [Implement /eth/v1/beacon/light_client/optimistic_update](https://github.com/ReamLabs/ream/issues/211) - [Implement /eth/v1/validator/contribution_and_proofs](https://github.com/ReamLabs/ream/issues/240) - [Implement /eth/v1/validator/sync_committee_contribution](https://github.com/ReamLabs/ream/issues/238) - [Implement /eth/v1/validator/sync_committee_selections](https://github.com/ReamLabs/ream/issues/239) - [Implement /eth/v1/validator/beacon_committee_selections](https://github.com/ReamLabs/ream/issues/237) - [Implement /eth/v1/beacon/pool/sync_committees](https://github.com/ReamLabs/ream/issues/215) - [Implement /eth/v1/beacon/pool/proposer_slashings](https://github.com/ReamLabs/ream/issues/214) - [Implement /eth/v2/beacon/pool/attester_slashings](https://github.com/ReamLabs/ream/issues/213) - [Implement /eth/v1/validator/attestation_data](https://github.com/ReamLabs/ream/issues/232) - [Implement /eth/v1/validator/sync_committee_subscriptions](https://github.com/ReamLabs/ream/issues/236) Six of these issues are closed with merged PRs. [Implement /eth/v1/validator/contribution_and_proofs](https://github.com/ReamLabs/ream/issues/240), [Implement /eth/v1/validator/sync_committee_contribution](https://github.com/ReamLabs/ream/issues/238), [Implement /eth/v1/beacon/pool/sync_committees](https://github.com/ReamLabs/ream/issues/215), and [Implement /eth/v1/validator/sync_committee_subscriptions](https://github.com/ReamLabs/ream/issues/236) are awaiting code review. I plan to continue working on them after EPF until they are merged. ## Current Impact and Future of the Project The completed issues and PRs move the Ream client closer to syncing correctly with the current Beacon Chain testnet and mainnet. However, over the past three months this project was deprioritized because the Ream team shifted focus to the lean Ethereum PQDevnet0 development. I will discuss with our mentor whether this project remains relevant. Depending on that conversation, I will either continue contributing here after EPF or shift to lean Ethereum–related work. ## Self-Evaluation Progress on the issues and PRs did not meet my expectations. Because of the team’s shift in focus, several PRs could not be reviewed or merged during the last two months of the EPF program. I will continue to push for reviews and update the PRs based on feedback until they are merged. ## Feedback and Takeaways I learned a lot about how consensus clients operate. I explored Grandine and Lighthouse extensively as references and spent significant time studying the consensus specifications. I now understand how consensus clients work in detail, and I am comfortable with almost all aspects of the sync committee. This was a valuable learning opportunity. I wish I had spent more time before the program started familiarizing myself with the Ethereum Study Group materials and at least one client codebase. I also hope the schedule becomes more accommodating for people in East Asia, since weekly standups and office hours currently take place at midnight in our time zone.