Geth v1.10.6 is a hotfix release. This resolves a consensus failure on the Ropsten testnet.
Users of Geth on the Ethereum mainnet must upgrade to this release before the London hard-fork activates to remain in consensus. Reminder: the London hard fork is scheduled to occur at block #12965000 on mainnet (~ August 4th, 2021).
More information about the Ropsten incident
During testing of the London hardfork on Ropsten, a consensus failure occurred in block 10679538, leading to a network split between OpenEthereum/Besu and Geth/Nethermind. The block contained a transaction from an account with enough funds to cover the effective fee, but too little funds for the transaction's maximum gas price. EIP-1559 mandates that such transactions should be rejected. Geth's implementation of EIP-1559 did not perform the check correctly and accepted the transaction.
Compatibility with old receipt formats stored in the database is restored. This fixes a regression introduced in Geth v1.10.4 for people with very old chain databases. (#23247)
A regression for eth_sendTransaction in light client mode is fixed. (#23215)
The Go API function Node.Close() has been fixed to stop the WebSocket server correctly (#23211)
For a full rundown of the changes please consult the Geth 1.10.6 release milestone.
As with all our previous releases, you can find the:
Pre-built binaries for all platforms on our downloads page.
Geth v1.10.5 enables the London hard fork for the Ethereum mainnet at block [#12965000](https://github.com/ethereum/go-ethereum/issues/12965000), estimated for the 4th of August, 2021. Reiterating the London hardfork summary from our previous release (note, extended):
London Fork EIPs
[EIP-1559]: Fee market change for ETH 1.0 chain (#22837, #22888, #22970)
[EIP-3198]: BASEFEE opcode (included in EIP-1559 changes)
[EIP-3541]: Reject new contracts starting with the 0xEF byte (#22809)
[EIP-3554]: Difficulty Bomb Delay to December 1st 2021 (#22840, #22870)
Additional notes about the London changes
This release contains mainnet activation block number for the London hard fork. (#23176)
As with all previous fork-related releases, we have added an override flag which can be used to set the activation block. This flag is temporary and will be removed some time after the fork has successfully activated on mainnet. (#22822, #22972)
The Geth transaction pool has been redesigned in order to handle the new fee market created by EIP-1559. Our new pool design attempts to cater to the demands of users—timely inclusion of transactions—as well as allowing efficient ordering of transactions by their effective mining reward. You can read more about how the new pool functions in the [transaction pool design document]. (#22898)
For miners: The transaction selection algorithm provided by Geth specifically picks transactions with the highest effective reward. If a minimum price is configured using the --miner.gasprice command-line flag, transactions providing less miner tips will not be included in blocks. (#22896, #22995)
EIP-1559 also changes the gas limit voting system. After the London fork, the block gas amount available for transactions is adjusted based on demand. The block capacity is called the gas target, and EIP-1559 defines this target as half the gas limit.
To ensure that the gas available for transactions is the same as before the fork, the gas limit is doubled at the fork block. If you are using the --miner.gaslimit flag to participate in voting, you need to double the value of this flag to keep voting for the same value as before. You can use the miner_setGasLimit RPC API to update the target without downtime, but be aware that this does not survive a restart. The previous --miner.gastarget flag is deprecated post London and its value will be ignored.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/ethereum/go-ethereum from 1.9.25 to 1.10.6.
Release notes
Sourced from github.com/ethereum/go-ethereum's releases.
... (truncated)
Commits
576681f
params: release go-ethereum v1.10.6 stable370680a
core/types: revert removal of legacy receipt support (#23247)97aacd9
core: fix pre-check for account balance under EIP-1559 (#23244)f05419f
les: fix eth_sendTransaction API (#23215)a5e3aa6
eth/tracers: fix typo in test name (#23218)89fde59
node: fix stopping websocket rpc.Server (#23211)f0b1bdd
params: begin v1.10.6 release cycle33ca98e
params: release Geth v1.10.5, Exodus Cluster1fac96c
internal/web3ext: remove unused console APIs (#23208)b9e6e43
consensus/clique: implement getSigner API method (#22987)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)