What’s included and when is it beginning? Read now!
This is a cross-post from the Ethereum.org announcement. It has been modified by the MyCrypto team to include additional information that we think is useful!
- Berlin is ready to be deployed!
- We’re moving fast: the first testnet to upgrade, Ropsten, is scheduled to upgrade on March 10th. Mainnet is scheduled for April 14th.
- If you are running an Ethereum node, you should upgrade it to a Berlin-compatible version ASAP for testnets and before April 7th for mainnet.
- See below for the list of Berlin-compatible client versions and details on the EIPs included in the upgrade.
After months and months of planning, Berlin is finally here! The upgrade, which follows the Istanbul and Muir Glacier upgrades, is scheduled to go live on the Ethereum mainnet at block 12 244 000. We expect this to happen around Wednesday, April 14, 2021, but because of block time variability, the exact date may change.
Prior to being deployed on mainnet, the upgrade will go live on the Ropsten, Goerli, and Rinkeby testnets. The entire release schedule is as follows:
- Ropsten: Block #9,812,189 — expected 10 Mar 2021
- Goerli: Block #4,460,644 — expected 17 Mar 2021
- Rinkeby: Block #8,290,928 — expected 24 Mar 2021
- Mainnet: Block #12,244,000 — expected 14 Apr 2021
Ethereum node operators should upgrade their nodes prior to the fork block on the networks they want to participate in. Due to block time variability, it is recommended to update several days before the expected date. See the section below for the appropriate client versions to upgrade to.
In order to be compatible with the Berlin upgrade, node operators will need to upgrade the client version that they run. The versions listed below for each client support Berlin across all Ethereum networks, both testnets and mainnet.
- go-ethereum (geth) 1.10.1 — Download
- OpenEthereum (f.k.a. Parity) 3.2.0 — Download
- Nethermind 1.10.31 — Download
- Besu 21.1.1 — Download
TurboGeth and EthereumJS will not have client releases ready for the first testnets, but will have a release prior to mainnet. We will update this post as their releases become availabe. Trinity is now deprecated and will not be supporting the Berlin upgrade.
What’s Coming To Berlin: The EIPs
The Berlin upgrade introduces the following EIPs to the Ethereum network. For an in-depth explanation on each, we recommend reading the Ethereum Cat Herders’ Berlin Upgrade Overview. Here’s a summary:
- Lowers the cost of the ModExp (0x00..05) precompile.
EIP-2929: Gas cost increases for state access opcodes
- Increases gas cost for SLOAD, *CALL, BALANCE, EXT* and SELFEDESTRUCT when used for the first time in a transaction.
- One reason transactions have a cost is to ensure the network remains available and usable and not full of spam. With today’s exorbitant gas prices, it’s hard to imagine things being “too cheap” but new research shows that a few of the core opcodes are indeed underpriced.
- By bringing the cost of these opcodes in line with the actual cost to a network participants, it reduces the likelihood that we see a repeat of the 2016 Shanghai DoS attacks.
EIP-2718: Typed Transaction Envelope
- Introduces a new transaction type that is an envelope to enable easier support for multiple transaction types.
- Currently all transactions are executed in the same manner: X ETH is sent to Y address with Z data and the sender pays a fee of GL*GP ETH based on that data. EIP-2718 gives all transactions a “type” — a category of sorts — so that transactions of one type can be handled one way and transactions of another type can be handled another way.
- This means that, in the future, fun features like someone else paying for your gas or multi-signature transactions can be added more easily—without creating complex compatibility issues with the default transaction type and with each other.
EIP-2930: Optional access lists
- Adds a transaction type which contains an access list, a list of addresses and storage keys that the transaction plans to access. This mitigates some of the gas cost increases introduced by EIP-2929.
EIP-1559 is NOT in this network upgrade and is slated for later this year.
- The highly anticipated EIP-1559 is not in this Berlin network upgrade.
- This is the one that’s been described as a mechanism to make gas fees more predictable by burning a portion of each TX fee, affecting transaction costs for users, income for miners, and inflation.
- It’s tentatively scheduled for the next network upgrade, London, which was originally slated for July but will likely come in Q3 or Q4 2021.
- To understand why this EIP is so highly anticipated, we recommend Eric Conner’s intro explainer, Vitalik’s recent post on the reasoning behind EIP-1559 and Trent Van Epps’ summary of the benefits, challenges, and misconceptions.
After Istanbul, we ran out of names for our planned network upgrades. It was suggested to use Devcon city names for upgrades, and we stuck with it! Berlin is where Devcon 0 took place, and the next upgrade will be called London, where Devcon 1 happened.
As an Ethereum user or Ether holder, is there anything I need to do?
⚠️ This is important to note, as it’s likely there will be scammers attempting to use this network upgrade as an opportunity to trick users into losing their crypto.
If you use MyCrypto, there’s nothing you need to do.
You should not need to do anything if you use another web wallet service like Metamask, an exchange (such as Coinbase, Kraken, or Binance), a mobile wallet service (such as Coinbase Wallet, Status.im, or Trust Wallet), or a hardware wallet (such as Ledger, Trezor, or KeepKey). If you are being told to take action for this upgrade, please verify that it’s from that service’s official communication channels.
As a node operator or miner, what do I need to do?
Download the latest version of your Ethereum client, as listed in the table above.
This is applicable to anyone running an ETH1 node, including those who are running validators for ETH2.
What happens if I am a miner or node operator and I do not participate in the upgrade?
If you are using an Ethereum client that is not updated to the latest version (listed above), your client will sync to the pre-fork blockchain once the upgrade occurs. You will be stuck on an incompatible chain following the old rules and you will be unable to send Ether or operate on the post-upgrade Ethereum network.
What is a network upgrade in Ethereum-land?
A network upgrade is a change to the underlying Ethereum protocol, creating new rules to improve the system. The decentralized nature of blockchain systems makes a network upgrade more difficult. Network upgrades in a blockchain require cooperation and communication with the community, as well as with the developers of the various Ethereum clients in order for the transition to go smoothly.
What happens during a network upgrade?
After the community comes to an agreement concerning which changes should be included in the upgrade, changes to the protocol are written into the various Ethereum clients, such as geth, Open Ethereum, Besu and Nethermind. The protocol changes are activated at a specific block number. Any nodes that have not been upgraded to the new ruleset will be abandoned on the old chain where the previous rules continue to exist.
A big thanks to the Ethereum community and to all Ethereum developers across all clients and platforms who came together to provide input, thoughts, and contribution for Berlin 😁🇩🇪
Now, onto London 🇬🇧!
This is an emergent and evolving highly technical space. If you choose to implement the recommendations in this post and continue to participate, you should make sure you understand how it impacts you. You should understand that there are risks involved including but not limited to risks like unexpected bugs. By choosing to implement these recommendations, you alone assume the risks of the consequences. This post and recommendations are not a sale of any kind, and do not create any warranties of any kind including but not limited to anything related to the Ethereum network, or the Ethereum clients referred to herein.