Reth AlphaNet is a testnet OP Stack rollup aimed at enabling experimentation of bleeding edge Ethereum Research. AlphaNet is not a fork of reth. AlphaNet implements traits provided by the reth node builder API, allowing implementation of precompiles and instructions of experimental EIPs without forking the node.
Specifically, AlphaNet currently implements the following EIPs:
- EIP-3074:
AUTH
andAUTHCALL
instructions. - EIP-7212: Precompile for secp256r1 curve support.
- EIP-2537: Precompiles for BLS12-381 curve operations.
AlphaNet has 2 goals:
- Showcase Reth's performance at the extremes. We intend to launch a hosted version of AlphaNet on Conduit, targeting 50mgas/s, and eventually ramping up to 1ggas/s and beyond. In the process we hope to hit the state growth performance bottleneck, and discover ways to solve it. If our hosted chains end up getting too big, we may possibly restart the experiment from zero, and try again.
- Showcase how Reth's modular architecture can serve as a distribution channel for research ideas. Specifically, 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.
AlphaNet does not yet have a running testnet, but can be run locally for development and testing purposes. To do this, the binary can be run with the --dev
flag, which will start the node with a development configuration.
First, alphanet should be built locally:
git clone https://github.com/paradigmxyz/alphanet
cd alphanet
cargo install --path bin/alphanet
alphanet node --chain etc/alphanet-genesis.json --dev --http --http.api all
This will start the node with a development configuration, and expose the HTTP API on http://localhost:8545
.
To use 3074-enabled foundry, use eip-3074-foundry and follow installation instructions.
Running AlphaNet will require running additional infrastructure for the archival L1 node. These instructions are a guide for running the AlphaNet OP-stack node only.
For instructions on running the full AlphaNet OP stack, including the L1 node, see the Reth book section on running the OP stack, using the alphanet
binary instead of op-reth
.
To run AlphaNet from source, clone the repository and run the following commands:
git clone https://github.com/paradigmxyz/alphanet.git
cd alphanet
cargo install --path bin/alphanet
alphanet node
--chain etc/alphanet-genesis.json \
--rollup.sequencer-http <TODO> \
--http \
--ws \
--authrpc.port 9551 \
--authrpc.jwtsecret /path/to/jwt.hex
Once alphanet
is started, op-node
can be run with the
included alphanet-rollup.json
:
cd alphanet/
op-node \
--rollup.config ./etc/alphanet-rollup.json \
--l1=<your-sepolia-L1-rpc> \
--l2=http://localhost:9551 \
--l2.jwt-secret=/path/to/jwt.hex \
--rpc.addr=0.0.0.0 \
--rpc.port=7000 \
--l1.trustrpc
See SECURITY.md.
If you are modifying the EIP-3074 solidity smart contracts used in the
alphanet-testing
crate you should regenerate the built artifacts with:
$ make build-eip3074-bytecode
This command uses the docker image from the foundry-alphanet repo which contains patched versions of solc and forge compatible with the instructions introduced by EIP-3074.
The changes in the artifacts should be committed to this repo, this way we don't have to rely on docker being available to generate the artifacts and run the tests. There's a CI step that will check if the committed artifacts match the smart contracts source code.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.