---
# System prepended metadata

title: '**EPF5 Week 5 Update*7-8'

---

# **EPF5 Weeks 7-8 Update**

I'm back! My brother got married and the family traveled for the wedding so I took some time off. It was a nice break to unplug and was much needed. 

Catching up on a lot of work now. :) 

**Key events for the past few weeks:**
- Read chapters 20 and 21 of Code
- Caught up on Discord
- Figured out what I need to do for Grandine documentation 
- Listened to [ACDC Meeting #138](https://www.youtube.com/watch?v=lmzAUqsIbIE&ab_channel=Ethereum) and [ACDE Meeting #193](https://www.youtube.com/watch?v=vbh9C2_-TIc&ab_channel=Ethereum)
- Read through Testing docs
- Submitted [project proposal PR](https://github.com/eth-protocol-fellows/cohort-five/blob/main/projects/Grandine-Support-Documentation.md) and presented my project proposal during [Session One Presentation Office Hours](https://www.youtube.com/watch?v=yV61AbvMTj0&t=1462s&ab_channel=EthereumProtocolFellowship)
- EPF Wiki Testing/Grandine info PRs
- Watched [The evolution of Prysm with Preston Van Loon
](https://www.youtube.com/watch?v=Lvlit-nIRfM&ab_channel=OverAbstraction)
- Watched [Protocol Priorities with Tim Beiko](https://www.youtube.com/watch?v=PlyzfwBe6Ys&ab_channel=OverAbstraction)


**To Do's For This Coming Week:**
- Need to add Grandine to several pages across ethereum.org. I couldn't find instances of the word Grandine anywhere on ethereum.org. I did a search for Nimbus and I suspect the following pages need to also mention Grandine:
    - [Nodes and clients](https://ethereum.org/en/developers/docs/nodes-and-clients)
    - [Client diversity](https://ethereum.org/en/developers/docs/nodes-and-clients/client-diversity/#consensus-clients)
    - [Ethereum Support](https://ethereum.org/en/community/support/#consensus-clients)
    - [Adding staking products or services](https://ethereum.org/en/contributing/adding-staking-products/#node-or-client-tooling)
    - [Spin up your own Ethereum Node](https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/#running-a-consensus-client)
    - [Ethereum Bug Bounty Program](https://ethereum.org/en/bug-bounty/#rules)
    - [Ethereum Governance](https://ethereum.org/en/governance/#who-is-involved)
- Grandine project notes: 
    - Add instructions for forking the repo
    - 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 Boma_Naps for MacOS and Kamui that worked on Windows 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 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 does Prysm and other Consensus clients do? Start there and recreate that.
         - Prepare your environment, update the system and install dependencies so it doesn't block you during the workshop. 
         - The workshop environment will be fresh Debian 12 instance but you can use any preferred distro. Process might be very similar on other unix based systems like Mac but you can always setup a VM to replicate the environment.
         - Install basic utils we will need like curl, git, gpg, docker, compilers
         - We will only run a client on testnet so the hardware requirements are minimal - the goal of the workshop is not to sync the tip of the chain but only demonstrate how the node works. Default client pair will be geth+lighthouse but if there is enough time we can demonstrate switching the pair.
         - Choosing a client pair and environment
         - Obtaining clients
             - Downloading and verifying binary
             - Compiling a client?
             - Docker setup?
         - Client pair setup
             - Run EL+CL client on Holesky
             - Running on Ephemery using custom genesis
             - Switching CL or EL client
                 - Nimbus?
                 - Erigon?
         - Using the client
             - Accessing the RPC
                 - http, console, wallet
                 - Adding validators
         - Additional exercise if there is time
             - Systemd service
             - Monitoring node
         - Setup monitoring with Grafana dashboard which shows detailed information on various client parameters and functions
         - Enable higher logs verbosity, read client debug logs to learn about its low level processes
         - Connect to your node using a wallet, development tooling, web3.py or JS console
         - Connect your node to the crawler and check what details it learns about it, discover new peers
         - https://github.com/eth-educators/ethstaker-guides/blob/main/holesky-node.md
         - https://notes.ethereum.org/@launchpad/node-faq-merge
         - https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-i-installation/monitoring-your-validator-with-grafana-and-prometheus 
- Read [Complete Intro to Linux and CLI](https://btholt.github.io/complete-intro-to-linux-and-the-cli/)
- 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)