This is a major release, containing over 300 PRs. Our original intention was to release 1.11 with path-based storage, but eventually we decided it was time to make the release without waiting for PBSS to be merged, so we can get back to a steady release schedule.
We hope to soon follow up the 1.11 release with 1.12, including PBSS.
Shanghai Upgrade Support
Most of the code for the Shanghai fork is merged into 1.11, but activation of the fork is not configured. The Shanghai protocol upgrade will contain the ability to make withdrawals from the consensus-layer (beacon chain). Withdrawals are specified in EIP-4895: Beacon chain push withdrawals as operations.
Pebble was added as a database backend to replace good old LevelDB.
LevelDB has served us very well over the years, alas, it is a one-person project where the maintainer has signaled that the project is not a priority. We have been forced to consider three options:
Stick with goleveldb as long as we can, don't worry about it,
Fork goleveldb (or some other database), and maintain it ourselves.
Pick a different database, actively maintained by a dedicated team.
Since option one is not really a long-term solution, the choice was between two and three. Maintaining a database is a huge effort, and is not a burden we want to carry. Hence, we have been aiming for option 3, and eventually settled on Pebble.
Pebble is actively maintained by a dedicated team, and is used by other projects. We hope that this is a good long-term bet. It has performed well in our benchmark tests, we are very interested in getting feedback from actual production systems. In order to use pebble,
You need to be on a 64-bit system,
You also need to resync from scratch (with or without ancients) -- there is no migration functionality,
And you need to specify --db.engine=pebble initially. For subsequent runs, geth should discover pebble automatically.
Removed Features
We have removed support for the ropsten and kiln test networks. We have also removed libraries for mobile development and the puppeth tool.
The personal RPC namespace is now deprecated. In order to interact with personal APIs, you need to specifically allow it via the --rpc.enabledeprecatedpersonal command-line flag.
Support for certain legacy files configuration files was dropped. geth now will ignore these datadir files:
static-nodes.json
trusted-nodes.json
If any these are found, an error will be printed to the log. Setups using such files should use to the TOML configuration-file instead.
Backwards-Incompatible Changes
When using geth for mining or as a clique sealer, the --miner.etherbase flag now has to be be set explicitly. Previously, Geth would use the 'first' local account as etherbase automatically, but this possibility has been removed in Geth 1.11.
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.10.21 to 1.11.0.
Release notes
Sourced from github.com/ethereum/go-ethereum's releases.
... (truncated)
Commits
18b641b
params: go-ethereum v1.11.0 stable7fb42e6
eth/downloader: handle missing withdrawals if empty list is expected (#26675)5967a22
ethdb/pebble: FixMemTableStopWritesThreshold
(#26692)dbd6c13
eth/catalyst: return error if withdrawals are nil post-shanghai (#26691)101587b
p2p/dnsdisc: fix tests with Go 1.20 (#26690)ff38c9e
eth/filters: replace atomic pointer with value (#26689)f44ebc4
params: update mainnet + rinkeby CHT (#26677)1c5fa40
cmd/devp2p: reduce output of node crawler (#26674)03585ed
tests/fuzzers: supply gnark multiexp config, fixes #26669 (#26670)7d29fff
eth/tracers: more fork overrides in traceBlockToFile (#26655)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)