This repository was archived by the owner on Apr 6, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 335
Superchain upgrades #1533
Merged
Merged
Superchain upgrades #1533
Changes from 4 commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
faa2804
update the content
krofax 7e7ae34
updated the superchain upgrade docs
krofax 67fafd0
Auto-fix: Update breadcrumbs, spelling dictionary and other automated…
krofax 7348f22
add meta tags
krofax 3df7780
added meta tags
krofax 14835d8
Update pages/stack/interop/superchain-upgrades.mdx
krofax 781fbcc
Update pages/stack/interop/superchain-upgrades.mdx
krofax 110181a
Update pages/stack/interop/superchain-upgrades.mdx
krofax 1f3cbc5
remove statements
krofax 1813000
remove statement
krofax ea908ac
Auto-fix: Update breadcrumbs, spelling dictionary and other automated…
krofax f612639
replace statement removed by mistake
krofax 2944469
update text
krofax e66a16d
update a statement about halt
krofax a838710
move superchain upgrades to superchain section
krofax ebdbf9a
remove link from breadcrumbs
krofax 4e0348d
Auto-fix: Update breadcrumbs, spelling dictionary and other automated…
krofax File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| --- | ||
| title: Superchain upgrades | ||
| lang: en-US | ||
| description: Learn the superchain upgrades. | ||
| --- | ||
|
|
||
| import { Callout, Tabs, Steps } from 'nextra/components' | ||
| import { InteropCallout } from '@/components/WipCallout' | ||
|
|
||
| # Superchain upgrades | ||
|
|
||
| The Superchain architecture is designed to implement coordinated, consensus-breaking changes—commonly known as hardforks—across all chains in the Superchain. | ||
| This document provides a high-level overview of the key components and processes involved in executing these upgrades. | ||
|
|
||
| ## Superchain target | ||
|
|
||
| In the context of Superchain upgrades, the **[Superchain target](https://specs.optimism.io/protocol/superchain-upgrades.html#superchain-target)** refers to a set of upgrade parameters that multiple chains in the Superchain should adhere to, enabling synchronized network upgrades. | ||
| By aligning with a common Superchain Target, chains can implement consensus-breaking changes simultaneously, maintaining compatibility and coherence across the Superchain ecosystem. | ||
| This approach streamlines the upgrade process and reduces fragmentation within the superchain. | ||
|
krofax marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## ProtocolVersion L1 smart contract | ||
|
|
||
| The **[ProtocolVersion](https://specs.optimism.io/protocol/superchain-upgrades.html#protocolversions-l1-contract)** L1 smart contract serves as an on-chain registry that records the protocol versions supported by various chains within the Superchain. | ||
| It provides a standardized mechanism for chains to signal their current protocol version, facilitating coordination and compatibility checks among different chains. | ||
| This contract is instrumental in managing and tracking the progression of protocol versions across the Superchain. | ||
|
|
||
| ## Superchain version signaling | ||
|
|
||
|
krofax marked this conversation as resolved.
|
||
| **[Superchain version signaling](https://specs.optimism.io/protocol/superchain-upgrades.html#superchain-version-signaling)** is a mechanism that allows nodes and clients to be aware of and prepare for upcoming protocol changes. | ||
| This signaling is achieved through the **ProtocolVersion smart contract**, allowing chains to indicate their readiness for upcoming upgrades and ensuring that all participating chains are synchronized. | ||
| Through this signaling: | ||
| * Nodes can anticipate and implement necessary adjustments ahead of time. | ||
| * Clients are informed about the protocol version they should be compatible with, ensuring seamless interactions across the Superchain. | ||
|
|
||
| ## Activation rules | ||
|
|
||
| **[Activation rules](https://specs.optimism.io/protocol/superchain-upgrades.html#activation-rules)** define the conditions under which a network upgrade or hardfork becomes active within the Superchain. | ||
| These rules can be based on specific block numbers or timestamps, dictating when the new protocol changes take effect. | ||
|
krofax marked this conversation as resolved.
Outdated
|
||
|
|
||
| * **Block Height Activation:** The upgrade activates at a predetermined block number. | ||
|
krofax marked this conversation as resolved.
|
||
| * **Time-Based Activation:** The upgrade becomes effective at a specific timestamp. | ||
| * **Conditional Activation:** Activation contingent upon certain network conditions or stakeholder approvals. | ||
|
krofax marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## `rollup.halt` Flags on Node Binaries | ||
|
|
||
| The [`rollup.halt`](/operators/node-operators/configuration/execution-config#rolluphalt) flag is an opt-in configuration option available in both the execution and consensus layer node binaries. | ||
| Its primary function is to temporarily halt node activities, during the transition phase of an upgrade, if or when it encounters an incompatible or unsupported protocol version requirement. | ||
|
|
||
| * Execution layer configuration: In the execution layer *(op-geth)*, the [`--rollup.halt`](/operators/node-operators/configuration/execution-config#rolluphalt)` flag can be set to specify the level of incompatibility (major, minor, patch, none) that will trigger a halt. This ensures that nodes do not process transactions under unsupported protocol versions. | ||
|
krofax marked this conversation as resolved.
Outdated
|
||
| * Consensus layer configuration: Similarly, in the consensus layer *(op-node)*, the [`--rollup.halt`](/operators/node-operators/configuration/consensus-config#rolluphalt) flag serves the same purpose, allowing nodes to halt when encountering incompatible protocol versions. | ||
|
|
||
| <Callout type="warning"> | ||
| Improper use of the `rollup.halt` flag can lead to node downtime or desynchronization. | ||
|
krofax marked this conversation as resolved.
Outdated
|
||
| Ensure you understand its implications before applying it to your node configuration. | ||
| </Callout> | ||
|
|
||
| ## Conclusion | ||
|
|
||
| Coordinated upgrades within the Superchain are essential for maintaining network integrity and performance. | ||
| By understanding and implementing all the components mentioned in this guide, network participants can ensure smooth transitions during protocol upgrades. | ||
| For comprehensive guidelines and technical specifications, refer to the [Superchain upgrades spec](https://specs.optimism.io/protocol/superchain-upgrades.html). | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -91,6 +91,7 @@ DATACAP | |
| datacap | ||
| DATADIR | ||
| datadir | ||
| desynchronization | ||
| Devnet | ||
| devnet | ||
| Devnets | ||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.