My project involved incorporating metrics into Lighthouse, Sigma Prime's consensus layer written in Rust. During this project, my aim was to deepen my understanding of the consensus layer's specifications and how it effectively orchestrates and implements the various rules of the Ethereum protocol.
You can find the project proposal here.
This was the initial project I embarked on while working on Lighthouse (LH). It necessitated a decent understanding of several aspects of the consensus layer, involving substantial time delving into eth2book, particularly the sections about the beacon node, the state, and their specifications for different fork names. This work marked my first step into working at the consensus level.
Additionally, I needed to familiarize myself with certain LH specific concepts as the project focused on their monitoring component, the validator monitor. I also took my time to implement a set of comprehensive tests which really helped me understand exactly how the state is validated throughout its lifetime.
The PR for this project was successfully merged, and another one is currently open to integrate the Grafana dashboard. It needs to be tweaked to reflect the latest change of #4731, I will be adding this week. I just recompiled a new version of LH with my changes and deployed it to Goerli. Once the metrics start rolling in, I will make the final changes.
This was my second project at Lighthouse (LH), and it progressed more quickly than expected.
Working on the missed block metrics feature greatly enhanced my understanding of the various LH components, their uses, the team's coding style and all their helpers.
Paul Hauner's educational approach in reviewing my code was invaluable. His detailed and thorough feedback significantly improved my technical implementation, understanding of the project, and grasp of core concepts. Following this, I revisited the eth2book, focusing on the beacon committee and the interaction between the Validator Client (VC) and the Beacon Node (BN) even though the implementation solely involved implementing a simulator on the BN.
A PR for this project is open and awaiting final review. Paul has already provided some feedback, and the project is nearing completion.
I plan to continue and finalize it beyond the EPF timeframe, ensuring the code is ready for merging.
The PR can be found here. There's some need to add a few metrics in the validator monitor dashboard which I am planning on adding this week alongside with my last dev update.
In my experience, the process of selecting a project was tedious for several reasons, one of the primary being my initial choice of going for a project in very high demand.
Balancing a full-time job, the need to enhance my Rust skills and working on the specs of the CL was challenging. I found myself competing with others for the initial good issues, which was often overwhelming.
It would have been beneficial to have more project ideas available for the fellows, reducing the competition for those first issues and making contributions easier. This is the only improvement I would suggest for the EPF program.
The program has been tremendously helpful, and I've learned a lot, especially regarding the intricacies of the consensus layer specifications. I feel a bit disappointed in myself for not switching to Lighthouse (LH) sooner. I believe I could have initiated at least one more project, but that's a lesson for the future.
I'm grateful that the program made me reconnect to the open-source community, which I had put on hold since starting my first crypto full-time job over a year ago. I am committed to continuing my journey in core development and maintaining consistency in my contributions.
This program has sparked a deep passion for core development in me, and I am determined to work hard towards becoming a better contributor to the Ethereum and its ecosystem.
I also think that it's a program that deserves to have all your time and I now understand why some core devs advise some fellow applicants that is best going through the EPF with their full focus.
A big thanks to Mario and Josh for organising everything and fostering a new wave of core contributors. I also want to express my sincere gratitude to Paul Hauner for his patience and detailed explanations while reviewing my PRs, as well as the other Lighthouse team members who assisted me.