---
# System prepended metadata

title: 'CDAP Development Update #3'

---

# CDAP Development Update #3
This is a series of development updates from the Ethereum Foundation’s [Core Developer Apprenticeship Program](https://github.com/ethereum-cdap/cohort-one).

## Resetting Expectations
After initially trying to build a light client implementation in Rust, similar to something like [Lodestar's client/server model](https://github.com/ChainSafe/lodestar/tree/master/packages/light-client), I took a step back from that goal to focus on helping with a more "official" Eth R&D project: [ethereum_consensus](https://github.com/ralexstokes/ethereum_consensus). This project is an implementation of the Beacon chain's [consensus specification](https://github.com/ethereum/consensus-specs/tree/dev/specs) in Rust, so prior knowledge from diving deep into [Lighthouse's Ethereum client](https://github.com/sigp/lighthouse) implementation has been extremely beneficial.

For context, Lighthouse isn't the most "friendly" codebase to jump into; it's a battle-tested client implementation, but it's massive codebase with a lot of custom Rust macros and types. The goal of this [ethereum_consensus](https://github.com/ralexstokes/ethereum_consensus) is to implement the Ethereum consensus mechanism in Rust in a way that more closely resembles the spec. In other words, less esoteric and closer to what the spec defines in Python, thus, making it much easier for a developer to dive into and use the codebase.

## Progress
There are plenty of aspects to help contribute to, and there was already a lot of work done prior to my involvement (making it much easier to jump into). My inital focus has been in building out the [epoch processing](https://github.com/ralexstokes/ethereum_consensus/blob/main/src/phase0/state_transition/epoch_processing.rs) component of the Phase 0 specification (for context, issue is [here](https://github.com/ralexstokes/ethereum_consensus/issues/29)). It's already been a very rewarding experience for understanding how the Ethereum Foundation approaches projects, best practices for implementing specs in open source, and general Rust knowledge.

## Next Steps
- Complete the remaining functions in the [ethereum_consensus](https://github.com/ralexstokes/ethereum_consensus) project
- Tackle other issues (e.g., once phase 0 is complete, move into the Altair & subsequent related updates)