This is a continuation of my article Learning Blockchain Infrastructure Development As A Novice Rust Developer that described the inspiration for this journey.
I've been dabbling with frontend interfaces that interact with blockchains for a few years.
I have an okay-ish understanding of how blockchains function. I even know a couple of buzzwords without knowing what they actually mean... but I've never really written a solidity smart contract or learned exactly how a rollup works.
Sure, high level they take either an optimistic or a SNARKy approach for state root verification and batch transactions using Ethereum as the settlement layer. But I have no clue how this actually functions in practice.
There's 2 main problems I envision I'll face:
I have no idea about the design choices and technical limitations of Ethereum and its adjacent rollups/chains or the why behind them
I have some pre-conceived ideas of how certain things work which may simply be wrong
Before I jump head first into mastering blockchain infra, I need to clearly define what that mastery means.
There's so many potential areas of expertise: sequencers, execution environments, zk, smart contracts, consensus, probably a bunch of other stuff that I don't even know or understand.
Working backwards from my end goal to contribute to at least one of the projects that is doing meaningful work in furthering the peer-to-peer vision at an infra level (e.g. reth, lighthouse, zkSync, starknet, etc.), I'd probably need to:
Read & navigate their (large) codebase
Understand the I/O contracts of the infra (sequencer, VM, prover, state manager)
Implement a scoped feature or bugfix (e.g. extend a VM opcode)
Probably other stuff that I'm too naive to know right now
My current mental model (possibly wrong) to approach this is:
Find the right communities, share what I'm trying to learn and seek feedback on the plan
Build and document a minimal Rust rollup pipeline (sequencer + execution, maybe proof) as a learning project
One potentially useful resource I found is the BYOR - Build Your Own Rollup repo by l2beat
Make at least one (meaningful) merged contribution to an active Rust infra repo (reth, Lighthouse, zkSync, or Starknet)
I'm pretty sure the actual path wouldn't be quite this straightforward and I'd discover things along the way, but you don't know what you don't know.
So, step one: I'm going to start building a rollup and try to get it to work.
If you have any suggestions, please do send them to me on X / Twitter.
