A Quick Look at the Ethereum Mainnet "London" Upgrade Announcement
Original title: "Notice | Ethereum Mainnet "London" Upgrade Announcement"
Editor's note: Thanks to ETH Chinese website for translating the "London" upgrade announcement issued by the Ethereum Foundation and the version update statement of the Geth client team. What needs to be added is:
The original announcement was released on July 15, and a consensus accident occurred on the Ropsten testnet on July 21. Therefore, the client version suggested in this article is outdated, and friends who run nodes should obtain the latest version of the client they use.
Based on the average block time of 13.5, the "London" upgrade will be activated at 7:00 pm on August 5th, Beijing time.
The Gas Limit of the Ethereum block is determined by the parameter game set by the block producing node locally. Setting a value lower/higher than the current size means that it supports the reduction/increase of the block, and it will be included in the block produced by itself. reflect. After the passage of EIP-1559, the adjustment of Base Fee will always target a block utilization rate of 50%. Therefore, if you are a block producing node and you think the appropriate gas consumption per block is 100, you should set it locally Set the gas limit to 200, and so on. Announcement and Geth team suggested values are illustrative only. No matter what value the node specifically sets, it will not enter another fork.
Source | Ethereum Blog
Author | Tim Beiko
Translator's note: In addition to the announcement of the London mainnet upgrade, ECN also translated the code changes in the Geth client v1.10.5 related to the London upgrade, which different actors need to pay attention to.

client version
client version
To be compatible with the London upgrade, node operators will need to upgrade the version of the client they are running. Each client version listed below supports the London upgrade of the Ethereum mainnet. Note: The following versions are different from the client version listed in the "London Testnet Announcement". The client version of the testnet does not support the client version upgraded from the mainnet London.

Note: The OpenEthereum client will be deprecated after the London upgrade. The OE team is working with Erigon to provide users with a smooth transition path. Click here for more information.
secondary title
text
The following EIPs are part of the London upgrade:
EIP-1559: ETH 1.0 Fee Market Changes
EIP-3198: BASEFEE opcode
EIP-3529: Reduce gas return
EIP-3541: Reject new addresses starting with 0xEF bytes
EIP-3554: Difficulty bomb delayed until December 2021
Ethereum Cat Herders published a blog post discussing the details of these EIPs.
secondary title
bug hunting bounty
secondary title
FAQ
Q: As an Ethereum user or ETH holder, is there anything I can 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 don’t need to do anything unless your exchange or wallet provider tells you to take additional steps. If you run your own Ethereum node, you need to upgrade your node. Please see the "What do I need to do as a non-mining node?" section below.
Q: As a non-mining node, what do I need to do?
Download the latest version of the Ethereum client, listed in the table above.
Q: What should I do as a miner?
First, download the latest version of your Ethereum client. Then, you need to manually set the gas limit target to double. This is because once the London upgrade is deployed, the block size will double, while EIP-1559 will keep the block size approximately 50% full. This can be done via JSON-RPC on all clients that offer mainnet-compatible mining, without restarting your node.
For example, if you set the block size to 15m gas before the London upgrade, you will need to set the gas limit to 30m to keep the average number of transactions per block consistent. If you don't modify the gas limit target at block 12 965 000, you will start reducing your block size in the network. The table below provides each client-specific API that you need to use to update your gas limit target.

