Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create OP Stack comparison matrix #1272

Merged
merged 25 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pages/stack/_meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"getting-started": "Getting started: OP Stack",
"fact-sheet": "Fact sheet",
"differences": "Differences between Ethereum and OP Stack chains",
"design-principles": "Design philosophy & principles",
"components": "OP Stack components",
Expand Down
32 changes: 32 additions & 0 deletions pages/stack/fact-sheet.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: OP Stack Fact Sheet
lang: en-US
description: Get an overview of features associated with an OP Stack chain
---

# Overview

Get an overview of the capabilities associated with an OP Stack chain.

While the OP Stack allows for full customization, chains in the Superchain adhere to a [standard set of technical and governance parameters](/superchain/blockspace-charter), facilitating Superchain interoperability, network security, and ease of upgrading your chain.

# Technical stack

| Feature | Superchain | OP Stack |
| --------------------------------- | ----------------------------- | --------------------------- |
| **Parent chain** | Ethereum | Any L1, any L2 |
| **Throughput<sup>1</sup>** | 22Mgas/s | 50Mgas/s |
| **Gas limit<sup>2</sup>** | 200M | 200M |
| **Blocktimes<sup>3</sup>** | 250ms | 250ms |
| **Data availability support** | Ethereum | Ethereum, Celestia, EigenDA |
| **Gas token support<sup>4</sup>** | ETH | ETH |
| **Upgrades** | Facilitated via OP Governance | Self-managed |
| **EVM compatibility** | Equivalent | Variable |

