Optimism Bedrock Testnet Migration Guide (2023)
Optimism is a layer 2 blockchain that uses optimistic rollups to help Ethereum scale. Optimism is undergoing a network upgrade to Optimism Bedrock, which introduces a series of performance improvements from its existing rollup architecture design.
This article explains Optimism Bedrock, how it works, and what developers can expect when Optimism upgrades their Goerli testnet on Thursday, January 12th at approximately 10 AM PT, and when the mainnet is planned for upgrade in the weeks to follow.
What is Optimism Bedrock?
Optimism Bedrock is a network-wide upgrade for Optimism nodes that is designed to be the cheapest, fastest, and most advanced rollup architecture available, with support for multiple fault-proof and client implementations.
What improvements does Optimism Bedrock offer?
Optimism Bedrock is expected to bring a number of improvements to the Optimism mainnet. Some of the main changes and improvements that have been mentioned include:
1. Faster Deposit Transactions
Optimism Bedrock will significantly reduce the time required for deposit transactions to 2.5 minutes due to a smaller confirmation depth of 10-12 L1 blocks. This reduces the currently estimated deposit time which is roughly 10 minutes.
2. Lower Gas Fees
Optimism Bedrock introduces new changes to lower gas fees. Optimism Bedrock’s projected transaction fee reduction (20%) is a result of calldata compression and sending transactions to Ethereum using a “non-contract address,.” Besides lowering gas fees, Optimism will also mirror Ethereum’s gas fee design by Supporting EIP-1559.
3. More Predictable Block Production
Optimism Bedrock is expected to produce blocks every two seconds, compared to the current block production rate of 1 block per transaction, the same way Ethereum uses fixed block times.
4. Ethereum Equivalence
Ethereum Equivalence means Optimism Bedrock is designed to be the most seamless rollup possible by dovetailing all of Ethereum's “code, infrastructure, and design patterns,” into the design of Bedrock.
For example, some Ethereum Equivalents in Bedrock include:
- A lightweight shim on top of Ethereum’s Geth client
- Separation between Execution Layer (EL) and Consensus Layer (CL) clients
- Ability to rapidly develop and support multiple node clients (e.g. Erigon)
- EIP-1559 support for Optimism’s L2 execution fee
- A private mempool to be used by Optimism’s sequencer to process pending transactions
What is the Optimism Bedrock migration timeline?
The Optimism Bedrock upgrade involves several steps:
- First, deposits and withdrawals will be paused on the legacy network
- The legacy sequencer will start rejecting transactions
- Then, the smart contracts on L1 will be upgraded and an irregular state transition will be performed on L2
- Next, the Bedrock sequencer will be started up.
- Finally, deposits and withdrawals will be re-enabled.
The upgrade is expected to result in significantly reduced transaction fees, faster node synchronization, and improved block production. It is not expected to affect everyday users of Optimism, but a mainnet upgrade proposal will be submitted to the Token House for approval after a successful testnet migration.
During both the testnet and mainnet upgrades there will be some downtime from infrastructure providers to upgrade nodes, however transaction history will be maintained.
How should Optimism dapp developers prepare for the Bedrock migration?
During a network-wide migration, developers should:
1. Plan for Downtime
Deposits, withdrawals, and transactions in general will be paused during the upgrade process. Developers should plan for this downtime and ensure that their applications can handle it.
2. Confirm your Dapp Works on the New Bedrock Goerli Testnet
The Bedrock upgrade will introduce some changes to the way that transactions are processed, including the use of address aliasing for contract deposits. Developers should familiarize themselves with these network-wide changes and ensure that their applications are compatible once the Opt-Goerli testnet is upgraded to Bedrock.
By testing applications on the Bedrock Goerli testnet, developers can ensure their applications will operate as designed when the Optimism Mainnet is upgraded to Bedrock in February.
3. Identify Product Improvements Afforded by Bedrock
The Bedrock upgrade is expected to significantly reduce transaction fees and improve the speed of the network. The upgrade may also introduce new features and capabilities that developers can leverage in their applications.
The Optimism team created upgrade guides based on application type, which explains the expected impact Bedrock will have on each product type including wallets, frontend/backend engineers, infrastructure providers like Alchemy, and bridge developers.
Optimism Bedrock FAQs
Here are the most frequently asked questions about the Optimism Bedrock upgrade.
How do I upgrade to Bedrock?
If you’re an application developer, there is nothing you need to upgrade. If you are an infrastructure provider, or if you run your own Optimism nodes, follow the Bedrock documentation instructions for infrastructure companies.
If I use Alchemy, do I need to do anything to support Optimism Bedrock?
No, if you use Alchemy's Optimism RPC endpoint there is nothing you need to do during the Optimism Bedrock upgrade. Our team of infrastructure specialists will be managing both the testnet upgrade and mainnet upgrades for you.
There will be a 1-hour service pause on Thursday, January 12th, 2023 where the Optimism Goerli testnet will not be able to accept transactions for roughly one hour beginning at 10:00 AM PT while the Optimism team performs the upgrade. To follow along with the network upgrade, visit the Optimism Status page.
Alchemy’s JSON-RPC endpoints for Optimism Goerli will remain the same after the upgrade. You can find the full details on the chain-level changes in Optimism’s Bedrock documentation.
Can I continue to use my existing smart contracts after the Bedrock upgrade?
Some JSON-RPC calls will be deprecated during the Bedrock upgrade including: eth_getBlockRange and rollup_gasPrices. Instead, Optimism developers are encouraged to use eth_getBlockByNumber and eth_gasPrice instead. Lastly, rollup_getInfo will no longer return information on Bedrock.
If your Optimism dapps don’t use the aforementioned JSON-RPC calls, your existing smart contracts and applications should continue to work as normal after the Bedrock upgrade. Before Optimism upgrades their main network, it is always best to validate dapp functionality on the Bedrock Goerli testnet.