The upcoming Bedrock upgrade will enable OP Mainnet and other OP Stack chains to support multiple clients, significantly enhancing the network's resilience and adaptability. Yesterday we celebrated the announcement of Magi, a16zcrypto’s rollup client, and today we are announcing that an alternate execution client has hit OP Goerli: op-erigon!
While these first versions of op-erigon and Magi on OP Goerli need ongoing testing to ensure stability and prepare for an eventual OP Mainnet launch, they nevertheless represent a huge milestone in L2 client diversity.
Read on to find out more about why Bedrock was designed to enable client diversity, and to get all the details on how to test op-erigon on OP Goerli.
What is client diversity and why is it important?
A client is a piece of software that syncs the blockchain and allows users to interact with it. In Ethereum, there are multiple clients developed and maintained by separate teams, which provides client diversity. This diversity is crucial for several reasons:
- It offers different features and optimizations. Clients developed in various languages (such as Rust, Go, and Java) can explore different ideas, optimizations, and research initiatives, fostering creativity and ensuring no single bottleneck hampers progress.
- It provides choice for developers. Users can select a client that fits their interests or specific use cases, providing opportunities for experimentation and alignment with their requirements.
- It helps hedge against client failures. Most importantly, a diverse client base ensures the network can continue operating even when one client faces issues. Ethereum has experienced critical bugs in the past, but the chain didn't fail because there were multiple clients available for use while the bugs were resolved.
How the Bedrock upgrade enables client diversity on OP Mainnet
The Bedrock upgrade is designed to achieve modularity and support multiple clients by adopting the same consensus layer and execution layer split as L1. By maintaining the same engine API boundaries that exist on L1, the upgrade minimizes the changes needed to adopt another client, enhancing flexibility and adaptability.
This modularity is echoed in plans for Cannon implementation on OP Mainnet: the network will be able to accommodate fault proof diversity as well. Fault proof diversity is backed by client diversity, and every combination of multiple clients and multiple proofs contributes to a quorum of the final outcome. This ensures that the network can continue operating, even in the face of bugs; OP Mainnet will keep on chugging. 🚂
As of today, the first iteration of op-erigon is live on OP Goerli. The Test in Prod team is eager to have users test out the network so they can refine the product and eventually ship it on OP Mainnet!
If you want to experiment with this new client offering, head to this GitHub repo or Test in Prod’s OP Goerli Public RPC. You can find Test in Prod on Twitter, and you can follow this link for an invite to their Discord to report bugs or find support for getting set up. Curious readers can also browse the op-erigon fork-diff or Otterscan, the op-erigon block explorer that Test in Prod has set up.
Users should be aware that new clients may not be entirely stable from the start. However when client usage is balanced with time-tested alternative clients, just like on L1, stability issues become less likely over time. By trying out op-erigon and providing feedback to the Test in Prod team, community members are helping to enrich the Optimism ecosystem. Thank you!
The power of the OP Stack
The launch of op-erigon and Magi on OP Goerli not only highlight the benefits of the Bedrock upgrade, but we hope they inspire developers to explore the OP Stack and build their own infrastructure. Ecosystem builders like Test in Prod and a16zcrypto are vital to the Optimistic Vision, and their hard work on this high-impact component of OP Mainnet deserves recognition.
This week we celebrated the launch of two new clients on OP Goerli, and the Bedrock upgrade structures the OP Stack in such a way that it is relatively simple for builders familiar with Ethereum to build and productionize other client integrations. If you're interested in contributing to projects like this, don't hesitate to reach out!