Components
The OP Stack is an open-source, modular, Ethereum Layer 2 rollup stack. Before you deploy, it is important to understand the key components and how they come together to create your blockchain.- L1 Smart contracts: A set of smart contracts to be deployed on Ethereum to bridge between the L1 and L2 domains and manage aspects of the rollup.
- Sequencer: A single privileged node that accepts and derives user transactions on the network to construct the blockchain.
- Batcher: A sequencer service that publishes L2 transactions onto Ethereum. Using Ethereum as a data availability layer, the OP Stack inherits Ethereum’s security properties by allowing any node to derive the state of the L2 blockchain from L1.
- Proposer: A service responsible for publishing the L2 state root to Ethereum which enables user withdrawals of assets.
- Challenger: The challenger enforces network security by disputing invalid state roots that have been posted to Ethereum.
Deployment
The following section will walk you through the sequence of steps a chain operator will follow to begin sequencing a chain.Smart contract deployment
Using a CLI tool called op-deployer you will configure your chain and then deploy the smart contracts on Ethereum.
Validate your deployment
After deploying the L1 smart contracts you will use op-validator to verify that your deployment configurations match what you expect.
Chain genesis creation
After deploying the L1 smart contracts, you will use op-deployer to generate two files necessary to run nodes on the L2 network:
- Genesis file (
genesis.json): Initializes the execution client (op-geth) - Rollup configuration file (
rollup.json): Configures the consensus client (op-node)
Start sequencing
To begin sequencing transactions and building blocks, you will then run an execution client and consensus client that come together as your sequencer node.
Begin batching transactions
Next you will run
op-batcher which will publish user transactions on Ethereum.Start proposing state roots
Then you will run
op-proposer to publish the L2 state root on Ethereum to enable withdrawals back to Ethereum.