diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/builders/chain-operators/deploy/smart-contracts.mdx index 2eb101cd4..59d88e510 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/builders/chain-operators/deploy/smart-contracts.mdx @@ -9,9 +9,10 @@ import { Callout } from 'nextra/components' # OP Stack Smart Contract Deployment The following guide shows you how to deploy the OP Stack L1 smart contracts. -The primary development branch is `develop`. It contains the most up-to-date -software that remains backwards compatible with the latest experimental -network deployments. **Changes to the smart contracts are generally not considered backwards compatible.** +The primary development branch is `develop`, however **you should only deploy +official contract releases**. You can visit the see the [smart contract overview](/stack/smart-contracts#official-releases) +for the official release versions. Changes to the smart contracts are +generally not considered backwards compatible. Standard OP Stack chains should use governance approved and audited versions @@ -21,12 +22,15 @@ network deployments. **Changes to the smart contracts are generally not consider ## Deployment Configuration Deploying your OP Stack contracts requires creating a deployment configuration -JSON file. For the full set of options, you can see the [rollup configuration page](/builders/chain-operators/configuration/rollup). +JSON file. You will create a new deployment configuration file in the following +monorepo subdirectory: [packages/contracts-bedrock/deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config) +For the full set of deployment configuration options and their meanings, you +can see the [rollup deployment configuration page](/builders/chain-operators/configuration/rollup). ## Deployment Script The smart contracts are deployed using [foundry](https://github.com/foundry-rs) -and you can find the script's source code in the monorepo at +and you can find the script's source code in the monorepo at [packages/contracts-bedrock/scripts/deploy/Deploy.s.sol](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/scripts/deploy/Deploy.s.sol). ### State Diff @@ -69,7 +73,7 @@ DEPLOY_CONFIG_PATH= \ ``` ### Deploying a single contract -All functions for deploying a single contract are public, meaning that + All functions for deploying a single contract are public, meaning that the `--sig` argument to forge script can be used to target the deployment of a single contract. diff --git a/pages/builders/chain-operators/management/best-practices.mdx b/pages/builders/chain-operators/management/best-practices.mdx index bb63e031a..78bb4a339 100644 --- a/pages/builders/chain-operators/management/best-practices.mdx +++ b/pages/builders/chain-operators/management/best-practices.mdx @@ -35,6 +35,20 @@ and `op-geth` releases can be found [here](https://github.com/ethereum-optimism/ version. Since we cannot left-pad with zeroes, the geth major version is not padded. +### Keep Deployment Artifacts + +After deploying your contracts on Ethereum, you should keep a record of all the +deployment artifacts: + +* Contract release tag and commit hash +* Contract deployment configuration file. This is the JSON file you created +and passed to the deployment script when you deployed the contracts. +* Contract deployment directory with smart contract artifacts. This is +created in [packages/contracts-bedrock/deployments](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deployments) +* The rollup configuration file that you generated after the contract +deployment +* The genesis file that you generated after the contract deployment + ### Incremental Upgrade Rollouts When upgrading your nodes, take a staggered approach. This means deploying the