This is the week 1 update for me, [Agnish](https://twitter.com/0xagnish). This week went pretty hectic, as I mostly spent my time balancing out my day job and my EPF cohort work. So let's get straight to what I went through and learnt this week.
## 18th July, 2023
Just got off with the EPF meeting, and I decided that now I need to go through individual projects and need to really set my mind to it. I started with [Ephemery Testnet by Mario Havel](https://github.com/ethereum/EIPs/blob/04369cb50ee6c1894dec868141e8a32e66dc4f16/EIPS/eip-testnet-draft.md). At first I was a bit unsure of the terms `ForkChoice` and `ForkDigest`, then I realized that these were pretty essential concepts when it came to [Consensus Layer](https://ethereum.org/en/developers/docs/consensus-mechanisms/) of Ethereum. On further realisation, I understood that I pretty much had to dive deeper in order to understand how [Proof of Stake](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/) really worked.
## 19th July, 2023
`Verkle Trees in the Nimbus Execution Client` was also another major project that I had shortlisted lately, and wanted to contribute. So I watched some further videos on [Verkle Trees](https://www.youtube.com/watch?v=F1Ne19Vew6w), the recent one hosted at ETHCC'23. For some further reading and deep dive I went through [Paritosh's Notes on Verkle Transition](https://notes.ethereum.org/@parithosh/verkle-transition). To finish it off I checked out some of the recent `code implementations of Verkle Trees`, the notable ones that I found were the one in [Rust](https://github.com/crate-crypto/rust-verkle), and found another one from Weihan's notes, the one in [Golang](https://github.com/gballet/go-verkle).
## 20th July, 2023
Did further reading through [Eth2book](https://eth2book.info/capella/), started with the preliminary concepts like [Practical Byzantine Fault Tolerance](https://pmg.csail.mit.edu/papers/osdi99.pdf).
Needed some more clarity, so I went further with [Aditya's notes](https://www.adiasg.me/). Coming to specs soon after, I went through the [Ethereum Beacon API Specs](https://github.com/ethereum/beacon-APIs) codebase, only to understand the API params. Soon after, I went through the issues, and this issue [https://github.com/ethereum/beacon-APIs/issues/333](https://github.com/ethereum/beacon-APIs/issues/333), seemed doable to me. Although I needed some more insight into `Ethereum's SSZ`, hence I went through this doc link [SSZ](https://ethereum.org/en/developers/docs/data-structures-and-encoding/ssz/).
## 21st July, 2023
As I explored more through Consensus Clients, I found out a similar SSZ issue in [Lighthouse](https://github.com/sigp/lighthouse/pull/4504), hence, I cloned the repo and spent quite some time reading through and understanding the [codebase](https://github.com/sigp/lighthouse) thoroughly. I did some further reading by going through the [Lighthouse official documentation](https://lighthouse-book.sigmaprime.io/). I did some further for Ethereum's Consensus from another one of [Aditya's blogs](https://www.adiasg.me/confirmation-rule-for-ethereum/), this was primarily regarding [the confirmation rules wrt epochs in Ethereum's consensus approach](https://www.adiasg.me/confirmation-rule-for-ethereum/).
## 22nd July, 2023
Wanted to do a deeper dive into LMD Ghost, so I did code readthrough of Protolambda's repo of [LMD Ghost](https://github.com/protolambda/lmd-ghost) and another note by Aditya, [this](https://medium.com/@aditya.asgaonkar/bitwise-lmd-ghost-an-efficient-cbc-casper-fork-choice-rule-6db924e57d1f) one. With all this in mind, I got a much clearer idea into how Votes and Attestations happen in [LMD GHOST](https://eth2book.info/capella/part2/consensus/lmd_ghost/).
Along with this I wanted to do a side hobby project too, in order to sharpen my grasp over the EVM, so I was working on a lightweight EVM implementation on Rust.
## 23rd July, 2023
Went through [Casper FFG]() and [Gasper](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/gasper/), although there was no resource available for `Gasper` in the `Eth2book`, so I had to go through the [official docs and the research paper](https://arxiv.org/pdf/2003.03052.pdf), just to get what's going on. Along with this I read about Dapplion's [Secret non-single leader election](https://ethresear.ch/t/secret-non-single-leader-election/11789), so that I proceed with this at `Lodestar`, if possible. Read about [3 Pos attacks on Ethereum](https://arxiv.org/abs/2110.10086), and went through the codebase of [Ephemery-testnet by Mario](https://github.com/ephemery-testnet/ephemery-genesis).
Ended the day by having a good discussion on the REST Wrapper Telegram channel, where I went through the [Ethereum Execution APIs](https://github.com/ethereum/execution-apis) and started the work on [migrate to Docusaurus issue/431](https://github.com/ethereum/execution-apis/issues/431), went through the docs of [Metamask Docusaurus](https://socket.dev/npm/package/@metamask/docusaurus-openrpc).
## Finally narrowing down my projects
- Ephemery Testnet (automatic reset of epochs feature, rn it's manual)
- Nimbus Client Verkle Trees
- Consensus Client Issues, mainly SSZ (https://github.com/sigp/lighthouse/issues/4531), (https://github.com/ethereum/beacon-APIs/issues/333) and Secret Non-single leader
- Migrate to Docusaurus [Execution API Issue/431](https://github.com/ethereum/execution-apis/issues/431)