-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Upgrade] Go-Ethereum release v1.9.20 #1149
Merged
ricardolyn
merged 34 commits into
master
from
upgrade/go-ethereum/v1.9.20-2021310134659
Mar 15, 2021
Merged
[Upgrade] Go-Ethereum release v1.9.20 #1149
ricardolyn
merged 34 commits into
master
from
upgrade/go-ethereum/v1.9.20-2021310134659
Mar 15, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* cmd/geth/tests: try to fix spurious travis failure in les tests * cmd/geth: les_test - remove extraneous option during boot
build: drop disco, enable groovy on Ubuntu PPAs
* t8ntool: add output basedir * t8ntool: add txhash to trace filename * t8ntool: don't default to '.' basedir, allow absolute paths
* core: define and test chain reparation cornercases * core: write up a variety of set-head tests * core, eth: unify chain rollbacks, handle all the cases * core: make linter smile * core: remove commented out legacy code * core, eth/downloader: fix review comments * core: revert a removed recovery mechanism
travis, dockerfile, appveyor, build: bump to Go 1.15
* metrics: zero temp variable in updateMeter Previously the temp variable was not updated properly after summing it to count. This meant we had astronomically high metrics, now we zero out the temp whenever we sum it onto the snapshot count * metrics: move temp variable to be aligned, unit tests Moves the temp variable in MeterSnapshot to be 64-bit aligned because of the atomic bug. Adds a unit test, that catches the previous bug.
eth/downloader: fix rollback issue on short chains
* eth/downloader, eth/handler: utilize sync bloom for getNodeData * trie: handle if bloom is nil * trie, downloader: check bloom nilness externally
core/state/snapshot: reduce disk layer depth during generation
…pty (#21396) This change improves discovery behavior in small networks. Very small networks would often fail to bootstrap because all member nodes were dropping table content due to findnode failure. The check is now changed to avoid dropping nodes on findnode failure when their bucket is almost empty. It also relaxes the liveness check requirement for FINDNODE/v4 response nodes, returning unverified nodes as results when there aren't any verified nodes yet. The "findnode failed" log now reports whether the node was dropped instead of the number of results. The value of the "results" was always zero by definition. Co-authored-by: Felix Lange <[email protected]>
core/rawdb: only complain loudly if truncating many items
params: update CHTs for v1.9.20 release
ricardolyn
commented
Mar 15, 2021
ricardolyn
commented
Mar 15, 2021
nmvalera
approved these changes
Mar 15, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TODO
Plan & Analyse
As you review, list extra changes and/or tests to be implemented to ensure compatibility with GoQuorum specific features.
Build & Test
master
into this branchExtra Changes & Tests
Go-Ethereum Release: Paragade (v1.9.20)
Release notes
Geth v1.9.20 is another maintenance release containing bug fixes and security enhancements. This update is recommended for all users.
Please note that reverting to Geth v1.9.19 or prior after upgrading to v1.9.20 is not possible without a resync because the blockchain database layout has changed.
New Features:
evm
command can now appends the TX hash to state transition output files (#21406)Bug Fixes & Optimizations:
SetHead
operation, now behavecorrectly in all cases. An extensive test suite for chain repair has been added. (#21409, #21409)
help with future database upgrades. (#21080)
to speed up request processing. (#21445)
Build Changes:
Dingo is no longer supported. (#21461)
For a full rundown of the changes please consult the Geth 1.9.20 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.Codebase changes assessment
Legend
File Stats: (A) Added, (M) Modified and (R) Removed
Line Stats: (A) Added and (R) Removed
Assessment:
18 Pull Requests
M/A/R
(files changed)
A/R
(lines changed)
cmd/geth/tests: try to fix spurious travis failure in les tests
cmd/geth
(1)cmd/geth/les_test.go
(26)metrics: make meter updates lock-free
metrics
(3)metrics/meter.go
(130)metrics/ewma.go
(10)metrics/meter_test.go
(10)Fixed some comments
core/state
(3)core/state/statedb.go
(20)core/state/statedb_test.go
(20)core/state/state_object.go
(18)build: drop disco, enable groovy on Ubuntu PPAs
build
(1)build/ci.go
(6)cmd/evm: statet8n output folder + tx hashes on trace filenames
cmd/evm
(3)cmd/evm/internal/t8ntool
(3)cmd/evm/internal/t8ntool/transition.go
(80)cmd/evm/README.md
(36)cmd/evm/internal/t8ntool/flags.go
(10)cmd/evm/internal/t8ntool/execution.go
(8)cmd/evm/transition-test.sh
(8)core: better metering for reorgs
core
(2)core/blockchain.go
(16)core/tx_pool.go
(4)core: define and test chain reparation cornercases
core
(5)core/rawdb
(4)eth/downloader
(2)eth
(1)trie
(1)core/blockchain_sethead_test.go
(3898)core/blockchain_repair_test.go
(3306)core/blockchain.go
(406)core/rawdb/freezer.go
(158)eth/downloader/downloader.go
(122)travis, dockerfile, appveyor, build: bump to Go 1.15
.travis.yml
(1)Dockerfile
(1)Dockerfile.alltools
(1)appveyor.yml
(1)build
(1).travis.yml
(64)appveyor.yml
(8)Dockerfile
(4)Dockerfile.alltools
(4)build/checksums.txt
(4)metrics: zero temp variable in updateMeter
metrics
(2)metrics/meter_test.go
(32)metrics/meter.go
(16)eth/downloader: fix rollback issue on short chains
eth/downloader
(1)eth/downloader/downloader.go
(4)core, eth, les, trie: add a prefix to contract code
core/rawdb
(7)core
(5)core/state
(5)core/types
(3)eth/downloader
(3)eth/fetcher
(2)eth
(1)consensus/clique
(1)consensus/ethash
(1)cmd/evm/internal/t8ntool
(1)cmd/geth
(1)core/rawdb/accessors_state.go
(192)core/state/sync_test.go
(190)core/state/database.go
(70)core/rawdb/accessors_indexes_test.go
(56)core/types/block_test.go
(56)core: do less lookups when writing fast-sync block bodies
core
(1)core/blockchain.go
(30)eth/downloader, eth/handler: utilize sync bloom for getNodeData
eth
(1)eth/downloader
(1)eth/downloader/downloader.go
(18)eth/handler.go
(8)core/state/snapshot: reduce disk layer depth during generation
core/state/snapshot
(3)core/state/snapshot/generate.go
(36)core/state/snapshot/snapshot.go
(14)core/state/snapshot/journal.go
(4)p2p/discover: avoid dropping unverified nodes when table is almost empty
p2p/discover
(5)p2p/discover/v4_udp_test.go
(176)p2p/discover/table.go
(86)p2p/discover/v4_udp.go
(34)p2p/discover/lookup.go
(26)p2p/discover/table_test.go
(8)core/rawdb: only complain loudly if truncating many items
core/rawdb
(1)core/rawdb/freezer_table.go
(18)graphql: add query for chainID
graphql
(2)graphql/graphql.go
(8)graphql/schema.go
(4)params: update CHTs for v1.9.20 release
params
(1)params/config.go
(64)80 Changed files
core/blockchain_sethead_test.go
core/blockchain_repair_test.go
core/blockchain.go
#21409
#21420
#21080
trie/sync.go
trie/database.go
core/rawdb/accessors_state.go
core/state/sync_test.go
p2p/discover/v4_udp_test.go
core/rawdb/freezer.go
eth/downloader/downloader.go
#21445
#21409
#21080
metrics/meter.go
#21470
eth/downloader/downloader_test.go
core/headerchain.go
core/blockchain_test.go
#21080
p2p/discover/table.go
cmd/evm/internal/t8ntool/transition.go
trie/sync_test.go
core/state/database.go
.travis.yml
params/config.go
core/state/statedb.go
#21080
core/types/block_test.go
core/rawdb/accessors_indexes_test.go
core/rawdb/accessors_chain.go
metrics/meter_test.go
#21470
core/rawdb/database.go
#21080
core/rawdb/schema.go
#21080
trie/sync_bloom.go
eth/sync.go
cmd/evm/README.md
core/state/snapshot/generate.go
p2p/discover/v4_udp.go
core/rawdb/accessors_metadata.go
core/types/derive_sha.go
eth/handler.go
#21080
p2p/discover/lookup.go
cmd/geth/les_test.go
core/state/statedb_test.go
core/rawdb/freezer_table.go
core/state/state_object.go
cmd/evm/internal/t8ntool/execution.go
#21080
eth/downloader/statesync.go
core/types/block.go
core/state/snapshot/snapshot.go
core/state/iterator_test.go
trie/trie.go
eth/fetcher/block_fetcher.go
metrics/ewma.go
eth/downloader/queue.go
core/block_validator.go
cmd/evm/internal/t8ntool/flags.go
core/rawdb/accessors_chain_test.go
core/rawdb/chain_iterator_test.go
cmd/evm/transition-test.sh
light/trie.go
les/odr_requests.go
appveyor.yml
p2p/discover/table_test.go
graphql/graphql.go
eth/fetcher/block_fetcher_test.go
consensus/clique/clique.go
build/ci.go
core/genesis.go
core/tx_pool_test.go
consensus/ethash/consensus.go
trie/secure_trie.go
build/checksums.txt
graphql/schema.go
Dockerfile
light/odr_test.go
cmd/geth/retesteth.go
core/state/sync.go
params/version.go
core/tx_pool.go
core/state/snapshot/journal.go
Dockerfile.alltools
light/odr.go
miner/worker.go
les/server_handler.go
cmd/evm/main.go