# Week 6
I'm working on issue [Implement /eth/v1/beacon/light_client/optimistic_update](https://github.com/ReamLabs/ream/issues/211) this week.
To understand how Ethereum light client works, I started looking for overviews and deep dive materials. The talk [Light Clients After the Merge by Etan Kissling | Devcon Bogotá](https://www.youtube.com/watch?v=ZHNrAXf3RDE) by
[Etan Kissling](https://github.com/etan-status) gave a high level overview, it explained what are light clients and why we need them, then it introduced Sync Committee which formed by 512 validators and rotates every 1.1 days(256 epoch). Sync Committee sign every block, If "more than two-thirds of it agree on the same block," a light client can trust that the block (and its embedded root hash) is correct.
Another talk [Networking in light clients](https://www.youtube.com/watch?v=85MeiMA4dD8) from him at the [Light client Summit](https://www.youtube.com/watch?v=zxQvEEY9e4k&list=PLJijNYoOwnst-feT7PsCLaSdiFYzWtf7j) is also very informative. It walked through the flow of how a light client talks to a full node to sync to the tip of the chain:
1. Bootstrap: sync from a trusted block root to this light client bootstrap with the initial sync committee.
2. Full Updates: download one full light client update per period with the next in committee until they are in the current period.
3. Latest Finalized: then they get a final one to get to the latest finalized head."
4. Optimistic Updates: follow these optimistic light client updates to keep track of the latest slot & latest slots parents
I found that a previous project [Light Client Server Support in Prysm](https://github.com/eth-protocol-fellows/cohort-five/blob/main/projects/light-client-support-in-prysm.md) from EPF Cohort 5, was also about implementing above Light Client features for Prysm. They gave a talk [Light Client Support in Prysm](https://www.youtube.com/watch?v=d7j5WwTkZYs) at Devcon 7, which is also a good reference.
I also read through several other articles about Ethereum Light Client listed in Resources. One of them [Demystifying Ethereum Light Clients](https://paragraph.com/@skandabhat/ethereum-light-clients) explained changes related to Light Client introduced in the Capella fork.
After gaining a full picture of how Light Client works, I referenced these specs [Consensus Specs Altair Light Client -- Full Node](https://ethereum.github.io/consensus-specs/specs/altair/light-client/full-node/), [Consensus Specs Capella Light Client -- Full Node](https://ethereum.github.io/consensus-specs/specs/capella/light-client/full-node/#capella-light-client-full-node)
and [Beacon API Specs getLightClientOptimisticUpdate](https://ethereum.github.io/beacon-APIs/#/Beacon/getLightClientOptimisticUpdate), implemented the Beacon API /eth/v1/beacon/light_client/optimistic_update endpoint in Ream. Next step is getting my local Ream node to sync to the tip of the chain to test this API.
## Resources
[Consensus Specs Altair Light Client -- Full Node](https://ethereum.github.io/consensus-specs/specs/altair/light-client/full-node/)
[Consensus Specs Capella Light Client -- Full Node](https://ethereum.github.io/consensus-specs/specs/capella/light-client/full-node/#capella-light-client-full-node)
[Beacon API Specs getLightClientOptimisticUpdate](https://ethereum.github.io/beacon-APIs/#/Beacon/getLightClientOptimisticUpdate)
[Lodestar Releases Light Client Prototype!](https://blog.chainsafe.io/lodestar-releases-light-client-prototype/)
[The Road Ahead for Ethereum Light Clients](https://blog.chainsafe.io/the-road-ahead-for-ethereum-light-clients/)
[The State of Light Clients in Ethereum](https://blog.chainsafe.io/ethereum-light-clients/)
[Exploring Eth’s Altair Light Client Protocol: t3rn’s vision](https://www.t3rn.io/blog/exploring-eths-altair-light-client-protocol-t3rns-vision)
[Ethereum Light Client ecosystem](https://lightclients.notion.site/Ethereum-Light-Clients-34bd5b58cf994abe8812463544d991d3)
[Light Client Summit](https://www.youtube.com/playlist?list=PLJijNYoOwnst-feT7PsCLaSdiFYzWtf7j)
[Light clients from ethereum.org LEARN HUB](https://ethereum.org/en/developers/docs/nodes-and-clients/light-clients/)
[Helios](https://github.com/a16z/helios)