# EPF5 Dev Updates - Week 4 The past couple of weeks have been pretty intensive, with a lot of resources to consume and many things to learn and catch up on. As we rapidly approach the project idea submission and building phase, I decided to familiarize myself with some projects that I find interesting and would love to contribute to. To be a better contributor, I learned Rust, which happens to be one of the most commonly used programming languages across many client projects. ## Highlights from Learning Rust: Rust is notoriously difficult for beginners but excels in performance, security, and computational accuracy. Inspired by Reth’s performance, I dived into Rust and found it more rigid than Go, requiring semicolons similar to Java. Rust uses modules (mod) and public (pub) keywords instead of classes and public/private identifiers. Key concepts include error handling with Panic, custom errors, traits (similar to interfaces), and ownership. ## Summary of What I did this week - Spent most of my time learning how to code in Rust - Explored the selected project ideas - Started setting up my local node in an attempt to practice and better understand how the Consensus client and Execution client work together. ## What I will do next week - Finalize on project selection - Start working on my proposal - Complete the node setup and interactions ## Blockers - None at the moment # References - [Rust by example](https://doc.rust-lang.org/rust-by-example) - [Lodestar: Deposit Contract Snapshot Interface (EIP-4881)](https://github.com/ChainSafe/lodestar/issues/4935) - [Prysm: Custom golang implementation of libp2p](https://hackmd.io/@6-HLeMXARN2tdFLKKcqrxw/rkU0eLmEC) - [Ephemery testnet](https://ephemery.dev/) - [JSON-RPC in Geth](https://github.com/ethereum/execution-apis/issues/494) - [Node Workshop](https://epf.wiki/#/eps/nodes_workshop) - [Node Architecture](https://ethereum.org/en/developers/docs/nodes-and-clients/node-architecture/)