Original post can be found here.
The long-anticipated London upgrade is now ready for deployment on the Ethereum testnets! The upgrade will first go live on Ropsten, at block 10499401, which is expected to happen around June 24, 2021.
This upgrade follows Berlin, which was activated only a few months ago on the Ethereum mainnet. By starting the work on London while Berlin was being rolled out, client teams were able to release this network upgrade at record speed! The upgrade includes the following EIPs:
The Ethereum Cat Herders have put out a blog post going over the details of these EIPs.
It is worth noting that EIP-1559, while backwards compatible with the current transaction format, introduces changes to the block header, adds a new transaction type, comes with new JSON RPC endpoints, and changes the behavior clients in several areas (mining, transaction pool, etc.). It is highly recommended that projects familiarize themselves with the EIP. A more extensive list of resources related to EIP-1559 can be found here.
As of now, only the testnets (Ropsten, Goerli, Rinkeby) have been scheduled for London. Once the upgrade has successfully been activated on these networks, a block will be set for the Ethereum mainnet and be communicated on this blog and in other venues.
The release schedule is as follows:
NETWORK | BLOCK NUMBER | EXPECTED DATE |
---|---|---|
Ropsten | 10499401 | June 24, 2021 |
Goerli | 5062605 | June 30, 2021 |
Rinkeby | 8897988 | July 7, 2021 |
Mainnet | TBD once testnets fork successfully. | TBD once testnets fork successfully. |
Note: the Kovan network will be upgraded at a later date, likely after the Mainnet block has passed.
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 London upgrade, node operators will need to upgrade the client version that they run. The versions, listed below for each client, support London across test Ethereum networks. Another release will be made by each client once the mainnet fork block has been chosen.
CLIENT | VERSION NUMBER | DOWNLOAD LINK |
---|---|---|
go-ethereum (geth) | 1.10.4 | Download |
Nethermind | 1.10.73 | Download |
Erigon (f.k.a. TurboGeth) | 2021.06.04-alpha | Download |
Besu | 21.7.0-RC1 | Download |
OpenEthereum (f.k.a. Parity) | 3.3.0-rc2 | Download |
EthereumJS VM | 5.4.1 | Download |
Note: the OpenEthereum client will be deprecated after the London upgrade. The team is working with Erigon on a smooth transition path for users. More information can be found here.
The upgrades listed in this post only affect the Ethereum testnets, and not the Ethereum mainnet. If you are only a user of the Ethereum mainnet, there is nothing you have to do now.
First, download the latest version of your Ethereum client, as listed in the table above. Then, you will need to manually change your gas limit target to twice what it currently is. This is because once London is live, the block size will be doubled and EIP-1559 will keep blocks about 50% full.
For example, if prior to London you were a Ropsten miner targetting a block size of 8,000,000 gas, you will now need to target a 16,000,000 gas limit to maintain the same amount of transactions per block, on average. If you do not change your gas limit target, you will start lowering the block size on the network. The table below details the specific parameter you should update depending on your client.
CLIENT | PARAMETER |
---|---|
go-ethereum (geth) | miner.gaslimit |
Nethermind | TargetBlockGasLimit |
OpenEthereum (f.k.a. Parity) | parity_setGasCeilTarget |
Besu | target-gas-limit |
Erigon (f.k.a. TurboGeth) | miner.gaslimit |
Download the latest version of your Ethereum client, as listed in the table above, and be on the lookout for the mainnet upgrade announcement in the coming weeks.
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.
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.
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, Erigon, 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.
After Istanbul, we ran out of names for our planned network upgrades. It was suggested to use Devcon city names for upgrades, and we did! London is where Devcon 1 took place. It followed the Berlin Devcon 0.
A big thanks to everyone who has been involved in researching, planning, implementing, testing, breaking, fixing, re-testing, and deploying London
Shout out to Henry Be for the cover image for this post!
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.