Geth v1.10.3 is a maintenance release, containing bug fixes and performance improvements.
The performance of the snapshot system has been a big focus in this release cycle.
Generating a snapshot after a snap sync is approximately 10 times faster.
Geth command changes
Several race conditions in database access are resolved, reducing the potential of database corruption (#22739, #22728)
Large numbers in log messages now have thousands separators (#22665, #22679)
Geth no longer warns about database upgrades when starting with an empty database (#22803)
The new geth db freezer-index debugging command prints the contents of a freezer table (#22633)
Geth now includes the experimental --catalyst mode for eth2 merge testing (#22641, #22697, #22770)
Puppeth now supports using ssh-agent for authentication (#22634)
Go library changes
State snapshot generator performance is much improved in this release (#22667, #22470, #22504)
It is no longer possible to upgrade snapshot databases generated by pre-Berlin geth (#22663)
The RPC client now returns non-2xx HTTP responses as rpc.HTTPError (#22677)
The ethash engine now performs less database lookups when verifying uncle headers (#21467)
trie.StackTrie has been refactored to improve API semantics. StackTrie methods previously took ownership of key/value byte slices passed to it, which was unintuitive for calling code (#22673, #22686, #22685)
RPC/GraphQL API changes
The gas price oracle deals much better with blocks containing transactions of very low price. Such transactions are typically generated by miners using MEV techniques (#22722)
DNS discovery for the snap protocol now uses the eth protocol node list. The snap-specific node list will be retired later. This is possible because more than 75% of all eth nodes support serving snap (#22808)
For eth and snap, the protocol handlers now report additional metrics about response latency (#22608, #22751, #22753). A Grafana dashboard incorporating the new metrics is available here.
Several new tests have been added in the cross-client eth protocol test suite. The tests are now more reliable and run as part of pull request CI on Travis (#22698, #22630, #22757, #22749, #22754, #22801)
The discv5 message handler now reflects IPv4-in-IPv6 addresses correctly when handling PING (#22703)
The DNS node list tools in cmd/devp2p now support setting a size limit for node lists. This was added because the list of mainnet snap protocol nodes overflowed our AWS Route53 account (#22694, #22695)
Build
The Windows build environment has been cleaned up and updated to use GCC 10 (#22811, #22788, #22804, #22821)
The crypto/bn256 and crypto/bls12381 packages are now fuzz-tested against gnark-crypto (#22755)
go-ethereum now builds correctly on OpenBSD/arm64 (#22693)
For a full rundown of the changes please consult the Geth 1.10.3 release milestone.
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps github.com/ethereum/go-ethereum from 1.9.8 to 1.10.3.
Release notes
Sourced from github.com/ethereum/go-ethereum's releases.
... (truncated)
Commits
991384a
params: go-ethereum v1.10.3 stable0f3a1e7
cmd/devp2p/internal/ethtest: send simultaneous requests on one connection (#2...41671d4
build: fix windows installer build for NSIS v3.05 (#22821)3a2b29c
appveyor.yml: upgrade to VisualStudio 2019 image (#22811)973ad66
build: fix iOS framework build (#22813)d107f90
go.mod: go mod tidy (#22814)effaf18
build: improve cross compilation setup (#22804)b8040a4
cmd/utils: use eth DNS tree for snap discovery (#22808)640d2c5
Merge pull request #22803 from karalabe/silence-scary-warning856c379
eth: don't print db upgrade warning on db initDependabot 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) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)