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 all 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.
10 changes: 7 additions & 3 deletions pages/stack/interop.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,17 @@ Documentation covering Cross Chain Message, Explainer, Message Passing, Op Super

<Card title="Supersim multichain development environment" href="/stack/interop/tools/supersim" />

<Card title="Cross domain assets" href="/stack/interop/assets" />

<Card title="Interop devnet" href="/stack/interop/tools/devnet" />

<Card title="Interoperability predeploys" href="/stack/interop/predeploy" />

<Card title="Cross-chain security" href="/stack/interop/security" />

<Card title="Interop assets" href="/stack/interop/tools" />
<Card title="Interop assets" href="/stack/interop/tools" />

<Card title="SuperchainERC20" href="/stack/interop/superchain-erc20" />

<Card title="SuperchainWETH (Interoperable ETH)" href="/stack/interop/superchain-weth" />

<Card title="Tutorials" href="/stack/interop/tutorials" />
</Cards>
2 changes: 1 addition & 1 deletion pages/stack/interop/explainer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ Each blockchain in the Superchain interop cluster shares the same security model
Superchain interop includes both the protocol layer message passing and the Superchain ERC20 token specification.
* **Message passing protocol:** the initial + finalizing/executing [message](cross-chain-message) that fire events to be consumed by the chains in the [dependency set](https://specs.optimism.io/interop/dependency-set.html)
* ****: the [SuperchainERC20](superchain-erc20) turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/stack/interop/assets/superchain-erc20)
* ****: the [SuperchainERC20](superchain-erc20) turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/stack/interop/superchain-erc20)
This means ETH and ERC-20s can seamlessly and securely move across L2s, and intent-based protocols (i.e., bridges) can build better experiences on top of the message passing protocol.
*/}
Expand Down
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
4 changes: 2 additions & 2 deletions pages/stack/interop/superchain-erc20.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Application developers must do two things to make their tokens `SuperchainERC20`

For now, application developers should view `SuperchainERC20`as ERC20 tokens with additional built-in functions that allow cross-chain asset movement that will be enabled once Interop goes live.

For step-by-step information on implementing SuperchainERC20, see [Deploy assets using SuperchainERC20](/stack/interop/assets/deploy-superchain-erc20)
For step-by-step information on implementing SuperchainERC20, see [Deploy assets using SuperchainERC20](/stack/interop/tutorials/deploy-superchain-erc20)

<Callout type="warning">
To enable asset interoperability, `SuperchainERC20` must give access to the address where the future `SuperchainERC20Bridge` will live.
Expand All @@ -96,4 +96,4 @@ For step-by-step information on implementing SuperchainERC20, see [Deploy assets
* Watch the [ERC20 to SuperchainERC20 video walkthrough](https://www.youtube.com/watch?v=Gb8glkyBdBA) to learn how to modify an existing ERC20 contract to make it interoperable within the Superchain.
* Explore the [SuperchainERC20 specifications](https://specs.optimism.io/interop/token-bridging.html) for in-depth implementation details.
* Check out the [SuperchainERC20 starter kit](https://github.com/ethereum-optimism/superchainerc20-starter) to get started with implementation.
* Review the [Deploy SuperchainERC20 tutorial](./tutorials/deploy-superchain-erc20) to learn how to deploy a SuperchainERC20.
* Review the [Deploy SuperchainERC20 tutorial](/stack/interop/tutorials/deploy-superchain-erc20) to learn how to deploy a SuperchainERC20.
2 changes: 1 addition & 1 deletion pages/stack/interop/tools.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Assets
title: Tools
description: Documentation covering Interop devnet, Supersim in the Interop section of the OP Stack ecosystem.
lang: en-US
---
Expand Down
18 changes: 18 additions & 0 deletions pages/stack/interop/tutorials.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Tutorials
description: Documentation covering Interop related tutorials.
lang: en-US
---

import { Card, Cards } from 'nextra/components'

# Interop

Documentation covering Interop related tutorials.

<Cards>
<Card title="Deploy SuperchainERC20" href="/stack/interop/tutorials/deploy-superchain-erc20" />

<Card title="Transfer SuperchainERC20" href="/stack/interop/tutorials/transfer-superchainERC20" />

</Cards>
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { Steps } from 'nextra/components'
Interop is currently in active development and not yet ready for production use. The information provided here may change. Check back regularly for the most up-to-date information.
</Callout>

This guide explains how to issue new assets with the `SuperchainERC20` and bridge them effectively using the `SuperchainERC20Bridge`. If you want more information about the `SuperchainERC20 standard`, see our [`SuperchainERC20` standard explainer](/stack/interop/assets/superchain-erc20)
This guide explains how to issue new assets with the `SuperchainERC20` and bridge them effectively using the `SuperchainERC20Bridge`. If you want more information about the `SuperchainERC20 standard`, see our [`SuperchainERC20` standard explainer](/stack/interop/superchain-erc20)

Note that bridging assets through the Superchain using `SuperchainERC20` never affects the total supply of your asset. The supply remains fixed, and bridging only changes the chain on which your asset is located. This keeps the token's total amount the same across all networks, ensuring its value stays stable during the move and that the `SuperchainERC20` retains a unified, global supply count.

Expand Down
18 changes: 11 additions & 7 deletions words.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
accountqueue
ACCOUNTQUEUE
accountqueue
ACCOUNTSLOTS
accountslots
ADDI
Expand Down Expand Up @@ -34,15 +34,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 +87,7 @@ DATADIR
datadir
Devnet
devnet
Devnets
devnets
devx
direnv
Expand Down Expand Up @@ -120,6 +123,7 @@ Faultproof
FDLIMIT
fdlimit
featureset
Flashblocks
Flashbots
forkable
forkchoice
Expand Down Expand Up @@ -162,7 +166,6 @@ Inator
inator
INFLUXDBV
influxdbv
intiating
IPCDISABLE
ipcdisable
ipcfile
Expand All @@ -176,7 +179,6 @@ JSPATH
jspath
jwtsecret
Keccak
Learn
leveldb
lightkdf
logfile
Expand All @@ -195,9 +197,9 @@ MEMPROFILERATE
memprofilerate
Merkle
merkle
mesage
MFHI
MFLO
Mgas
Minato
MINFREEDISK
minfreedisk
Expand Down Expand Up @@ -275,8 +277,8 @@ PPROF
pprof
Precommitments
precommitments
Preconfigured
preconfigured
Preconfigured
predeploy
Predeployed
predeployed
Expand Down Expand Up @@ -365,6 +367,7 @@ statefulset
subcomponents
subgame
subheaders
subsecond
SUBU
Sunnyside
SUPERCHAIN
Expand Down Expand Up @@ -411,6 +414,7 @@ vhosts
Viem
viem
Viem's
viem's
VMDEBUG
vmdebug
VMODULE
Expand All @@ -422,4 +426,4 @@ xtensibility
ZKPs
ZKVM
Zora
zora
zora