# **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)