Geth v1.13.0 is a major milestone in the lifetime of Geth, bits and bobs being in development for around 6 years now. Since a release note cannot do it justice, please see our Geth v1.13.0 release blog post.
Still, just to quickly recap, Geth v1.13.0 finally ships a new database model which supports proper, full pruning of historical states; meaning you will never need to take your node offline again to resync or to manually prune. The new database model is optional for now (you need to enable it via --state.scheme=path) and does require resyncing the state, since we need to store it completely different (you can keep your ancients, no need to resync the chain too).
The path database will become the default eventually, but for safety reasons, we're keeping it opt-in for the moment. The old database model is not going away soon, though long term - unless there's something fundamentally wrong with the path db - it will. As for archive node users, we're working on a new model there too, but it does need a bit more work on top, so that's for another release.
The all important disclaimer: Geth's new path-based storage is considered stable and production ready, but was obviously not battle tested yet outside of the team. Everyone is welcome to use it, but if you have significant risks if your node crashes or goes out of consensus, you might want to wait a bit to see if anyone with a lower risk profile hits any issues.
Apart from the pruning work, the release contains:
Built in support for the Holešky (Holešovice) testnet (#28007).
Index transactions even if no blocks are received (#27847).
Expose Geth version metadata into the metrics (#24877).
Optimise eth_estimateGas to do fewer runs (#27710).
Reject GraphQL block queries where both number and hash is specified (#27876).
Increase batch limits for RPC calls on the authenticated endpoint (#27924).
Optimise logging library to avoid expensive call stack lookups (#28069).
And bugfixes:
Fix forkid computation for genesis-merged non-zero timestamp networks (#27895, #28034).
Fix a potential data race in the websocket ping/pong mechanism (#27733).
Fix js tracers to return the gas price in base 16, not base 10 (#27903).
Fix finalized block number in dev (--dev) mode (#27886).
For a full rundown of the changes please consult the Geth 1.13.0 release milestone, though do note that the state scheme changes and pruner have been gradually merged over the past year so are not explicitly tagged in this milestone.
As with all our previous releases, you can find the:
Pre-built binaries for all platforms on our downloads page.
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 show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@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.12.2 to 1.13.0.
Release notes
Sourced from github.com/ethereum/go-ethereum's releases.
Commits
7371b38
params: release Geth v1.13.012ef276
consensus/misc: fix min gas limit error message (#28085)1efd12f
core: fix calculation of blob gasprice in tx receipt (#28082)5cf53f5
ethclient: use 'input', not 'data' as field for transaction input (#28078)83886e4
go.mod: pull in a fix from pebble crl-release-23.1 (#28081)a7842c9
core, trie: cleanup trie database (#28062)a8d7201
log: avoid stack lookups when not needed/used (#28069)c60f7dd
deps: update minisign (#28066)2e02c1f
core/rawdb: don't warn for missing "unclean shutdown markers" (#28014)2f77299
go.mod: goupnp 1.3.0 (#28053)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 show