Ethereum is a protocol, an idea that anyone can interact with, if only they can speak the language. Most people know Ethereum through a client (maybe Geth, Parity or Web3 via MetaMask). While these Ethereum clients implement the protocol, they don’t define it. For Ethereum to succeed, the community should build and maintain many clients, each checking that the protocol is correct and preventing any one implementation from becoming law. I have spent the last year working on Exthereum, an Ethereum client written in Elixir nearing completion.
The history of Exthereum
Last May, I submitted my first transaction to Ethereum and got back a failure from the network. I wanted to pull right into
strace and debug the code, but looking at the EVM opcodes, I realized I didn’t know squat about how Ethereum works or the code I built. I started reading the Ethereum Yellow Paper, which meticulously describes the internals of Ethereum: each op code, the gas cost of each operation, how blocks are constructed, everything. I realized that to truly understand Ethereum, I could learn by implementing the Yellow Paper. Elixir being my tool of choice, I started Exthereum.
I soon found others online with the same vision. Coincidentally, Mason Fischer and Ayrat Badykov had both also started projects also called “Exthereum,” and we soon decided we should work together if we planned to complete such an ambitious project. Building Exthereum was full of trials which tested our resolve. For example, the Yellow Paper doesn’t cover the peer-to-peer protocol — the best resource for that is examining the source code of Parity and Geth. Yet, we’ve worked countless hours to build a project we’re proud of. A project which is being used to power a number of great blockchain projects. Our vision to make Exthereum a first-class Ethereum client has been coming true.
A community effort
I wanted to take a step back and thank a few people for the work they have put into this project so far. Thanks to Mason (at Elipticoin) and Ayrat (at POA Network). Thank you to Piotr, Paul, Jeremy, Vansa and Wendell at OmiseGo for supporting the project. To Levi at Covalent for improving the ABI. To Angel at SENSE for his team’s support and feedback to the project. Harley’s work to explore the project at TrueBit. To Igor at POA for his team’s dedication to continuing to move this project, Exthereum, forward.
Ethereum builds its strength through teams from all over the world building new tools, new protocols and trying new ideas. I hope that Exthereum can be a tool that inspires new teams to take the leap and start contributing or participating in the Ethereum community.