# **EPF5 Week 4 Update** This week has again been more focused on the fundamentals. I started reading [*Code*](https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319) on a more consistent basis. I just need a few more chapters before I finish it. Code has been extremely helpful for me in understanding not only hardware but also software. I like that electrical engineering concepts are used throughout as well. If I had this during my undergrad, it would have made my studies so much easier. Thanks again [Rahul](https://github.com/raxhvl) for the recommendation! For anybody that is just starting out in their dev journey, I highly recommend this book to help wrap your head around what is to come. **Other key events for the week:** - Attended [ePBS Office Hours with Potuz from Prysm](https://www.youtube.com/watch?v=K3a6QE30P9g&ab_channel=EthereumProtocolFellowship) - Listened to [ACDE Meeting #191](https://www.youtube.com/watch?v=58_bJD_dmm0&ab_channel=Ethereum) - Attended weekly Grandine Discord Catch Up call with Saulius - Read [Complete Intro to Linux and CLI](https://btholt.github.io/complete-intro-to-linux-and-the-cli/) - **DONE** - Decided what I wanted to do for my project: - Document Grandine Windows and MacOS support - Grandine's developers mainly use Linux, so Grandine is tested only on Linux. However, there are many Windows and MacOS users that would benefit from better support; - Get other fellows that also worked on support. I can add what I've done from MacOS perspective. Make sure as we go along that we are documenting roadblocks we face, send to me and I will include in documentation. Or we can all work on documentation? - Other - any other mutually agreed Grandine's area that can be improved. - [Documentation on their website](https://github.com/grandinetech/grandine/tree/develop/book) to make it more welcoming for new users, similar to the Lighthouse Book. Ask Saulius what should be included, highest priority items first and start from there. - E2E testing - improve Hive and Kurtosis test infrastructure; - What do Prysm and other Consensus clients do? Start there and recreate that. **Upcoming:** - Read [EPF Wiki SSZ Serialization section](https://epf.wiki/?#/wiki/CL/SSZ) - Read [p2p-interface.md](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md) - Not started - Set up [docker](https://github.com/eth-educators/eth-docker/releases/tag/v2.9.1.0) - Go through the [Grandine GitHub](https://github.com/grandinetech/grandine) - Read through [Grandine Docs](https://docs.grandine.io/) - Read through [Ethereum/builder-specs](https://github.com/ethereum/builder-specs) - Read through [Consensus-specs](https://github.com/ethereum/consensus-specs) - Read through the [Lighthouse Book](https://lighthouse-book.sigmaprime.io/?search=testing ) to see what I can find around Testing. - Read through [Beacon APIs](https://github.com/ethereum/beacon-APIs) - Write first Pyspec program. Use [Pyspec Tutorial](https://github.com/ethereum/consensus-specs/blob/dev/tests/README.md) - Write Pyspec test case - Read [Upgrading Ethereum 2.7-2.9 sections](https://eth2book.info/capella/part2/) - Read [Upgrading Ethereum Part 3](https://eth2book.info/capella/part3/) - Add Opcode to EELS **Links I came across that could be helpful in the future** - https://beaconcha.in/ - https://stakefromhome.com/ - https://etheralpha.org/ - https://x.com/ethereumonarm/status/1800436894418805198?utm_source=substack&utm_medium=email - https://simpleserialize.com/ (thanks for sharing DanGoron!) **Rust Resource** - [The Rust Programming Language](https://doc.rust-lang.org/book/title-page.html) - [Rustlings](https://github.com/rust-lang/rustlings/?tab=readme-ov-file) - [Exercism for Rust](https://exercism.org/tracks/rust) - [Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial.github.io/too-many-lists/index.html)