Hello there, my name is [Agnish](https://twitter.com/0xagnish), I'm a permissionless participant here, only to prove my value. I've been previously associated with university research in NLP and LLMs. It's been a year that I've moved in core Ethereum, before that I've mainly done smart contract development.
I really look forward to contributing to the **Ethereum Protocol Fellowship - Cohort 4**. Here, I'll be updating on a weekly basis. As this was week 0 and mostly prerequisite stuff, I felt like ultilising this week fruitfully. Thereby, felt like pushing an update before the **kickoff** meeting (July 13th, 2023, 15:00 UTC) is really important.
I started with gathering up some resources regarding several crucial topics. Then, I started them covering one by one...
### July 8th, 2023
Pretty much unsure where to start from, I started looking into some project ideas on the cohort [repo](https://github.com/eth-protocol-fellows/cohort-four/blob/master/projects/project-ideas.md)
**Figuring out what I don't know yet**, yes this was needed, so I started reading the [Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) right away. At first I was a bit unsure of the technical notations and language, hence, I used something lighter to get a gist of it, part by part. I went through the [Ethereum Yellow Paper Walkthrough Part 1->7](https://www.lucassaldanha.com/ethereum-yellow-paper-walkthrough-1/), for further reading about **The Ethereum World State**, I went through [this](https://medium.com/cybermiles/diving-into-ethereums-world-state-c893102030ed). Here I realised the following things:
- How the "state" in Bitcoin was different from Ethereum
- How Ethereum implements the [Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) data structure
- How it stores tries in [Google's LevelDB](https://github.com/google/leveldb)
### July 9th, 2023
Went further with reading [Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf), again got stuck with something else, this time a few detialed things of [RLP encoding](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/), so I went through [this](https://medium.com/coinmonks/data-structure-in-ethereum-episode-1-recursive-length-prefix-rlp-encoding-decoding-d1016832f919) article on Medium, got a vivid idea of how data serialization and deserialization works in Ethereum, looked into a few code repos too like [this](https://github.com/sontuphan/debug-geth/tree/master/rlp). Moreover, concepts of RLP started right away as I reached the **transactions portion** in Ethereum.
Got pretty used to the notations used in the yellow paper, thanks to [yellow paper cheat sheet](https://github.com/benjaminion/YellowPaper_CheatSheet/blob/master/YPCheatSheet.pdf).
Also interacted with people on the Discord channel, got to know their project ideas and expectations from the cohort. Specially came across [EIP-X: Stateless Account Abstraction](https://github.com/sogolmalek/EIP-x) by [Sogol Malek](https://github.com/sogolmalek/), a fellow at the cohort.
### July 10th, 2023
Wanted to take a detour at what I read, so I started reading a little about [Layer2](https://ethereum.org/en/layer-2/), wanted to dive deeper, and I came across a concept in Data Availability, explored more, and I found out [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), initially started with [the rollup centric roadmap](https://polynya.medium.com/understanding-ethereums-rollup-centric-roadmap-1c60d30c060f).
Realised I need [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718) and [EIP 2930](https://eips.ethereum.org/EIPS/eip-2930) as prereq, also came across it in the yellow paper, so I took light read of the same.
Ultimately came across [this](https://ethresear.ch/t/a-design-of-decentralized-zk-rollups-based-on-eip-4844/12434) blog on how zkrollups had to be implemented based on EIP-4844.
Again, realised didn't quite go over KZG Polynomial Commitments, so quickly went through [Danksharding](https://www.youtube.com/watch?v=e9oudTr5BE4&t=600s&pp=ygUMZGFua3NoYXJkaW5n) and [KZG](https://www.youtube.com/watch?v=g6s4zpypPT4&t=585s&pp=ygUDa3pn) from these videos, ended with exploring [Ben Edgington's code implementation of KZG in C](https://github.com/benjaminion/c-kzg) and called it a day.
### July 11th, 2023
Went further with the Yellow Paper, also did some initial reading of [Eth2Book](https://eth2book.info/).
Wanted to know more about the networking layer of Ethereum, so I went through the [Nodes and Clients]() and [Networking Layer]() portions from the **official Ethereum documentation**.
Came across a few interesting projects on the Cohort repo, amongst them I found the **JSON RPC Specification and Testing** and the **REST Wrapper** for the same, viable enough to ahead with.
For the same reasons, I started reading about the [Engine API](https://github.com/ethereum/execution-apis/pull/197) from for 4844.
Finally finished the day with [blogging here](https://hackmd.io/@agnxsh/Sk6kwnGKh) about why **KZG is a better viable option to Merkle Proofs in Blob Transactions.**
### July 12th, 2023
Was reading the Yellow Paper, and I got stuck with the technical notations explaining **Bloom Filters**, so I actively asked in the Discord channel, [siladu](https://github.com/siladu) was kind enough to help me with some resources, and I did a little bit of my own research over it as well, and finally understood what was going on.
Did some more project exploration and came across the project idea on **Fuzzing**, was quite interested so I spent the rest of the day going through some of **Jeffrey Scholz's Yul and Gas puzzles** on [RareSkills](https://github.com/RareSkills) github repo.
Also, did some reading on EVM too from the [Ethereum Book: Chapter 13](https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc), and explored more evm codes from [https://ethervm.io/
](https://ethervm.io/
).
### July 13th, 2023
Today, I covered some more of the Yellow Paper, finished till half of the Appendix portion.
Looked around in Discord and realised people talked quite alot about [Verkle Trees](https://ethereum.org/en/roadmap/verkle-trees/), so I decided to give it a thorough read, first I read [Vitalik's blog on Verkle Trees](https://vitalik.ca/general/2021/06/18/verkle.html), then watched some further videos from the various ETH events.
Came back to the EIP-X repo once, and covered the [Aggregatable Subvector Commitment](https://www.youtube.com/watch?v=Yzs6DEVFTLM) part real quick.
Went through the **Nimbus and Lodestar** clients and thought of making an attempt to contribute there too, but I didn't know Nim, so I decided to give a look over the next few days.
Also liked the project idea on **Calculating Total ETH Supply** so decided to give that a look too, over the next few days.
### Summarising my project interests
This week was quite a learning curve for me, but I did enjoy my time reading about so many different concepts. Here are my project interests summarised:
- EIP-X
- Fuzzing
- JSON RPC Testing
- JSON RPC REST Wrapper
- Calculating Total ETH Supply
- Few issues on Nimbus
- Lodestar (not sure yet)