EF Blog

ETH top background starting image
ETH bottom background ending image
Skip to content

Ethereum Berlin Upgrade Announcement

Posted by Tim Beiko on March 8, 2021

Ethereum Berlin Upgrade Announcement

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 15th.
  • 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.
  • The Besu client has reported a bug in their previous Berlin release. Besu users should upgrade to version 21.1.2.

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 15, 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:

NetworkBlock NumberExpected Date
Ropsten9 812 18910 Mar 2021
Goerli4 460 64417 Mar 2021
Rinkeby8 290 92824 Mar 2021
Mainnet12 244 00015 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.

ClientVersion NumberDownload Link
go-ethereum (geth)1.10.1Download
OpenEthereum (f.k.a. Parity)3.2.0Download
Nethermind1.10.58Download
Besu21.1.1 21.1.2Download
EthereumJS VMv5.2.0Download

Note, the Besu team have reported a bug in their 21.1.1 release related to Berlin (link). Besu users should upgrade to the 21.1.2 release in order to remain compatible with Berlin. Additionally, TurboGeth will not have a client release ready for the first testnets, but will have a release prior to mainnet. We will update this post as their release becomes 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:

  • EIP-2565: ModExp Gas Cost
    • 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;
  • EIP-2718: Typed Transaction Envelope
    • Introduces a new transaction type that is an envelope to enable easier support for multiple transaction types;
  • 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.

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.

Subscribe to Protocol Announcements

Sign up to receive email notifications for protocol-related announcements, such as network upgrades, FAQs or security issues. You can opt-out of these at any time.


Categories