Abstract

During this EPF I learnt and worked on the Rust Ethereum ecosystem. I started with the idea of contributing to Reth, the new Ethereum execution client built in a open source way by the Paradigm team.

In the beginning I started taking lots of small issues available in the official GitHub repository in order to learn the code, how it was structured and overall gain confidence with it. I ended up doing 16 total commits and I’m now in the top20 contributors of Reth.

In the meanwhile I started digging into Revm: the Rust EVM Reth uses. After reading all the code I decided to try and implement the EIP-7212 P256VERIFY precompile inside of Revm. It was a great experience that gave me the opportunity to really go deep inside how the EVM works and interacts with the Ethereum state.

Since I completed the P256VERIFY precompile a lot earlier than what I initially have thought, I had more than a month left and that was the moment when Georgios (CTO of Paradigm) suggested me to work on a new bigger issue: creating a reth-crawler using Reth p2p stack in order to be able to replicate what ethernodes already does but in a open source way (also ethernodes is quite outdated).

To summarize:

Status

I’ll mainly focus on the reth-crawler project since it’s the bigger one.

Reth Contributions

I’m very satisfied by what I learnt and contributed to Reth during this EPF. Every issue was a way to learn new things about an Ethereum execution node and more generally a way to become a better Rust and Ethereum dev.

Revm P256VERIFY Precompile

This project is fully finished and available for everyone to see and test it.

Reth Crawler

reth-crawler is fully functional and deployed to production. Here is the official website: