3cbd59ca-4b4f-4a84-bf1c-89314dae9916
Behind the Mountain
Building an Ethereum consensus client is a daunting task. Many have tried and failed before us, but we were determined to make our story different.
The learning curve is steep, but the journey is rewarding, transforming you into a better engineer and human being. I had the pleasure of working with an incredible team of highly skilled individuals: Tomas A., Martin P., and Tomas G. Together, we set out to achieve our goal of developing the first Ethereum Consensus Client in Elixir.
The first step for me was learning Elixir, a new language that I had only vaguely heard about. It's praised for its backend networking capabilities, but I didn't know much more. Ultimately, I found the process of learning and writing in Elixir enjoyable. Elixir, a niche but mighty language, it's known for its focus on concurrency, availability, fault tolerance, and stability. As a functional language powered by the Erlang VM, it's properties are making it an ideal choice for our client.
The second step was understanding how to build a consensus client. There are no step-by-step YouTube videos or books for such an goal. Our first mission involved collecting information from various sources: forums, blog posts, books, tweets, videos, conference notes, specifications, and code from other clients. Understanding what to build is just the first step; understanding why it was built in a particular way and how to replicate and improve this implementation is the next. This research phase was incredibly enjoyable, filled with those "Aha!" moments that every curious individual loves over anything else.