Skip to main content

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.
1

Smart contract deployment

Using a CLI tool called op-deployer you will configure your chain and then deploy the smart contracts on Ethereum.
2

Validate your deployment

After deploying the L1 smart contracts you will use op-validator to verify that your deployment configurations match what you expect.
3

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)
These files contain all the essential information your services need to interact with Ethereum and the system contracts you deployed.
4

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.
5

Begin batching transactions

Next you will run op-batcher which will publish user transactions on Ethereum.
6

Start proposing state roots

Then you will run op-proposer to publish the L2 state root on Ethereum to enable withdrawals back to Ethereum.
7

Protect your chain

Finally you will run op-challenger to monitor and dispute any invalid L2 state roots that have been posted.

Next Steps

Of course there is a lot more work to do ensure you’re operating a highly available chain. Take a look at some of the chain operator best practices to get an idea of some of the things you’ll need to keep in mind.