-
Notifications
You must be signed in to change notification settings - Fork 260
Create Granite notice page skeleton #870
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
{ | ||
"fp-changes": "Preparing for Fault Proofs Breaking Changes", | ||
"fjord-changes": "Preparing for Fjord Breaking Changes" | ||
"granite-changes": "Preparing for Granite Breaking Changes", | ||
"fp-changes": "Preparing for Fault Proofs Breaking Changes" | ||
} |
This file was deleted.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,82 @@ | ||||||||||||||||||||||||||||||
--- | ||||||||||||||||||||||||||||||
title: Preparing for Granite Breaking Changes | ||||||||||||||||||||||||||||||
lang: en-US | ||||||||||||||||||||||||||||||
description: Learn how to prepare for Granite upgrade breaking changes. | ||||||||||||||||||||||||||||||
--- | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
import { Steps, Callout } from 'nextra/components' | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
# Preparing for Granite Breaking Changes | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
This page outlines breaking changes related to the Granite network upgrade for chain operators and node operators. | ||||||||||||||||||||||||||||||
If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Callout type="info"> | ||||||||||||||||||||||||||||||
The Granite upgrade for OP Sepolia was activated on **1723478400 - Mon Aug 12 16:00:00 UTC**. The Granite OP Mainnet upgrade will be optimistically activated **1726070401 - Tue 11 Sep 2024 16:00:01 UTC**, pending [governance approval](https://gov.optimism.io/t/upgrade-proposal-10-granite-network-upgrade/8733). | ||||||||||||||||||||||||||||||
</Callout> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
## What's Included in Granite | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
This upgrade is proposed in response to security vulnerabilities identified during a series of third-party security audits by Spearbit, Cantina, and Code4rena. None of the vulnerabilities have been exploited, and user assets are not and were never at risk. However, out of an abundance of caution, the permissioned fallback mechanism has been activated in order to avoid any potential instability while the vulnerabilities are patched. For more information on the permissioned fallback mechanism and the OP Stack's defense-in-depth approach to Fault Proof security, see the [fault proof documentation](https://docs.optimism.io/stack/protocol/fault-proofs/fp-security). | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
The upgrade includes both a set of smart contract upgrades to fix the vulnerabilities identified in the audit as well as an L2 hardfork to improve the stability and performance of the fault proof system. In addition, we propose extending the capabilities of the Guardian and DeputyGuardian to set the anchor state for the fault proof system in order to prevent referencing invalid anchor states. Aside from implementing these fixes, the primary impact of this upgrade would be to reset user withdrawals at the planned time, similar to the initial Fault Proof upgrade. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Please refer to the [governance proposal](https://gov.optimism.io/t/upgrade-proposal-10-granite-network-upgrade/8733) for the full details. | ||||||||||||||||||||||||||||||
Comment on lines
+18
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Improve conciseness and grammatical correctness. The section is informative but can be improved for conciseness and grammatical correctness. Apply this diff to improve the section: -This upgrade is proposed in response to security vulnerabilities identified during a series of third-party security audits by Spearbit, Cantina, and Code4rena. None of the vulnerabilities have been exploited, and user assets are not and were never at risk. However, out of an abundance of caution, the permissioned fallback mechanism has been activated in order to avoid any potential instability while the vulnerabilities are patched. For more information on the permissioned fallback mechanism and the OP Stack's defense-in-depth approach to Fault Proof security, see the [fault proof documentation](https://docs.optimism.io/stack/protocol/fault-proofs/fp-security).
+This upgrade is proposed in response to security vulnerabilities identified during third-party security audits by Spearbit, Cantina, and Code4rena. None of the vulnerabilities have been exploited, and user assets are not and were never at risk. However, out of an abundance of caution, the permissioned fallback mechanism has been activated to avoid any potential instability while the vulnerabilities are patched. For more information on the permissioned fallback mechanism and the OP Stack's defense-in-depth approach to Fault Proof security, see the [fault proof documentation](https://docs.optimism.io/stack/protocol/fault-proofs/fp-security).
-The upgrade includes both a set of smart contract upgrades to fix the vulnerabilities identified in the audit as well as an L2 hardfork to improve the stability and performance of the fault proof system. In addition, we propose extending the capabilities of the Guardian and DeputyGuardian to set the anchor state for the fault proof system in order to prevent referencing invalid anchor states. Aside from implementing these fixes, the primary impact of this upgrade would be to reset user withdrawals at the planned time, similar to the initial Fault Proof upgrade.
+The upgrade includes a set of smart contract upgrades to fix the vulnerabilities identified in the audit and an L2 hardfork to improve the stability and performance of the fault proof system. In addition, we propose extending the capabilities of the Guardian and DeputyGuardian to set the anchor state for the fault proof system to prevent referencing invalid anchor states. Aside from implementing these fixes, the primary impact of this upgrade would be to reset user withdrawals at the planned time, similar to the initial Fault Proof upgrade.
Please refer to the [governance proposal](https://gov.optimism.io/t/upgrade-proposal-10-granite-network-upgrade/8733) for the full details. Committable suggestion
Suggested change
ToolsLanguageTool
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
## For Chain Operators | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer for Granite. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Steps> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
### Prepare Sequencer Node | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Callout type="warning"> | ||||||||||||||||||||||||||||||
If you are operating an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes, and are using the [--network](/builders/node-operators/configuration/consensus-config#network) and [--op-network](/builders/node-operators/configuration/execution-config#op-network-betaop-network) flags. No action is needed for the sequencer after preparing the `SystemConfig` transaction. | ||||||||||||||||||||||||||||||
</Callout> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
For custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). You have two configuration options for your sequencer node: | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
* **Option 1:** Set the Granite activation date in your `rollup.json` config file. You will still need to set the `override.granite` flag in `op-geth` with the UNIX timestamp. | ||||||||||||||||||||||||||||||
* **Option 2:** Alternatively, chain operators can use the override flags to configure your sequencer node by specifying a time in the future when Granite will activate. | ||||||||||||||||||||||||||||||
* Set `override.granite` in both `op-node` and `op-geth` to the UNIX timestamp of the block you want to activate the Granite hardfork or corresponding env vars for this. | ||||||||||||||||||||||||||||||
* In general, run `op-node --help` or `op-geth --help` to see flags, their descriptions and environment variables. | ||||||||||||||||||||||||||||||
</Steps> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Callout type="info"> | ||||||||||||||||||||||||||||||
To verify proper configuration, chain operators should confirm in the startup logs of their `op-node` and `op-geth` that the correct Granite activation timestamps are set. | ||||||||||||||||||||||||||||||
</Callout> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
## For Node Operators | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Node operators will need to upgrade to Granite before the activation date. | ||||||||||||||||||||||||||||||
The op-node release [v1.9.1](https://github.com/ethereum-optimism/optimism/releases/tag/v1.9.1) | ||||||||||||||||||||||||||||||
and op-geth release [v1.101408.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101408.0) contain these changes. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
These following steps are necessary for every node operator: | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Steps> | ||||||||||||||||||||||||||||||
### Update to the Latest Release | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
* [`op-node`](https://github.com/ethereum-optimism/optimism/releases/tag/v1.9.1) | ||||||||||||||||||||||||||||||
* [`op-geth`](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101408.0) | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
### Configure the Granite Activation Date | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
<Callout type="warning"> | ||||||||||||||||||||||||||||||
If you are operating a node for an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to [Step 3: Verify Your Configuration](#verify-your-configuration). | ||||||||||||||||||||||||||||||
</Callout> | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
For node operators of custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). This can be done one of two ways: | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
* **Option 1:** Set the activation time in the `rollup.json` for `op-node`. You will still need to set the `override.granite` flag in `op-geth` if you use this option. | ||||||||||||||||||||||||||||||
* **Option 2:** Set the activation time via overrides (CLI) in both `op-node` and `op-geth`. These will need to be set on `op-node` and `op-geth` for the sequencer and all other nodes. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
### Verify Your Configuration | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Make the following checks to verify that your node is properly configured. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
* `op-node` and `op-geth` will log their configurations at startup | ||||||||||||||||||||||||||||||
* Check that the Granite time is set to `activation-timestamp` in the op-node startup logs | ||||||||||||||||||||||||||||||
* Check that the Granite time is set to `activation-timestamp` in the op-geth startup logs | ||||||||||||||||||||||||||||||
</Steps> | ||||||||||||||||||||||||||||||
Comment on lines
+26
to
+82
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Improve clarity and conciseness. The sections for chain operators and node operators are well-written but can be improved for clarity and conciseness. Apply this diff to improve the sections: -The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer for Granite.
+The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer.
<Steps>
- ### Prepare Sequencer Node
+ ### Prepare the Sequencer Node
<Callout type="warning">
- If you are operating an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes, and are using the [--network](/builders/node-operators/configuration/consensus-config#network) and [--op-network](/builders/node-operators/configuration/execution-config#op-network-betaop-network) flags. No action is needed for the sequencer after preparing the `SystemConfig` transaction.
+ If you are operating an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes, and you are using the [--network](/builders/node-operators/configuration/consensus-config#network) and [--op-network](/builders/node-operators/configuration/execution-config#op-network-betaop-network) flags. No action is needed for the sequencer after preparing the `SystemConfig` transaction.
</Callout>
- For custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). You have two configuration options for your sequencer node:
+ For custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). You have two configuration options:
* **Option 1:** Set the Granite activation date in your `rollup.json` config file. You will still need to set the `override.granite` flag in `op-geth` with the UNIX timestamp.
* **Option 2:** Alternatively, chain operators can use the override flags to configure the sequencer node by specifying a time in the future when Granite will activate.
* Set `override.granite` in both `op-node` and `op-geth` to the UNIX timestamp of the block you want to activate the Granite hardfork or corresponding env vars for this.
* In general, run `op-node --help` or `op-geth --help` to see flags, their descriptions, and environment variables.
<Callout type="info">
- To verify proper configuration, chain operators should confirm in the startup logs of their `op-node` and `op-geth` that the correct Granite activation timestamps are set.
+ To verify proper configuration, chain operators should confirm in the startup logs of their `op-node` and `op-geth` that the correct Granite activation timestamps are set.
</Callout>
## For Node Operators
-Node operators will need to upgrade to Granite before the activation date.
+Node operators will need to upgrade to Granite before the activation date.
The op-node release [v1.9.1](https://github.com/ethereum-optimism/optimism/releases/tag/v1.9.1)
and op-geth release [v1.101408.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101408.0) contain these changes.
-These following steps are necessary for every node operator:
+The following steps are necessary for every node operator:
<Steps>
- ### Update to the Latest Release
+ ### Update to the Latest Releases
* [`op-node`](https://github.com/ethereum-optimism/optimism/releases/tag/v1.9.1)
* [`op-geth`](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101408.0)
- ### Configure the Granite Activation Date
+ ### Configure the Granite Activation Dates
<Callout type="warning">
- If you are operating a node for an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to [Step 3: Verify Your Configuration](#verify-your-configuration).
+ If you are operating a node for an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to [Step 3: Verify Your Configuration](#verify-your-configuration).
</Callout>
- For node operators of custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). This can be done one of two ways:
+ For node operators of custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). This can be done in one of two ways:
* **Option 1:** Set the activation time in the `rollup.json` for `op-node`. You will still need to set the `override.granite` flag in `op-geth` if you use this option.
* **Option 2:** Set the activation time via overrides (CLI) in both `op-node` and `op-geth`. These will need to be set on `op-node` and `op-geth` for the sequencer and all other nodes.
- ### Verify Your Configuration
+ ### Verify the Configuration
Make the following checks to verify that your node is properly configured.
* `op-node` and `op-geth` will log their configurations at startup
* Check that the Granite time is set to `activation
<!-- This is an auto-generated comment by CodeRabbit --> |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -83,7 +83,6 @@ Drand | |
Eigen | ||
ENABLEDEPRECATEDPERSONAL | ||
enabledeprecatedpersonal | ||
enablements | ||
enginekind | ||
Erigon | ||
erigon | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improve conciseness and clarity.
The introductory section is well-written but can be improved for conciseness and clarity.
Apply this diff to improve the section:
Committable suggestion