Paradigm

Reth AlphaNet

Apr 16, 2024 | Georgios Konstantopoulos

Contents

Today, we are excited to open source Reth AlphaNet, an OP Stack-compatible testnet rollup aimed at maximizing Reth performance and enabling experimentation of bleeding edge Ethereum Research.

With this post, we hope to get developers excited to contribute and build on AlphaNet with experiments, performance optimizations, and push the frontier of Ethereum systems research, engineering and tooling with us.

What is Reth AlphaNet?

Reth AlphaNet is an OP Reth Rollup with the following characteristics:

  • Testnet: It’s a testnet rollup, holding no assets of real value.
    • We may periodically reset it if we want to introduce breaking changes.
    • We are open to either full reset or migrating some state across resets.
  • Experimentation: It initially comes with 3 EIPs implemented and tested, which are not available in any other network at the time of writing of the post:
  • High Performance: It will aim to break the gigagas barrier (1 gigagas per second) and confront the state growth problem head on.
    • Reth has been benchmarked at 100-200 megagas per second on the alpha.13 version (December 4th 2023) for "live sync" (incl. sender recovery, execution, hashing, and trie), and 1-3 gigagas/s for "historical sync" (only execution) on a 16-core @ 3.1GHz, 512GB RAM machine with a fast SSD.
    • We are on beta.5 (April 3rd 2024), and we've merged multiple optimizations since the original benchmark.
    • We invite the community to review the benchmarks and help us with further stress testing the code.

Zooming in:

  1. AlphaNet implements the OP Stack standard's Ecotone Hard fork via the Node Optimism crate.
  2. Bridging in and bridging out of the rollup will work same as stock OP Stack. The deposit and withdrawal delays will be on the lower end, optimized for developers wanting to end to end test bridge flows in wallets, block explorers, and other infrastructure.
  3. We do not have a strong view on what data availability mechanism AlphaNet should use. We will start with blobs and calldata, and will eventually explore multiplexing across multiple data availability layers based on fees. We are also looking at OP Plasma.

The whole codebase is <1500 lines of Rust code (LoC), including tests:

AlphaNet is now open sourced under the Apache/MIT permissive license, for anyone to fork, modify or launch.

What is the Reth SDK?

AlphaNet is built on top of Reth, rather than forking it.

Our original vision of Reth describes it as not just a node, but a Software Development Kit (SDK), as legos for building EVM-centric infrastructure.

Forking nodes is extremely brittle, it's harder to propagate updates across the ecosystem and rebasing large feature branches is hard. It also means lack of principle around where code changes happen.

The Reth SDK is a new paradigm for building nodes, specifically built for customization and for the rollup-centric roadmap.

AlphaNet implements traits provided by the Reth SDK's Reth node builder API, allowing extreme customization without forking the node. This relates closely to the original Erigon architecture of a node that separates concerns and allows running components like the transaction pool or the RPC as separate processes. The Reth SDK takes it even further using Rust's advanced type system and clean abstractions.

Here are some example modifications you can do on the node:

  1. Custom RPCs: Spinning up additional RPC methods and namespaces.
  2. Custom EVMs: Overriding the EVM's precompiles, instructions, and more.
  3. Custom Block Builder: Building blocks with your own orderflow or with a custom mempool.

We intend to share more information about how to use the Reth SDK (or Reth Core) in the coming months, as we drive it to feature completeness. We could not be more excited about this. For now, the examples and the NodeBuilder are the best things to look for in the codebase.

Why build AlphaNet?

We called it AlphaNet because it is “alpha” software for experimentation, but also “alpha” because it provides edge to developers that learn how to use its “developer preview” features.

AlphaNet's goals are:

  1. Enable developers to experiment with Ethereum nodes using Reth's modular architecture:
    • AlphaNet can serve as a distribution channel for research ideas, and encourage Layer 2 experimentation.
    • AlphaNet's node extensions were chosen for their ability to enable applications that enhance the onchain user experience, and drastically reduce cost for existing applications that improve UX.
    • Reth exposes Revm's new EVMBuilder API (PRs) which enables developers to extend the EVM with custom opcodes, instructions, gas tokens and more.
    • The Reth SDK will also allow swapping out key node components like the block executor, the state root algorithm, and already supports swapping out most other components like the networking stack, the block payload builder, database, and more.
  2. Test Reth's performance at the extremes, to 1 gigagas per second and beyond.
    • We hope to hit the state growth performance bottleneck, and discover ways to solve it, using research techniques already tested out on Ethereum and Base mainnet.
    • We hope to experiment with state expiry, rent, compress & revive-style techniques using witnesses, and anything that lets us move the needle there.
    • We will also deploy other techniques we've been talking about for a long time, such as parallel EVM (Block STM-based for live sync and by calculating the optimal schedule for historical sync), JIT/AOT EVM, alternative state root implementations & optimizations, multi-tenancy, and more. We already have proof of concepts for parallel EVM and JIT/AOT, and we're going to start pushing them forward more in the coming months.

What is the roadmap?

Our short-term roadmap for AlphaNet is as follows:

  1. Launch a hosted version of AlphaNet on Conduit, targeting 50 megagas/s, and eventually ramping up to 1 gigagas/s. If the nodes we run end up not being able to keep up with the sequencer due to state growth, we may possibly restart the experiment from zero, and try again.
  2. Distribute modified Foundry builds via the foundryup --alphanet command, so that any Foundry developer can access tooling for the node’s extensions.
  3. Use Rivet as an “Experimental Developer Wallet”, in order to iterate on Wallet UX for EIP-3074, BLS signatures, and native Passkey support.

We're particulary excited for EIP-3074 on AlphaNet with Foundry and Rivet, and recommend the entire ecosystem to prepare for its upcoming deployment in Ethereum L1 as of the All Core Devs meeting on April 11th 2024. If you want to work on EIP-3074 Invokers, help clean up our Foundry integration, or contribute to Rivet, please reach out.

Medium-term:

  1. We would like to try out other EIPs & RIPs like RIP7560 and EOF (already implemented in Revm). What else should we try?
  2. Push hard on the Reth performance optimizations mentioned in the "Why build AlphaNet?" section above.
  3. Push for the second OP Fault Proof implementation in Rust using Reth (FPVM choice TBD, between RISCV and MIPS), accelerating the OP Stack's Stage 2 Fault Proof roadmap.

We hope that Reth will be a fundamental building block for every Layer 2's scaling strategy.

Our long-term goal is to scale Ethereum and its L2 ecosystem together with the community. We will use AlphaNet as a feedback loop for pushing the frontier and deploying the best technology in production L1s and L2s. We invite the community to share with us what they'd like us to try out, or write code with us.

AlphaNet will be launched soon after Reth 1.0, before the end of Q2.

The Reth SDK provides very powerful abstractions for building modified performant nodes, and we think this is just the beginning. In the coming weeks we will be sharing everything we have been building with the Reth SDK. We will also share optimizations and architecture improvements for breaking through the performance and feature barriers required to reach web scale cryptocurrency.

We are looking for feedback and invite developers to contribute to the codebase on Github. Please reach out to georgios@paradigm.xyz if this sounds exciting.

Written by:

Disclaimer: This post is for general information purposes only. It does not constitute investment advice or a recommendation or solicitation to buy or sell any investment and should not be used in the evaluation of the merits of making any investment decision. It should not be relied upon for accounting, legal or tax advice or investment recommendations. This post reflects the current opinions of the authors and is not made on behalf of Paradigm or its affiliates and does not necessarily reflect the opinions of Paradigm, its affiliates or individuals associated with Paradigm. The opinions reflected herein are subject to change without being updated.