# Ethereum Protocol Fellowship - The Third Cohort (Update 1)
My goal is for week one is to gain a better understanding of light-clients on the Portal Network and the Portal Network development efforts. I've already surveyed the Ethereum roadmap and seems like there should be more effort in implementing more clients for the Portal Network.
Zero-knowledge and light-clients are very interesting to me so it would be cool to combine these two in a novel way.
My goal may be to create a light client using zero-knowledge but currently exploring the feasibility and need feedback on a few of my ideas here.
* Would the client make a proof of each part of the network? (History, etc.)
[DenDreth](https://github.com/metacraft-labs/DendrETH#:~:text=Our%20archive%20of%20light%20client%20updates%20also%20includes%20pre%2Dgenerated%20zero%2Dknowledge%20proofs%20for%20the%20latest%20version%20of%20the%20light%20client%20Circom%20circuit.) is the only light client I found so far that is using zero-knowledge to verify the BLS signatures of the Ethereum 2 validators and all of the syncing protocol rules. This light client is using the [Beach Chain's light-client syncing alogorithm](https://github.com/ethereum/annotated-spec/blob/master/altair/sync-protocol.md#:~:text=The%20sync%20committee,at%20each%20slot.).
## Update
I have already completed the recommended reading found [here](https://github.com/eth-protocol-fellows/cohort-three/blob/master/program-guide/reading.md) and viewed the past cohorts projects and open issues.
More detailed notes are on my **[notion](https://cyclic-witch-ded.notion.site/Ethereum-Protocol-Support-Apprenticeship-8a96918d7487449293e00d7cadf0a2de)**. Most of the links are based on what I find interesting and don't follow a strict ordering.
I have read a bit about the Protocol following these links:
* Yellow Paper
* [Yellow Paper CheatSheet](https://ethereum.github.io/yellowpaper/paper.pdf)
* [Ben Edington's book](https://eth2book.info/altair/contents) (still being edited)
* Ethereum 2.0 Knolwedge Base
* [EVM Illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)
* [A Hitchhiker's Guide to Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum)
Some reading/watching for light-clients (mostly for Portal):
* The Winding Road to Functional Light-Clients (Part 1, 2 & 3)
* Introducing Fluffy - an ultra-light client for Ethereum
* Portal Network [Specs](https://github.com/ethereum/portal-network-specs)
* [How to Build Your Own Ethereum Client](https://archive.fosdem.org/2019/schedule/event/nimbus/)
* [Portal Network DevCon talk](https://www.youtube.com/watch?v=0stc9jnQLXA&t=1137s&ab_channel=EthereumFoundation) - i asked a question about light-clients here :)
* [DevConnect Portal Network Talk](https://www.youtube.com/watch?v=gnk7ST97Tqc&ab_channel=EthereumDEVNL) by Piper
* [Light Clients](https://github.com/eth-protocol-fellows/cohort-one/blob/master/notes/Light-Clients-R%26D.md) R&D from Cohort One
Light-Clients built for the Portal Network (only the History network is live on the Portal Network):
* trin
* first dev [update](https://snakecharmers.ethereum.org/trin-development-update/)
* Trin [Architecture](https://www.notion.so/Trin-Architecture-126caffd619a433fb7e25e9115549dea)
* fluffy
* ultralight ([GH](https://github.com/ethereumjs/ultralight))
* go-ethereum
Ethereum Networking:
* https://ethereum.org/en/developers/docs/networking-layer/
* [Node Discovery V5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
* https://ethereum.org/en/developers/docs/networks/
* Chainsafe's dscv5 [implentation](https://github.com/ChainSafe/discv5) in TS
* [Handbook of Peer to Peer Networking](https://link.springer.com/book/10.1007/978-0-387-09751-0) - casually browsing and using as a reference for P2P knowledge
* LibP2P Tutorial: https://jslibp2p-chat-tutorial.vercel.app/
* [Kademelia](https://jslibp2p-chat-tutorial.vercel.app/#/4/3_kademlia) DHT (easier reading compared to whitepaper)
* LibP2P [docs](https://libp2p.io/)
Zero-Knowledge:
* https://zkp.science/
* [zcash halo2book](https://zcash.github.io/halo2/concepts.html)
Fun Stuff:
* Implented a [bittorrent client](https://github.com/AnthonyMadia/bittorent-client) to gain more familiarity with peer-to-peer networking. Largely adapted from [here](https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html).
* [Bittorent Protocol](https://www.morehawes.co.uk/old-guides/the-bittorrent-protocol) & [Beginners Guide](https://www.morehawes.co.uk/old-guides/a-beginners-guide-to-bittorrent#:~:text=Guide%20To%20BitTorrent-,A%20Beginners%20Guide%20To%20BitTorrent,-Posted%20on%2024)
Todos:
* Continue reviewing Ultralight codebase and Portal Network specs