Important update
On July 21, 2021, a consensus issue was identified on the Ropsten network, where implementations of Go-Ethereum, Erigon and Nethermind had different transaction validation logic than Besu and OpenEthereum. New versions of the affected clients have been released and are linked in the “Client Versions” table below. The block number for London remains unchanged and is still 12,965,000. Node operators using an affected client MUST upgrade to the latest version.
An overview of the issue is provided in the “Ropsten Consensus Question” section.
London
After a success testnet deploymentthe London upgrade is now ready to activate on the Ethereum mainnet. It will be posted online in bulk 12,965,000which is expected between August 3 and 5, 2021.
Client versions
In order to be compatible with the London upgrade, node operators will need to update the client version they are running. The versions, listed below for each client, support London on the Ethereum mainnet. These releases are different from previously announced releases that supported London on the testnets. Previous versions do not support London on mainnet.
Customer | Version number | Download link |
---|---|---|
go to Ethereum (geth) | Download | |
Void Spirit | Download | |
Erigon (formerly TurboGeth) | Download | |
Bésu | Download | |
OpenEthereum (formerly parity) | v3.3.0-rc.4 | Download |
EthereumJS virtual machine | v5.5.0 | Download |
Remarks :
- For miners: London will change the way the target gas limit is managed on the network. Please see the section “As a minor, what should I do?” » section below for more details.
- The Besu version was updated on August 4, 2021. This was due to a non-London bug affecting the transaction pool. See more here.
- The go-ethereum, Nethermind and Erigon versions were updated on July 23, 2021. This was due to the Ropsten consensus issue, detailed below.
- The OpenEthereum client will be deprecated after the London upgrade. The OE team is working with Erigon on a smooth transition for users. More information can be found here.
London EIP
The following EIPs are included in the London upgrade:
The Ethereum Cat Herders published a blog post review the details of these EIPs.
It should be noted that EIP-1559, while backward compatible with the current transaction format, introduces changes to the block header, adds a new transaction type, comes with new JSON RPC endpoints and modifies client behavior in several areas (mining, transaction pool, etc.). It is strongly recommended that projects become familiar with the IEP. A more comprehensive list of resources related to EIP-1559 can be found here.
Bug Bounty Bonus
In order to have a better preview of the upcoming changes in the London upgrade, all bounties for vulnerabilities related to the London upgrade will be doubled, until the upgrade takes place. Examples of issues that would be eligible for doubling are consensus issues between the following clients: Geth, Besu, Nethermind, OpenEthereum, and Erigon. For more details on the scope and restrictions of the bug bounty, see https://bounty.ethereum.org/#rules.
Ropsten consensus problem
On July 21, 2021, a consensus issue was detected on the Ropsten testnet. The issue was caused by missed validation for 1559 style transactions by some client implementations. In short, a transaction whose account balance was greater than the actual gas used by the transaction, but less than the transaction amount. maximum charge per gas multiplied by the gas price was included in a block by mistake.
A full postmortem of the issue is available in the eth1.0-specs repository. The affected versions containing this bug are go-ethereum 1.10.5, Nethermind 1.10.77 and Erigon 2021.07.03-alpha. If you are running one of these versions, please update your client to the version listed in the table above.
FAQs
As an Ethereum user or Ether holder, do I need to do anything?
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 don’t need to do anything unless your exchange or wallet service informs you to take further action. If you are running your own Ethereum node, you need to upgrade your node. See “As a non-mining node operator, what should I do?” » section below.
As a non-mining node operator, what should I do?
Download the latest version of your Ethereum client, as shown in the table above.
As a minor, what should I do?
First, download the latest version of your Ethereum client as shown in the table above. Next, you’ll need to manually change your gas limit goal to double what it currently is. Indeed, once London is operational, the block size will be doubled and EIP-1559 will keep the blocks approximately 50% full. This can be done via JSON-RPC, without restarting your node, on all clients offering mainnet-compatible mining.
For example, if before London you were targeting a block size of 15,000,000 gas, you will now need to target a limit of 30,000,000 gas to maintain the same number of transactions per block, on average. If you don’t change your gas limit target starting at block 12,965,000, you will start to reduce the block size on the network. The table below provides the customer-specific API call you should use to update your gas limit goal.
Note: Nethermind, Erigon and EthereumJS do not yet support mining on the Ethereum mainnet.
What happens if I’m a miner or node operator and don’t 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 with the pre-fork blockchain once the upgrade is complete. You will be stuck on an incompatible chain following the old rules and will not be able to send Ether or operate on the Ethereum network after the upgrade.
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 network upgrades more difficult. Network upgrades in a blockchain require cooperation and communication with the community, as well as with the developers of the different Ethereum clients for the transition to go smoothly.
What happens during a network upgrade?
Once the community has reached agreement on what changes to include in the upgrade, the protocol changes are written to the various Ethereum clients, such as Geth, Erigon, Besu, and Nethermind. Protocol changes are activated at a specific block number. Any nodes that have not been upgraded to the new set of rules will be abandoned on the old chain where the previous rules continue to exist.
Why “London”?
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 it! London is where Devcon1 took place. He followed the Berlin Devcon 0.
THANKS!
Many thanks to everyone who participated in the research, planning, implementation, testing, troubleshooting, repair, retesting, deployment, stress testing, and support. any other way to the deployment of London 😁🇬🇧
Shout out to Benjamin Davies for the cover image of this article!
Disclaimer
This is an emerging and evolving highly technical space. If you choose to implement the recommendations in this article and continue to participate, you should make sure you understand how it affects you. You should understand that there are risks, including but not limited to risks such as unexpected bugs. By choosing to implement these recommendations, you alone assume the risks and consequences. This article and recommendations do not constitute a sale of any kind and do not create any warranty of any kind, including but not limited to anything relating to the Ethereum network or the Ethereum clients mentioned in the this document.