-
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.22 #1214
Merged
ricardolyn
merged 50 commits into
Consensys:master
from
quorumbot:upgrade/go-ethereum/v1.9.22-2021615155119
Jun 18, 2021
Merged
[Upgrade] Go-Ethereum release v1.9.22 #1214
ricardolyn
merged 50 commits into
Consensys:master
from
quorumbot:upgrade/go-ethereum/v1.9.22-2021615155119
Jun 18, 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
eth/downloader: only roll back light sync if not fully validating
* cmd, eth: offer maxprice flag for overwritting price cap * eth: rename default price cap
…530) * core/vm/testdata: add gascost expectations to testcases * core/vm: verify expected gas in tests for precompiles * core/vm: fix overflow flaw in gas/s calculation
This adds a new client method BlockNumber to fetch the most recent block number of the chain.
* cmd/geth: print warning when whisper config is present in toml * Update cmd/geth/config.go Co-authored-by: Martin Holst Swende <martin@swende.se>
This PR changes several different things: - Adds test cases for the miner loop - Stops the worker if it wasn't already stopped in worker.Close() - Uses channels instead of atomics in the miner.update() loop Co-authored-by: Felix Lange <fjl@twurst.com>
Fixes a regression introduced in #21536
This PR adds an extra guarantee to NodeStateMachine: it ensures that all immediate effects of a certain change are processed before any subsequent effects of any of the immediate effects on the same node. In the original version, if a cascaded change caused a subscription callback to be called multiple times for the same node then these calls might have happened in a wrong chronological order. For example: - a subscription to flag0 changes flag1 and flag2 - a subscription to flag1 changes flag3 - a subscription to flag1, flag2 and flag3 was called in the following order: [flag1] -> [flag1, flag3] [] -> [flag1] [flag1, flag3] -> [flag1, flag2, flag3] This happened because the tree of changes was traversed in a "depth-first order". Now it is traversed in a "breadth-first order"; each node has a FIFO queue for pending callbacks and each triggered subscription callback is added to the end of the list. The already existing guarantees are retained; no SetState or SetField returns until the callback queue of the node is empty again. Just like before, it is the responsibility of the state machine design to ensure that infinite state loops are not possible. Multiple changes affecting the same node can still happen simultaneously; in this case the changes can be interleaved in the FIFO of the node but the correct order is still guaranteed. A new unit test is also added to verify callback order in the above scenario.
This can be useful when working with raw RLP data.
* les, les/lespay/server: refactor client pool * les: use ns.Operation and sub calls where needed * les: fixed tests * les: removed active/inactive logic from peerSet * les: removed active/inactive peer logic * les: fixed linter warnings * les: fixed more linter errors and added missing metrics * les: addressed comments * cmd/geth: fixed TestPriorityClient * les: simplified clientPool state machine * les/lespay/server: do not use goroutine for balance callbacks * internal/web3ext: fix addBalance required parameters * les: removed freeCapacity, always connect at minCapacity initially * les: only allow capacity change with priority status Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
When the license was added to the repository, its text was changed (some sections at the end removed) and, worse, the authors of go-ethereum tried to claim copyright on the license text. The correct way to apply GPL to a project is to copy it verbatim. This change reverts the text of the GPL to the original.
…ookup indexes (#21480)
It didn't actually work because it called a method that doesn't exist. This fixes it also adds a test. Co-authored-by: Felix Lange <fjl@twurst.com>
* Allow setting PetersburgBlock before chainhead if it is at the same block as ConstantinopleBlock * Add a negative test
* tests/fuzzers/abi: added abi fuzzer * accounts/abi: fixed issues found by fuzzing * tests/fuzzers/abi: update fuzzers, added repro test * tests/fuzzers/abi: renamed abi_fuzzer to abifuzzer * tests/fuzzers/abi: updated abi fuzzer * tests/fuzzers/abi: updated abi fuzzer * accounts/abi: minor style fix * go.mod: added go-fuzz dependency * tests/fuzzers/abi: updated abi fuzzer * tests/fuzzers/abi: make linter happy * tests/fuzzers/abi: make linter happy * tests/fuzzers/abi: comment out false positives
* cmd/utils: use preconfigured testnet flags instead of networkid * cmd/utils: shorter description Co-authored-by: Martin Holst Swende <martin@swende.se> * Update flags.go Co-authored-by: Martin Holst Swende <martin@swende.se>
* database: added counters * Improved stats for ancient db * Small improvement * Better message and added percentage while counting receipts * Fast counting for receipts * added info message * Show both receips itemscount from ancient db and counted receipts * Fixed default case * Removed counter for receipts in ancient store * Removed counting of receipts present in leveldb
eth/downloader: dynamically move pivot even during chain sync
* accounts: abi/bid/backends; cleaned doc errors, camelCase refactors and anonymous variable assignments * acounts/abi/bind: doc errors, anonymous parameter assignments * accounts/abi: doc edits, camelCase refactors * accounts/abi/bind: review fix * reverted name changes * name revert Co-authored-by: Osoro Bironga <osoro@doctaroo.com>
This change moves the RLPx protocol implementation into a separate package, p2p/rlpx. The new package can be used to establish RLPx connections for protocol testing purposes. Co-authored-by: Felix Lange <fjl@twurst.com>
…(#21545) This allows users to estimate gas on top of arbitrary blocks as well as pending and latest. Tracing on pending is useful for most users as it takes into account the current txpool while tracing on latest might be useful for users that have little to know knowledge of the current transactions in the network. If blockNrOrHash is not specified, estimateGas defaults to pending
* trie: support non-existent right proof * trie: improve test * trie: minor linter fix Co-authored-by: Péter Szilágyi <peterke@gmail.com>
…1601) * tried to fix * fix for js api * fix for nil pointer ex * rev space * rev space * input call formatter
This change adds a test framework for the "eth" protocol and some basic tests. The tests can be run using the './devp2p rlpx eth-test' command.
params: update CHTs for Geth v1.9.22
# Conflicts: # accounts/abi/bind/backends/simulated.go # cmd/clef/main.go # eth/handler.go # ethclient/ethclient_test.go # go.mod # go.sum # internal/web3ext/web3ext.go # p2p/server_test.go # params/config_test.go
ricardolyn
reviewed
Jun 16, 2021
ricardolyn
reviewed
Jun 16, 2021
ricardolyn
reviewed
Jun 16, 2021
ricardolyn
approved these changes
Jun 18, 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 branchAdd any extra changes/tests as comments on this PR.
Extra changes
Go-Ethereum Release: Noverian Rum (v1.9.22)
Release notes
Geth v1.9.22 is our usual maintenance release, fixing a few bugs and adding some minor features:
gpo.maxprice
CLI flag to override the upper limit of the automatic gas price suggester (#21531).BlockNumber
method toethclient
to support retrieving the head block's number (#21500).SELFDESTRUCT
(#21549, #21564).rlpx
into it's own package for easier protocol tests (#21464).Bugfixes:
config.toml
instead of rejecting (#21544).For a full rundown of the changes please consult the Geth 1.9.22 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:
39 Pull Requests
M/A/R
(files changed)
A/R
(lines changed)
accounts/abi/bind/backends: reverted some stylistic changes
accounts/abi/bind/backends
(2)accounts/abi/bind/backends/simulated.go
(88)accounts/abi/bind/backends/simulated_test.go
(12)eth/downloader: only roll back light sync if not fully validating
eth/downloader
(2)eth/downloader/downloader.go
(32)eth/downloader/downloader_test.go
(14)cmd, eth: offer maxprice flag for overwritting price cap
cmd/geth
(2)cmd/utils
(1)eth
(1)eth/gasprice
(1)eth/gasprice/gasprice.go
(36)cmd/utils/flags.go
(16)eth/config.go
(4)cmd/geth/main.go
(2)cmd/geth/usage.go
(2)core/vm: fix benchmark overflow + prep for precompile repricings
core/vm/testdata/precompiles
(15)core/vm
(1)core/vm/testdata/precompiles/blsG1Mul.json
(212)core/vm/testdata/precompiles/blsG1Add.json
(208)core/vm/testdata/precompiles/blsG2Add.json
(208)core/vm/testdata/precompiles/blsG2Mul.json
(208)core/vm/testdata/precompiles/blsG1MultiExp.json
(206)go.mod: remove golang.org/x/sync
go.mod
(1)go.mod
(2)ethclient: add BlockNumber method
ethclient
(1)ethclient/ethclient.go
(14)cmd/geth: print warning when whisper config is present in toml
cmd/geth
(1)cmd/geth/config.go
(30)miner: use channels instead of atomics in update loop
miner
(3)miner/miner_test.go
(340)miner/miner.go
(114)miner/worker.go
(2)miner: fix regression, add test for starting while download
miner
(2)miner/miner_test.go
(26)miner/miner.go
(22)p2p/discover: fix typo in comments
p2p/discover
(1)p2p/discover/table.go
(4)dockerfile: remove 8547 port
Dockerfile
(1)Dockerfile.alltools
(1)Dockerfile
(4)Dockerfile.alltools
(4)p2p/nodestate: ensure correct callback order
p2p/nodestate
(2)les
(1)p2p/nodestate/nodestate.go
(688)les/serverpool.go
(166)p2p/nodestate/nodestate_test.go
(112)Updated call_tracer to be more descriptive
eth/tracers/internal/tracers
(1)eth/tracers/internal/tracers/call_tracer.js
(18)rlp: add SplitUint64
rlp
(2)rlp/raw_test.go
(90)rlp/raw.go
(52)les, les/lespay/server: refactor client pool
les
(11)les/lespay/server
(7)les/utils
(3)cmd/geth
(1)common/prque
(1)internal/web3ext
(1)les/clientpool.go
(1944)les/lespay/server/balance.go
(1218)les/lespay/server/prioritypool.go
(1006)les/clientpool_test.go
(924)les/lespay/server/balance_test.go
(800)eth/tracers: regenerate assets
eth/tracers/internal/tracers
(1)eth/tracers/internal/tracers/assets.go
(12)COPYING: restore the full text text of GPL
COPYING
(1)COPYING
(118)Single point of maintenance for writing and deleting tx lookup indexes
core/rawdb
(3)core
(1)light
(1)core/rawdb/accessors_indexes.go
(76)core/blockchain.go
(16)core/rawdb/accessors_indexes_test.go
(16)core/rawdb/chain_iterator.go
(8)light/txpool.go
(4)ethclient: fix BlockNumber
ethclient
(2)ethclient/ethclient_test.go
(32)ethclient/ethclient.go
(4)Allow setting PetersburgBlock before chain head
params
(2)params/config_test.go
(34)params/config.go
(12)les/lespay/server: bump database version
les/lespay/server
(1)les/lespay/server/clientdb.go
(14)tests/fuzzers/abi: add fuzzer for fuzzing package accounts/abi
accounts/abi
(5)tests/fuzzers/abi
(2)go.sum
(1)go.mod
(1)tests/fuzzers/abi/abifuzzer.go
(372)tests/fuzzers/abi/abifuzzer_test.go
(100)accounts/abi/pack.go
(46)go.sum
(12)accounts/abi/unpack.go
(10)cmd/utils: use preconfigured testnet flags instead of networkid
cmd/utils
(1)cmd/utils/flags.go
(4)cmd/geth: added counters to the geth inspect report
core/rawdb
(1)core/rawdb/database.go
(380)eth/downloader: dynamically move pivot even during chain sync
eth/downloader
(3)eth/downloader/downloader.go
(450)eth/downloader/testchain_test.go
(50)eth/downloader/downloader_test.go
(28)core: fix a typo in comment
core
(1)core/block_validator.go
(4)accounts/abi: improve documentation and names
accounts/abi
(11)accounts/abi/bind
(5)accounts/abi/bind/bind.go
(56)accounts/abi/argument.go
(36)accounts/abi/unpack.go
(34)accounts/abi/bind/template.go
(30)accounts/abi/abi.go
(20)mobile: better api for java users
mobile
(3)go.mod
(1)go.sum
(1)mobile/types.go
(88)go.sum
(44)mobile/geth.go
(32)mobile/common.go
(20)go.mod
(2)p2p: move rlpx into separate package
p2p
(6)cmd/devp2p
(2)p2p/rlpx
(2)p2p/rlpx/rlpx.go
(1448)p2p/rlpx/rlpx_test.go
(800)p2p/transport.go
(354)p2p/transport_test.go
(296)cmd/devp2p/rlpxcmd.go
(188)cmd/clef, cmd/geth: use SplitAndTrim from cmd/utils
cmd/utils
(2)cmd/clef
(1)cmd/geth
(1)cmd/utils/flags.go
(86)cmd/clef/main.go
(52)cmd/geth/retesteth.go
(30)cmd/utils/customflags.go
(8)trie: fix bad range proof
trie
(1)trie/proof_test.go
(4)trie: support empty range proof
trie
(2)trie/proof_test.go
(66)trie/proof.go
(42)internal/ethapi: add optional parameter blockNrOrHash to estimateGas
internal/ethapi
(1)internal/ethapi/api.go
(18)trie: extend range proof
trie
(2)trie/proof_test.go
(712)trie/proof.go
(442)internal/ethapi: fix null pointer exception, add estimate gas to js
internal/ethapi
(1)internal/web3ext
(1)internal/web3ext/web3ext.go
(14)internal/ethapi/api.go
(6)cmd/devp2p: add eth protocol test suite
eth
(4)cmd/devp2p/internal/ethtest
(3)cmd/devp2p
(2)core/forkid
(2)cmd/devp2p/internal/ethtest/suite.go
(674)cmd/devp2p/internal/ethtest/types.go
(268)cmd/devp2p/internal/ethtest/chain.go
(226)cmd/devp2p/rlpxcmd.go
(102)core/forkid/forkid.go
(30)cmd/devp2p/internal/ethtest: update version in handshake
cmd/devp2p/internal/ethtest
(1)cmd/devp2p/internal/ethtest/suite.go
(4)cmd/devp2p/internal/ethtest: lower protocol version to 64
cmd/devp2p/internal/ethtest
(1)cmd/devp2p/internal/ethtest/suite.go
(4)params: update CHTs for Geth v1.9.22
params
(1)params/config.go
(48)126 Changed files
les/clientpool.go
p2p/rlpx/rlpx.go
les/lespay/server/balance.go
les/lespay/server/prioritypool.go
les/clientpool_test.go
p2p/rlpx/rlpx_test.go
les/lespay/server/balance_test.go
les/balance.go
trie/proof_test.go
#21250
#21484
p2p/nodestate/nodestate.go
cmd/devp2p/internal/ethtest/suite.go
#21603
#21604
les/lespay/server/balance_tracker.go
les/balance_test.go
les/lespay/server/clientdb.go
#21571
eth/downloader/downloader.go
#21529
trie/proof.go
#21250
core/rawdb/database.go
tests/fuzzers/abi/abifuzzer.go
miner/miner_test.go
#21536
p2p/transport.go
p2p/transport_test.go
les/lespay/server/clientdb_test.go
cmd/devp2p/internal/ethtest/types.go
les/lespay/server/prioritypool_test.go
cmd/devp2p/internal/ethtest/chain.go
les/api.go
cmd/devp2p/rlpxcmd.go
#21598
core/vm/testdata/precompiles/blsG1Mul.json
core/vm/testdata/precompiles/blsG1Add.json
core/vm/testdata/precompiles/blsG2Mul.json
core/vm/testdata/precompiles/blsG2Add.json
core/vm/testdata/precompiles/blsG2MultiExp.json
core/vm/testdata/precompiles/blsG1MultiExp.json
core/vm/testdata/precompiles/blsMapG1.json
core/vm/testdata/precompiles/blsMapG2.json
core/vm/testdata/precompiles/blsPairing.json
les/serverpool.go
les/utils/timeutils.go
miner/miner.go
#21536
COPYING
p2p/nodestate/nodestate_test.go
p2p/server_test.go
cmd/utils/flags.go
#21531
#21579
tests/fuzzers/abi/abifuzzer_test.go
common/prque/lazyqueue.go
les/utils/timeutils_test.go
rlp/raw_test.go
accounts/abi/bind/backends/simulated.go
mobile/types.go
core/rawdb/accessors_indexes.go
params/config.go
#21635
go.sum
#21580
accounts/abi/pack.go
#21540
accounts/abi/bind/bind.go
cmd/clef/main.go
les/peer.go
rlp/raw.go
eth/downloader/testchain_test.go
les/utils/expiredvalue.go
les/server.go
accounts/abi/unpack.go
#21540
eth/downloader/downloader_test.go
#21529
core/vm/testdata/precompiles/bn256ScalarMul.json
p2p/server.go
eth/gasprice/gasprice.go
accounts/abi/argument.go
params/config_test.go
core/vm/testdata/precompiles/modexp.json
les/server_handler.go
mobile/geth.go
core/vm/testdata/precompiles/bn256Add.json
ethclient/ethclient_test.go
p2p/peer_test.go
cmd/geth/config.go
accounts/abi/bind/template.go
core/forkid/forkid.go
cmd/geth/retesteth.go
core/vm/testdata/precompiles/bn256Pairing.json
les/api_test.go
core/vm/contracts_test.go
internal/ethapi/api.go
#21601
p2p/message_test.go
mobile/common.go
accounts/abi/abi.go
eth/tracers/internal/tracers/call_tracer.js
internal/web3ext/web3ext.go
#21601
core/rawdb/accessors_indexes_test.go
core/blockchain.go
ethclient/ethclient.go
#21565
accounts/abi/bind/backends/simulated_test.go
accounts/abi/type.go
#21540
accounts/abi/abi_test.go
#21540
eth/tracers/internal/tracers/assets.go
accounts/abi/bind/backend.go
core/vm/testdata/precompiles/blake2F.json
core/vm/testdata/precompiles/ecRecover.json
cmd/utils/customflags.go
les/metrics.go
accounts/abi/method.go
go.mod
#21541
#21580
les/test_helper.go
accounts/abi/topics.go
core/rawdb/chain_iterator.go
eth/discovery.go
eth/handler.go
eth/helper_test.go
cmd/devp2p/main.go
#21598
accounts/abi/bind/base.go
accounts/abi/reflect.go
params/version.go
Dockerfile.alltools
accounts/abi/event.go
accounts/abi/event_test.go
cmd/geth/les_test.go
accounts/abi/bind/auth.go
light/txpool.go
core/forkid/forkid_test.go
accounts/abi/error.go
core/block_validator.go
Dockerfile
eth/config.go
p2p/discover/table.go
eth/protocol_test.go
cmd/geth/main.go
cmd/geth/usage.go
miner/worker.go