TL;DR
- Berlin is ready to be deployed!
- We are moving fast: the first testnet to upgrade, Ropsten, is scheduled to upgrade on March 10. Mainnet is scheduled for April 15.
- If you’re running an Ethereum node, you should upgrade to a Berlin-compatible version as soon as possible for testnets and by April 7 for mainnets.
- See below for the list of supported client versions for Berlin and details about the EIPs included in the update.
- Besu’s client has reported a bug at its previous launch in Berlin. Besu users should update to version 21.1.2.
Berlin time
After months and months of planning, Berlin is finally here! The update, which follows the Istanbul Y muir glacier updates, is scheduled to go live on the Ethereum mainnet at block 12,244,000. We expect this to happen around Wednesday, April 15, 2021, but due to block time variability, the exact date may change.
Before rolling out to the mainnet, the update will go live on the Ropsten, Goerli and Rinkeby testnets. The full release schedule is as follows:
Grid | block number | Expected date |
---|---|---|
rockrock | 9 812 189 | March 10, 2021 |
Goerly | 4 460 644 | March 17, 2021 |
rinkebby | 8 290 928 | March 24, 2021 |
main network | 12,244,000 | 15 Apr 2021 |
Ethereum node operators must upgrade their nodes prior to the fork block on the networks they wish to participate in. Due to the variability of the blocking time, it is recommended to update several days before the expected date. See the section below for the appropriate client versions to upgrade to.
client versions
To be compatible with the Berlin update, node operators will need to update the version of the client they are running. The versions, listed below for each client, are supported by Berlin throughout all Ethereum networks, both testnets and mainnets.
Please note that the Besu team has reported a bug in their version 21.1.1 related to Berlin (Link). Besu users must update to version 21.1.2 to remain compatible with Berlin. Also, TurboGeth will not have a client version ready for the first testnets, but will have a version prior to the mainnet. We will update this post as its release becomes available. Trinity is now deprecated and will not support the Berlin update.
Berlin EIP
The Berlin update introduces the following EIPs to the Ethereum network:
For more information on each EIP, see Ethereum Cat Herder’s Berlin Summary Post.
Frequently asked questions
Why “Berlin”?
After Istanbul, we are running out of names for our planned network upgrades. It was suggested to use Devcon city names for updates., and we are left with that! berlin is where Devcon 0 took place, and the next update will be called London, where Devcon 1 happened.
As an Ethereum user or Ether holder, do I need to do anything?
If you use an exchange (like Coinbase, Kraken, or Binance), a web wallet service (like Metamask, MyCrypto, or MyEtherWallet), a mobile wallet service (like Coinbase Wallet, Status.im, or Trust Wallet), or a hardware wallet (such as Ledger, Trezor, or KeepKey), you don’t need to do anything unless your exchange or wallet service tells you to take further steps.
As a miner or node operator, what should I do?
Download the latest version of your Ethereum client, as indicated in the table above.
What happens if I am a miner or node operator and I don’t participate in the upgrade?
If you are using an Ethereum client that is not updated to the latest version (mentioned above), your client will sync with the pre-fork blockchain once the update occurs. You will be stuck in an incompatible chain following the above rules and will not be able to send Ether or trade on the Ethereum network post-update.
What is a network upgrade in Ethereum-land?
A network upgrade is a change to the underlying Ethereum protocol, which creates new rules to improve the system. The decentralized nature of blockchain systems makes upgrading the network more difficult. Network upgrades on a blockchain require cooperation and communication with the community as well as the developers of the various Ethereum clients in order for the transition to go smoothly.
What happens during a network update?
Once the community agrees on what changes should be included in the update, the protocol changes are written to the various Ethereum clients such as geth, Open Ethereum, Besu, and Nethermind. Protocol changes are triggered on a specific block number. Any nodes that have not updated to the new rule set will be left in the old chain where the old rules will still exist.
Thanks!
A big thank you to the Ethereum community and all Ethereum developers across all clients and platforms who came together to provide input, thoughts and contributions for Berlin 😁🇩🇪
Now to London 🇬🇧!
Disclaimer
It is an emerging and highly technical evolving space. If you choose to implement the recommendations in this post and continue to participate, you should make sure you understand how it affects you. You should understand that there are risks involved, including, but not limited to, risks such as unexpected errors. By choosing to implement these recommendations, you alone assume the risks of the consequences. This publication and recommendations are not a sale of any kind and do not create any warranty of any kind, including but not limited to anything related to the Ethereum network or the Ethereum clients referenced in this document.