900_383___2.png

Written by Tim Beiko

TL;DR

  • 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.

Berlin Timing

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:

Network Block Number Expected Date
Ropsten 9 812 189 10 Mar 2021
Goerli 4 460 644 17 Mar 2021
Rinkeby 8 290 928 24 Mar 2021
Mainnet 12 244 000 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.

Client Versions

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.

Client Version Number Download Link
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

Note, 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.

Berlin EIPs

The Berlin upgrade introduces the following EIPs to the Ethereum network:

To learn more about each EIP, see the Ethereum Cat Herder’s Berlin Overview post.

FAQ

Why “Berlin”?

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?

If you use an exchange (such as Coinbase, Kraken, or Binance), a web wallet service (such as Metamask, MyCrypto, or MyEtherWallet), a mobile wallet service (such as Coinbase Wallet, Status.im, or Trust Wallet), or a hardware wallet (such as Ledger, Trezor, or KeepKey) you do not need to do anything unless you are informed to take additional steps by your exchange or wallet service.

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.

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.

Thank You!

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 🇬🇧!

Disclaimer

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.