|
| 1 | +--- |
| 2 | +title: Preparing for Granite Breaking Changes |
| 3 | +lang: en-US |
| 4 | +description: Learn how to prepare for Granite upgrade breaking changes. |
| 5 | +--- |
| 6 | + |
| 7 | +import { Steps, Callout } from 'nextra/components' |
| 8 | + |
| 9 | +# Preparing for Granite Breaking Changes |
| 10 | + |
| 11 | +This page outlines breaking changes related to the Granite network upgrade for wallets and front-end developers, chain operators, and node operators. |
| 12 | +If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). |
| 13 | + |
| 14 | +<Callout type="info"> |
| 15 | + The Granite upgrade for OP Sepolia was activated on **[DATE]**. The Granite OP Mainnet upgrade will be optimistically activated **[DATE]*, pending [governance approval](https://gov.optimism.io/t/upgrade-proposal-10-granite-network-upgrade/8733). |
| 16 | +</Callout> |
| 17 | + |
| 18 | +## What's Included in Granite |
| 19 | + |
| 20 | +The Granite network upgrade includes the following: |
| 21 | + |
| 22 | +* |
| 23 | + |
| 24 | +## For Wallets and Front-End Developers |
| 25 | + |
| 26 | +The proposed Granite upgrade to the OP Stack and OP Mainnet changes |
| 27 | + |
| 28 | +* |
| 29 | +* |
| 30 | + |
| 31 | + |
| 32 | +### Preparing Your Wallet or Front-End |
| 33 | + |
| 34 | +* |
| 35 | +* |
| 36 | + |
| 37 | +## For Chain Operators |
| 38 | + |
| 39 | +The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer for Granite. |
| 40 | + |
| 41 | +* |
| 42 | +* |
| 43 | + |
| 44 | + |
| 45 | +<Steps> |
| 46 | + |
| 47 | + ### Prepare Sequencer Node |
| 48 | + |
| 49 | + <Callout type="warning"> |
| 50 | + 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. |
| 51 | + </Callout> |
| 52 | + |
| 53 | + 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: |
| 54 | + |
| 55 | + * **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. |
| 56 | + * **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. |
| 57 | + * 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. |
| 58 | + * In general, run `op-node --help` or `op-geth --help` to see flags, their descriptions and environment variables. |
| 59 | +</Steps> |
| 60 | + |
| 61 | +<Callout type="info"> |
| 62 | + 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. |
| 63 | +</Callout> |
| 64 | + |
| 65 | +## For Node Operators |
| 66 | + |
| 67 | +Node operators will need to upgrade to Granite before the activation date. For Sepolia, the op-node release [FIND CORRECT VERSION](https://github.com/ethereum-optimism/optimism/releases/tag/v1.7.7) and op-geth release [FIND CORRECT VERSION](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101315.2) contain these changes. |
| 68 | + |
| 69 | +These following steps are necessary for every node operator: |
| 70 | + |
| 71 | +<Steps> |
| 72 | + ### Update to the Latest Release |
| 73 | + |
| 74 | + * [`op-geth`](FIND_CORRECT_LINK) |
| 75 | + * [`op-node`](FIND_CORRECT_LINK) |
| 76 | + |
| 77 | + ### Configure the Granite Activation Date |
| 78 | + |
| 79 | + <Callout type="warning"> |
| 80 | + 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). |
| 81 | + </Callout> |
| 82 | + |
| 83 | + 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: |
| 84 | + |
| 85 | + * **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. |
| 86 | + * **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. |
| 87 | + |
| 88 | + ### Verify Your Configuration |
| 89 | + |
| 90 | + Make the following checks to verify that your node is properly configured. |
| 91 | + |
| 92 | + * `op-node` and `op-geth` will log their configurations at startup |
| 93 | + * Check that the Granite time is set to `activation-timestamp` in the op-node startup logs |
| 94 | + * Check that the Granite time is set to `activation-timestamp` in the op-geth startup logs |
| 95 | +</Steps> |
0 commit comments