# EPF Cohort 6 – Week 1 Update
I joined EPF with initial interest in consensus-level improvements. This week has been a deep dive into Ethereum's consensus logic and the potential benefits of introducing determinism in proposer selection.
## EIP-7917 Research
During the first week of the program, I researched [EIP-7917](https://eips.ethereum.org/EIPS/eip-7917), which introduces deterministic proposer lookahead in Ethereum consensus.
I focused on understanding how consensus logic currently works—specifically, how proposers and attesters are selected at the start of each epoch for every slot.
I explored the benefits of introducing a deterministic lookahead for proposers for the next `MIN_SEED_LOOKAHEAD + 1` epochs.
I also thought about how **slashing** works for proposers who are deterministically selected ahead of time, and whether this could introduce new attacks or complications.
After that, I started looking at how this EIP is already implemented in other clients, such as [Prysm (PR)](https://github.com/OffchainLabs/prysm/pull/15129).
## Additional Consensus Research
While digging into proposer logic, I also explored:
- Fork Choice Rule and how it decides the canonical chain
- The fallback mechanisms in case a proposed block is not chosen (due to lack of attestations)
- What happens to valid transactions in blocks that are not included in the canonical chain (how they are returned to the mempool)
- The [attestation timing mechanism](https://eth2book.info/capella/part3/config/configuration/#seconds_per_slot) in Ethereum:
##
In the meantime, I got information from a colleague on Discord that most suggested clients have already implemented EIP-7917. Because of that, I decided to switch my focus for next week.
## Next Steps
Starting in Week 2, I will pivot to a new project:
**Implementing Tokio Tracing for debugging and performance analysis in the Grandine client.**
I believe that working on observability in a consensus client will give me valuable insight into how the core logic operates under the hood.
## Week 2 Goals
- Explore the Grandine codebase in more depth
- Clone and run the Grandine repo locally
- Study how `tokio-tracing` works in Rust
- Read more about the difference between observability and traditional monitoring
- Plan where tracing would be most useful inside Grandine
## Resources
- [EIP-7917](https://eips.ethereum.org/EIPS/eip-7917)
- [EIP-7917: Deterministic proposer lookahead with Justin Drake & Lin Oshitani PEEPanEIP](https://www.youtube.com/watch?v=oFSUU91BMOg)
- [Prysm PR #15129](https://github.com/OffchainLabs/prysm/pull/15129)
- [Eth2 Book – Consensus Configuration](https://eth2book.info/capella/part3/config/configuration)
- [Grandine GitHub Repository](https://github.com/grandinetech/grandine)