-
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.16 #1132
Merged
ricardolyn
merged 132 commits into
master
from
upgrade/go-ethereum/v1.9.16-2021215130719
Feb 23, 2021
Merged
[Upgrade] Go-Ethereum release v1.9.16 #1132
ricardolyn
merged 132 commits into
master
from
upgrade/go-ethereum/v1.9.16-2021215130719
Feb 23, 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
* accounts/abi: simplified reflection logic * accounts/abi: simplified reflection logic * accounts/abi: removed unpack * accounts/abi: removed comments * accounts/abi: removed uneccessary complications * accounts/abi: minor changes in error messages * accounts/abi: removed unnused code * accounts/abi: fixed indexed argument unpacking * accounts/abi: removed superfluous test cases This commit removes two test cases. The first one is trivially invalid as we have the same test cases as passing in packing_test.go L375. The second one passes now, because we don't need the mapArgNamesToStructFields in unpack_atomic anymore. Checking for purely underscored arg names generally should not be something we do as the abi/contract is generally out of the control of the user. * accounts/abi: removed comments, debug println * accounts/abi: added commented out code * accounts/abi: addressed comments * accounts/abi: remove unnecessary dst.CanSet check * accounts/abi: added dst.CanSet checks
* cmd/clef, signer/core: use better terminal input for passwords, make it possible to avoid boot-up warning * all: move commonly used prompter to isolated (small) package * cmd/clef: Add new --acceptWarn to clef README * cmd/clef: rename flag 'acceptWarn' to 'suppress-bootwarn' Co-authored-by: ligi <ligi@ligi.de>
* abi/bind/backends: testcase for double-lock * accounts: add blockByNumberNoLock to avoid double-lock * backend/simulated: use stateroot, not blockhash for retrieveing state Co-authored-by: Martin Holst Swende <martin@swende.se>
* trie: implement range proof with non-existent edge proof * trie: fix cornercase * trie: consider empty range * trie: add singleSide test * trie: support all-elements range proof * trie: fix typo * trie: tiny typos and formulations Co-authored-by: Péter Szilágyi <peterke@gmail.com>
This PR reimplements the light client server pool. It is also a first step to move certain logic into a new lespay package. This package will contain the implementation of the lespay token sale functions, the token buying and selling logic and other components related to peer selection/prioritization and service quality evaluation. Over the long term this package will be reusable for incentivizing future protocols. Since the LES peer logic is now based on enode.Iterator, it can now use DNS-based fallback discovery to find servers. This document describes the function of the new components: https://gist.github.com/zsfelfoldi/3c7ace895234b7b345ab4f71dab102d4
* metrics/prometheus: define type once for histograms * metrics/prometheus: test collector
…1073) * ethstats: avoid blocking chan when received invalid stats request * ethstats: minor code polishes Co-authored-by: Péter Szilágyi <peterke@gmail.com>
* trie: fix for range proof * trie: fix typo
* build: upgrade to golangci-lint v1.27.0 * build: raise lint timeout to 3 minutes
This adds a new API method on core.BlockChain to allow interrupting running data inserts, and calls the method before shutting down the downloader. The BlockChain interrupt checks are now done through a method instead of inlining the atomic load everywhere. There is no loss of efficiency from this and it makes the interrupt protocol a lot clearer because the check is defined next to the method that sets the flag.
Co-authored-by: linjing <linjingjing@baidu.com>
* trie: add hasRightElement indicator * trie: ensure the range is monotonic increasing * trie: address comment and fix lint * trie: address comment * trie: make linter happy Co-authored-by: Péter Szilágyi <peterke@gmail.com>
This PR makes use of go 1.13 error handling, wrapping errors and using errors.Is to check a wrapped root-cause. It also removes the travis builders for go 1.11 and go 1.12.
* replace gosigar with gopsutil * removed check for whether GOOS is openbsd * removed accidental import of runtime * potential fix for difference in units between gosig and gopsutil * fixed lint error * remove multiplication factor * uses cpu.ClocksPerSec as the multiplication factor * changed dependency from shirou to renaynay (#20) * updated dep * switching back from using renaynay fork to using upstream as PRs were merged on upstream * removed empty line * optimized imports * tidied go mod
* core/vm: implement EIP 2315, subroutines for the EVM * core/vm: eip 2315 - lintfix + check jump dest validity + check ret stack size constraints logger: markdown-friendly traces, validate jumpdest, more testcase, correct opcodes * core/vm: update subroutines acc to eip: disallow walk-into * core/vm/eips: gas cost changes for subroutines * core/vm: update opcodes for EIP-2315 * core/vm: define RETURNSUB as a 'jumping' operation + review concerns Co-authored-by: Martin Holst Swende <martin@swende.se>
This moves all v4 protocol definitions to a new package, p2p/discover/v4wire. The new package will be used for low-level protocol tests.
* rpc: send websocket ping when connection is idle * rpc: use non-blocking send for websocket pingReset
…/go-ethereum/v1.9.15-2021212113514
ricardolyn
changed the base branch from
master
to
upgrade/go-ethereum/v1.9.15-2021212113514
February 15, 2021 13:07
…/go-ethereum/v1.9.16-2021215130719
…/go-ethereum/v1.9.16-2021215130719
fix: used new pattern to compare gas price comment: add info about quorum section
…against stored config
…9.16-2021215130719
Base automatically changed from
upgrade/go-ethereum/v1.9.15-2021212113514
to
master
February 19, 2021 09:46
nmvalera
reviewed
Feb 23, 2021
nmvalera
approved these changes
Feb 23, 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: Ryncol (v1.9.16)
Release notes
Geth v1.9.16 is another maintenance release containing a couple minor new features, bug fixes, and block processing optimizations.
This release adds the
--rpc.txfeecap
geth option, which limits transaction fees to a set value. This limit applies to transactions sent viaeth_sendTransaction
. The default limit is 1 ether. (#21212)The default value for
--rpc.gascap
is now 25M gas. It previously defaulted to unlimited gas. This applies toeth_call
and will reject calls which request more gas than the cap. (#21229)Minor new features:
geth import
command now exits with status 1 if errors have occurred. (#21244)debug_traceTransaction
RPC method now includes read storage entries in structlog output. (#21204)devp2p key
command family provides node key management tools (#21202)--passwordfile
option with theethkey generate
command (#21183)Optimizations:
big.Int
,[N]byte
and list-heavy data structures. (#21291, #21274)Bug fixes:
eth_call
now defaults to the gas cap value instead of MaxInt64. This avoids warnings for calls with unspecified gas. (#21284)For a full rundown of the changes please consult the Geth 1.9.16 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:
56 Pull Requests
M/A/R
(files changed)
A/R
(lines changed)
cmd/ethkey: support --passwordfile in generate command
cmd/ethkey
(5)cmd/ethkey/utils.go
(8)cmd/ethkey/changepassword.go
(4)cmd/ethkey/generate.go
(4)cmd/ethkey/inspect.go
(4)cmd/ethkey/message.go
(4)ethstats: use timer instead of time.Sleep
ethstats
(1)ethstats/ethstats.go
(266)core/vm: use uint256 in EVM implementation
core/vm
(18)eth/tracers
(1)go.mod
(1)go.sum
(1)core/vm/instructions.go
(1154)core/vm/intpool.go
(234)core/vm/instructions_test.go
(204)core/vm/intpool_test.go
(110)core/vm/stack.go
(68)core/state: avoid escape analysis fault when accessing cached state
core/state
(2)core/state/statedb.go
(12)core/state/state_object.go
(8)accounts/keystore: fix typo in error message
accounts/keystore
(1)accounts/keystore/keystore.go
(4)accounts/abi: make GetType public again
accounts/abi
(3)accounts/abi/error.go
(28)accounts/abi/type.go
(18)accounts/abi/unpack.go
(16)eth/downloader: fix spuriously failing tests
eth/downloader
(1)miner
(1)eth/downloader/downloader_test.go
(60)miner/worker_test.go
(8)core, eth, internal: extend structLog tracer
core/vm
(2)eth/fetcher
(1)core/vm/logger.go
(122)eth/fetcher/tx_fetcher.go
(28)core/vm/logger_test.go
(16)build, ethapi, bls12381: fix typos
crypto/bls12381
(2)internal/build
(1)internal/ethapi
(1)crypto/bls12381/fp6.go
(24)crypto/bls12381/fp2.go
(8)internal/build/azure.go
(4)internal/ethapi/api.go
(4)deps: update uint256 to 1.1.0
go.mod
(1)go.sum
(1)go.sum
(12)go.mod
(4)internal/web3ext: add missing params to the debug_accountRange
internal/web3ext
(1)internal/web3ext/web3ext.go
(6)fix peer Unregister peerSet unlock
eth/downloader
(1)eth/downloader/peer.go
(4)core: filter out txs with invalid signatures as soon as possible
core
(1)core/tx_pool.go
(28)core/rawdb: fix misplaced tailId and itemOffset in freezer
core/rawdb
(2)core/rawdb/freezer_table_test.go
(92)core/rawdb/freezer_table.go
(50)cmd, eth, internal, les: add gasprice cap
eth
(3)internal/ethapi
(2)cmd/geth
(2)les
(1)cmd/utils
(1)eth/gen_config.go
(32)cmd/utils/flags.go
(16)internal/ethapi/api.go
(14)eth/config.go
(10)eth/api_backend.go
(8)go.mod
(1)go.sum
(1)whisper : use timer.Ticker instead of sleep
whisper/whisperv6
(1)whisper/whisperv6/whisper.go
(20)core/rawdb: Fix high memory usage in freezer
core/rawdb
(1)core/rawdb/freezer.go
(4)common/fdlimit: build on DragonflyBSD
common/fdlimit
(1)go.mod
(1)go.sum
(1)common/fdlimit/fdlimit_bsd.go
(8)go.sum
(8)go.mod
(4)whisper: fix time.sleep by time.ticker in whisper_test
whisper/whisperv6
(1)whisper/whisperv6/whisper_test.go
(60)p2p: measure packet throughput too, not just bandwidth
p2p
(2)p2p/peer.go
(2)p2p/rlpx.go
(2)cmd/devp2p: add commands for node key management
cmd/devp2p
(2)cmd/devp2p/keycmd.go
(210)cmd/devp2p/main.go
(2)crypto/secp256k1: enable 128-bit int code and endomorphism optimization
crypto/secp256k1
(1)crypto/secp256k1/secp256.go
(26)eth: don't block if transaction broadcast loop is returned
eth
(2)eth/peer.go
(36)eth/handler.go
(4)trie: reduce allocs in insertPreimage
trie
(1)trie/database.go
(10)core/vm: fix incorrect computation of discount
core/vm
(2)core/vm/contracts_test.go
(94)core/vm/contracts.go
(36)cmd/geth: import command exit with status code 1 if import returns error
cmd/geth
(1)cmd/geth/chaincmd.go
(12)eth: returned revert reason in traceTx
eth
(1)eth/api_tracer.go
(14)utils: fix ineffectual miner config flags
cmd/utils
(1)cmd/utils/flags.go
(8)cmd: abstract `getPassPhrase` functions into one
cmd/utils
(2)cmd/ethkey
(2)cmd/clef
(1)cmd/geth
(1)cmd/utils/prompt_test.go
(148)cmd/utils/prompt.go
(124)cmd/geth/accountcmd.go
(82)cmd/clef/main.go
(56)cmd/ethkey/utils.go
(48)cmd/evm: add state transition tool for testing
cmd/evm/testdata/7
(4)cmd/evm/internal/t8ntool
(4)cmd/evm/testdata/2
(4)cmd/evm/testdata/3
(4)cmd/evm/testdata/4
(4)cmd/evm/testdata/5
(4)cmd/evm
(3)cmd/evm/testdata/1
(3)cmd/evm/internal/t8ntool/transition.go
(552)cmd/evm/README.md
(536)cmd/evm/internal/t8ntool/execution.go
(510)cmd/evm/internal/t8ntool/flags.go
(198)cmd/evm/internal/t8ntool/gen_stenv.go
(160)core: types: less allocations when hashing and tx handling
core
(3)trie
(2)core/types
(2)crypto
(1)eth/gasprice
(1)core/tx_list_test.go
(38)crypto/crypto.go
(38)core/types/block.go
(34)trie/hasher.go
(28)core/types/transaction.go
(24)go.mod: bump gopsutil version
go.sum
(1)go.mod
(1)go.mod
(4)go.sum
(4)go mod: update golang.org/x/net and golang.org/x/crypto
go.mod
(1)go.sum
(1)go.sum
(16)go.mod
(8)eth/downloader: fixes data race between synchronize and other methods
eth/downloader
(3)eth/downloader/downloader.go
(120)eth/downloader/modes.go
(6)eth/downloader/downloader_test.go
(4)cmd/geth: LES priority client test
cmd/geth/testdata
(4)cmd/geth
(1)cmd/geth/les_test.go
(360)cmd/geth/testdata/clique.json
(48)cmd/geth/testdata/key.prv
(2)cmd/geth/testdata/password.txt
(2)rlp: pool listheads to reduce allocations
rlp
(1)rlp/encode.go
(58)core, txpool: less allocations when handling transactions
core
(4)common/math
(1)core/types
(1)core/tx_list.go
(258)core/tx_list_test.go
(38)core/tx_pool.go
(36)core/tx_pool_test.go
(36)core/types/transaction.go
(22)rpc, internal/ethapi: default rpc gascap at 25M + better error message
eth
(3)internal/ethapi
(2)les
(1)cmd/utils
(1)core
(1)internal/ethapi/api.go
(42)cmd/utils/flags.go
(20)eth/gen_config.go
(14)eth/config.go
(10)core/tx_pool_test.go
(6)internal/ethapi: default gas to maxgascap, not max int64
internal/ethapi
(1)internal/ethapi/api.go
(10)ethapi: don't crash when keystore-specific methods are called but external signer used
console
(1)internal/ethapi
(1)internal/ethapi/api.go
(60)console/console.go
(6)les/checkpointoracle: don't lookup checkpoint more than once per minute
les/checkpointoracle
(1)les/checkpointoracle/oracle.go
(32)eth/gasprice: lighter gas price oracle for light client
eth/gasprice
(2)cmd/utils
(1)eth
(1)eth/gasprice/gasprice.go
(246)eth/gasprice/gasprice_test.go
(236)eth/config.go
(42)cmd/utils/flags.go
(22)cmd/geth: allow configuring metrics HTTP server on separate endpoint
cmd/geth
(2)mobile
(1)cmd/utils
(1)internal/debug
(1)metrics/exp
(1)cmd/utils/flags.go
(46)metrics/exp/exp.go
(30)internal/debug/flags.go
(20)cmd/geth/chaincmd.go
(4)cmd/geth/main.go
(4)build/ci: handle split up listing
build
(1)internal/build
(1)internal/build/azure.go
(60)build/ci.go
(6)rlp: reduce allocations for big.Int and byte array encoding
rlp
(3)core/types
(1)rlp/encode.go
(276)rlp/encode_test.go
(132)core/types/block_test.go
(114)rlp/typecache.go
(8)cmd, node: dump empty value config
cmd/utils
(1)node
(1)cmd/utils/flags.go
(26)node/config.go
(24)cmd/clef: Update README with external v6.0.0 & internal v7.0.1 APIs
cmd/clef
(1)cmd/clef/README.md
(544)cmd/devp2p: add discv4 test suite
cmd/devp2p/internal/v4test
(2)internal/utesting
(2)cmd/devp2p
(1)go.sum
(1)cmd/devp2p/internal/v4test/discv4tests.go
(934)internal/utesting/utesting.go
(380)cmd/devp2p/internal/v4test/framework.go
(246)internal/utesting/utesting_test.go
(110)cmd/devp2p/discv4cmd.go
(102)cmd/clef: Fix broken link in README and other minor fixes
cmd/clef
(1)cmd/clef/README.md
(24)eth: increase timeout in TestBroadcastBlock
eth
(1)eth/handler_test.go
(18)go.mod: upgrade to github.com/golang/snappy with arm64 asm
go.mod
(1)go.sum
(1)go.sum
(14)go.mod
(4)eth/downloader: fix peer idleness tracking when restarting statesync
eth/downloader
(2)eth/downloader/statesync.go
(142)eth/downloader/downloader.go
(62)common/math: use math/bits intrinsics for Safe*
common/math
(1)common/math/integer.go
(42)cmd/geth, cmd/puppeth: replace deprecated rpc and ws flags in tests and docs
cmd/geth
(2)cmd/puppeth
(2)README.md
(1)README.md
(40)cmd/geth/consolecmd_test.go
(8)cmd/puppeth/module_explorer.go
(8)cmd/geth/les_test.go
(4)cmd/puppeth/module_wallet.go
(4)accounts/external: remove dependency on internal/ethapi
accounts/external
(1)accounts/external/backend.go
(18)151 Changed files
core/vm/instructions.go
cmd/devp2p/internal/v4test/discv4tests.go
cmd/evm/internal/t8ntool/transition.go
cmd/clef/README.md
#21298
cmd/evm/README.md
cmd/evm/internal/t8ntool/execution.go
cmd/evm/transition-test.sh
internal/utesting/utesting.go
cmd/geth/les_test.go
#21317
rlp/encode.go
#21291
ethstats/ethstats.go
eth/gasprice/gasprice.go
#21265
cmd/devp2p/internal/v4test/framework.go
eth/gasprice/gasprice_test.go
core/vm/intpool.go
cmd/devp2p/keycmd.go
core/vm/instructions_test.go
cmd/evm/internal/t8ntool/flags.go
eth/downloader/downloader.go
#21260
cmd/evm/internal/t8ntool/gen_stenv.go
cmd/utils/flags.go
#21271
#21296
#20409
#21229
#21290
cmd/utils/prompt_test.go
eth/downloader/statesync.go
rlp/encode_test.go
internal/ethapi/api.go
#21210
#21284
#21279
#21229
core/vm/logger.go
#21204
cmd/utils/prompt.go
core/state/dump.go
core/types/block_test.go
core/vm/intpool_test.go
internal/utesting/utesting_test.go
cmd/devp2p/discv4cmd.go
core/vm/contracts_test.go
core/rawdb/freezer_table_test.go
cmd/geth/accountcmd.go
core/vm/eips.go
core/vm/stack.go
eth/downloader/downloader_test.go
#21201
internal/build/azure.go
#21293
core/vm/int_pool_verifier.go
whisper/whisperv6/whisper_test.go
cmd/evm/main.go
cmd/clef/main.go
eth/config.go
#20409
#21229
core/vm/common.go
cmd/evm/testdata/1/txs.json
cmd/ethkey/utils.go
#21219
core/vm/gas_table.go
core/rawdb/freezer_table.go
cmd/geth/testdata/clique.json
core/vm/int_pool_verifier_empty.go
eth/gen_config.go
#21229
cmd/evm/poststate.json
core/tx_pool.go
#21265
#21232
common/math/integer.go
#21316
README.md
go.sum
#21241
#21237
#21206
#21304
#21276
#21275
#21163
crypto/crypto.go
core/tx_list_test.go
#21232
core/vm/contracts.go
eth/peer.go
core/vm/interpreter.go
core/types/block.go
cmd/evm/testdata/3/alloc.json
cmd/evm/testdata/2/alloc.json
cmd/evm/testdata/4/alloc.json
les/checkpointoracle/oracle.go
metrics/exp/exp.go
accounts/abi/error.go
cmd/evm/testdata/4/txs.json
trie/hasher.go
eth/fetcher/tx_fetcher.go
cmd/evm/testdata/2/txs.json
cmd/evm/testdata/3/txs.json
crypto/secp256k1/secp256.go
core/vm/logger_test.go
#21204
node/config.go
core/types/transaction.go
#21232
cmd/evm/testdata/1/alloc.json
crypto/bls12381/fp6.go
cmd/evm/testdata/7/alloc.json
cmd/evm/testdata/5/env.json
tests/init.go
go.mod
#21241
#21237
#21206
#21304
#21276
#21275
whisper/whisperv6/whisper.go
internal/debug/flags.go
tests/state_test_util.go
core/vm/contract.go
eth/handler_test.go
accounts/external/backend.go
accounts/abi/type.go
core/tx_list.go
#21232
cmd/evm/testdata/3/env.json
cmd/evm/testdata/4/env.json
accounts/abi/unpack.go
cmd/geth/chaincmd.go
#21290
cmd/evm/testdata/2/env.json
eth/api_tracer.go
cmd/evm/testdata/7/env.json
core/vm/memory.go
cmd/evm/testdata/1/env.json
core/vm/logger_json.go
cmd/evm/testdata/7/readme.md
core/state/statedb.go
les/api_backend.go
#21229
eth/api_backend.go
#21229
trie/committer.go
trie/database.go
miner/worker_test.go
core/vm/gas.go
rlp/typecache.go
cmd/puppeth/module_explorer.go
common/fdlimit/fdlimit_bsd.go
crypto/bls12381/fp2.go
cmd/geth/consolecmd_test.go
cmd/ethkey/changepassword.go
#21219
core/state/state_object.go
core/state/state_test.go
cmd/evm/testdata/4/readme.md
cmd/geth/main.go
#21290
internal/ethapi/backend.go
#21229
eth/downloader/modes.go
core/tx_pool_test.go
#21232
console/console.go
internal/web3ext/web3ext.go
build/ci.go
cmd/ethkey/generate.go
cmd/evm/testdata/3/readme.md
params/version.go
accounts/keystore/keystore.go
eth/tracers/tracer.go
core/vm/evm.go
core/rawdb/freezer.go
mobile/geth.go
cmd/ethkey/message.go
eth/downloader/peer.go
cmd/ethkey/inspect.go
eth/handler.go
cmd/puppeth/module_wallet.go
cmd/geth/testdata/key.prv
cmd/geth/testdata/password.txt
cmd/evm/testdata/5/txs.json
cmd/evm/testdata/7/txs.json
cmd/devp2p/main.go
p2p/rlpx.go
cmd/evm/testdata/5/alloc.json
cmd/geth/usage.go
cmd/evm/testdata/2/readme.md
cmd/evm/testdata/5/readme.md
p2p/peer.go
cmd/geth/testdata/blockchain.blocks