<sup>1</sup>Data for Superchain from [Base](https://etherscan.io/address/0x73a79Fab69143498Ed3712e519A88a918e1f4072#readProxyContract#F14). Data for OP Stack from [opBNB](https://docs.bnbchain.org/bnb-opbnb/core-concepts/opbnb-metrics/).

<sup>2</sup>The standard blockspace charter has a max gas limit of [200m](https://specs.optimism.io/protocol/configurability.html#gas-limit). Both gas limit and gas target can be configured through the system config.

<sup>3</sup>While protocol blocktimes can be lowered to 1 second, subsecond blocktimes can be achieved using [Rollup Boost and Flashblocks](https://writings.flashbots.net/introducing-rollup-boost).

<sup>4</sup>Although ETH is the gas token, chain operators can achieve the same UX of a custom gas token by using an ERC-20 paymaster.
29 changes: 15 additions & 14 deletions pages/stack/interop/op-supervisor.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ import { InteropCallout } from '@/components/WipCallout'

# OP-Supervisor

OP-Supervisor is a service that verifies cross-chain messages and manages interoperability between chains in the OP Stack.
OP-Supervisor is a service that verifies cross-chain messages and manages interoperability between chains in the OP Stack.
The main information it contains about other blockchains is:
- Log entries, which could be [initiating messages](./explainer#how-messages-get-from-one-chain-to-the-other) for cross-domain messages.
- Blockchain heads, which are the latest blocks at various levels of confidence and safety:
- Unsafe (the latest block available through the gossip protocol)
- Local-safe (the latest block written to L1)
- Cross-safe (the latest block written to L1, and for which all the dependencies are written to L1)
- Finalized (the latest block written to L1, and that L1 block is safe from reorgs)

* Log entries, which could be [initiating messages](./explainer#how-messages-get-from-one-chain-to-the-other) for cross-domain messages.
* Blockchain heads, which are the latest blocks at various levels of confidence and safety:
* Unsafe (the latest block available through the gossip protocol)
* Local-safe (the latest block written to L1)
* Cross-safe (the latest block written to L1, and for which all the dependencies are written to L1)
* Finalized (the latest block written to L1, and that L1 block is safe from reorgs)

```mermaid

Expand Down Expand Up @@ -51,14 +52,14 @@ To do this, OP-Supervisor has to have RPC access to all the chains in the depend

## How other components use OP-Supervisor

- The execution client (typically `op-geth`) queries `op-supervisor` during block-building to verify if a message is sufficiently safe to include.
To do this, the execution client looks at every executing message and queries `op-supervisor` to see if there is a corresponding initiating message.
* The execution client (typically `op-geth`) queries `op-supervisor` during block-building to verify if a message is sufficiently safe to include.
To do this, the execution client looks at every executing message and queries `op-supervisor` to see if there is a corresponding initiating message.

- `op-node` queries cross-chain safety information and coordinates safety updates between OP stack nodes and `op-supervisor`. It uses the API provided by `op-supervisor` to:
- Retrieve the unsafe, local-safe, cross-safe, and finalized heads for other chains.
- Update the unsafe, local-safe, and finalized heads for its own chain.
- Attempt to promote blocks in its own chain to cross-safe status.
- Attempt to finalize L2 blocks based on L1 finality.
* `op-node` queries cross-chain safety information and coordinates safety updates between OP stack nodes and `op-supervisor`. It uses the API provided by `op-supervisor` to:
* Retrieve the unsafe, local-safe, cross-safe, and finalized heads for other chains.
* Update the unsafe, local-safe, and finalized heads for its own chain.
* Attempt to promote blocks in its own chain to cross-safe status.
* Attempt to finalize L2 blocks based on L1 finality.

### API

Expand Down
26 changes: 10 additions & 16 deletions words.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
accountqueue
ACCOUNTQUEUE
accountqueue
ACCOUNTSLOTS
accountslots
ADDI
Expand All @@ -15,7 +15,6 @@ Alphanets
alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
Expand All @@ -34,15 +33,17 @@ blobspace
Blockdaemon
Blockdaemon's
blockhash
BLOCKLOGS
blocklists
BLOCKLOGS
blocklogs
BLOCKPROFILERATE
blockprofilerate
Blockscout
Blockspace
blockspace
blocktime
Blocktimes
blocktimes
BLOOMFILTER
bloomfilter
BLTZ
Expand Down Expand Up @@ -85,6 +86,7 @@ DATADIR
datadir
Devnet
devnet
Devnets
devnets
devx
direnv
Expand Down Expand Up @@ -120,6 +122,7 @@ Faultproof
FDLIMIT
fdlimit
featureset
Flashblocks
Flashbots
forkable
forkchoice
Expand Down Expand Up @@ -156,13 +159,11 @@ holesky
IERC
IGNOREPRICE
ignoreprice
Immunefi
implicity
Inator
inator
INFLUXDBV
influxdbv
intiating
IPCDISABLE
ipcdisable
ipcfile
Expand All @@ -176,7 +177,6 @@ JSPATH
jspath
jwtsecret
Keccak
Learn
leveldb
lightkdf
logfile
Expand All @@ -195,9 +195,9 @@ MEMPROFILERATE
memprofilerate
Merkle
merkle
mesage
MFHI
MFLO
Mgas
Minato
MINFREEDISK
minfreedisk
Expand All @@ -206,7 +206,6 @@ minsuggestedpriorityfee
Mintable
Mintplex
MIPSEVM
Mitigations
Monitorism
monitorism
Moralis
Expand Down Expand Up @@ -275,7 +274,6 @@ PPROF
pprof
Precommitments
precommitments
Preconfigured
preconfigured
predeploy
Predeployed
Expand Down Expand Up @@ -304,8 +302,6 @@ providng
Proxied
Proxyd
proxyd
Pyth
Pyth's
QRNG
Quicknode
quicknode
Expand Down Expand Up @@ -337,9 +333,6 @@ runbooks
RWAs
safedb
Schnorr
SEPOLIA
Sepolia
sepolia
seqnr
SEQUENCERHTTP
sequencerhttp
Expand All @@ -365,6 +358,7 @@ statefulset
subcomponents
subgame
subheaders
subsecond
SUBU
Sunnyside
SUPERCHAIN
Expand Down Expand Up @@ -411,15 +405,15 @@ vhosts
Viem
viem
Viem's
viem's
VMDEBUG
vmdebug
VMODULE
vmodule
voxel
xlarge
XORI
xtensibility
ZKPs
ZKVM
Zora
zora
zora