Note: Nethermind, Erigon, and EthereumJS do not currently support mining on the Ethereum mainnet.
Q: What happens if I am a miner or node operator and do not participate in the upgrade?
If you are using the Ethereum client but do not upgrade to the latest version (listed above), after upgrading your client will sync the blockchain data before the fork. You'll be stuck on an incompatible chain that follows the old rules, and won't be able to send ETH or operate on the upgraded Ethereum network.
Q: What does network upgrade mean on Ethereum?
A network upgrade means a change in the underlying protocol of Ethereum, creating new rules to improve the system. The decentralized nature of blockchain systems makes network upgrades more difficult. The smooth progress of the blockchain network upgrade requires collaboration and communication with the community and individual Ethereum client developers to make the transition go smoothly.
Q: What happens during the network upgrade process?
These changes to the protocol are written to various Ethereum clients such as geth, Erigon, Besu, and Nethermind when the community reaches consensus on which changes need to be incorporated into the upgrade. Protocol changes are initiated at a specific block height. Any nodes that do not upgrade to the new rules will be abandoned on the old chain, and the old chain continues to maintain the previous rules.
Q: Why "London"?
thank you
thank you
Special thanks to everyone involved in researching, planning, implementing, testing, fixing, retesting, deploying, stress testing, and in any other way that helped with the London upgrade 😁🇬🇧
disclaimer
disclaimer
secondary title
Excerpt from Geth Exodus Cluster (v1.10.5)
Note from the Geth client about the London upgrade changes:
This release includes the mainnet launch block height for the London hard fork. (#23176)
As with all previous fork-related releases, we added an overload flag to set the startup block. This flag is temporary and will be removed after the mainnet fork block is successfully launched. (#22822, #22972)
To accommodate the new fee market created by EIP-1559, the transaction pool in the Geth client has been redesigned. Our new transaction pool design is designed to meet the needs of users - to package transactions in a timely manner - for efficient ordering of transactions according to their effective mining rewards. You can learn more about the working logic of the new transaction pool in the transaction pool design document. (#22898)
For miners: The transaction selection algorithm provided by Geth specifically picks the transaction with the highest effective reward. If a minimum price is set with the --miner.gasprice command line flag, then transactions offering miner tips below the minimum price will not be included in the block. (#22896, #22995)
EIP-1559 will also change the voting system for the gas limit. After the London fork, the amount of block gas available for transactions is adjusted based on demand. The block capacity is called the gas target, and EIP-1559 defines this target as half of the gas limit.
In order to ensure that the gas available for transactions is the same as before the fork, the gas limit of the fork block is doubled. If you are using the --miner.gaslimit flag to vote, you need to double the value of this flag to keep the value of the vote the same as before. You can use the miner_setGasLimit RPC API to upgrade the target without going offline, but be aware that this will not persist across reboots. The previous --miner.gatarget flag was deprecated after the London upgrade, its value was ignored.
Example: If you are using --miner.gaslimit to vote for a gas limit of 20M, but the actual block gas limit is 20M. When the London upgrade kicks in, the block gas limit will be adjusted to 40M, but if you continue to use the same --miner.gaslimit setting, you will also vote for 20M. So at some point after the fork, you will need to double your --miner.gaslimit value to ensure the gas limit stays at 40M gas.
For wallet providers: EIP-1559’s transaction price default calculation algorithm (eth_maxPriorityFeePerGas) still follows the old mechanism, set the max priority fee as the effective price paid on the network minus the current base fee; set the max fee as priority fee + 2x base fee. This ensures that the total price paid per gas remains the same after the London transition period, provided users do not expressly object.
Additionally, Geth released a new eth_feeHistory (blocks, head, percentiles) API endpoint that users can use to ask for recent data on the amount of fees paid to miners and transaction burn fees. It is recommended that wallets use this terminal to give users multiple fee options (#23033).
Note for JSON-RPC users: eth_sendTransaction and eth_fillTransaction will create EIP-1559 style transactions by default when the fork is enabled.
Note for users bound by Go/Java/ObjC contracts: after the fork starts, accounts/abi/bind will automatically create a 1559 transaction. To use EIP-1559 in applications written in Go language, please remember to upgrade the go-ethereum module dependency to v1.10.4 in your application's go.mod file. (#23038)
Note for ethclient users: If you use the ethclient package to send transactions and want to use the new fee model introduced by EIP-1559, you must modify your code to use types.NewTx(&types.DynamicFeeTx{...}) to create transactions. In order to know if a fork has started and new transaction types are available, just check if the BaseFee field of the latest block header is non-zero.


