Skip to content
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.14 #1130

Merged
merged 95 commits into from
Feb 15, 2021

Conversation

ricardolyn
Copy link
Contributor

@ricardolyn ricardolyn commented Feb 11, 2021

TODO

Plan & Analyse

  • Review the Release Notes
  • Review PRs in the section below

As you review, list extra changes and/or tests to be implemented to ensure compatibility with GoQuorum specific features.

Build & Test

  • Pull and checkout PR branch locally, then merge GoQuorum master into this branch
  • Resolve conflicts, taking into account the prior analysis
  • Implement required changes until all unit tests pass
  • Implement required changes until acceptance tests pass
  • Implement extra changes and/or tests

Extra Changes & Tests

Go-Ethereum Release: Pink Marble (v1.9.14)

  • Version: v1.9.14
  • Published: 2020-05-13T09:36:41Z

Release notes

Geth v1.9.14 is a regular maintenance release, but is also packs a punch with some interesting new features!

Ethereum mainnet currently contains over 700M transactions. Each full node maintains a search index, stating that transactions with hash H is stored in block B. This allows you to look up an arbitrary transaction from the past (at a significant storage cost). But how often do you look up transactions from years ago?

Geth v1.9.14 ships a --txlookuplimit flag, which specifies the number of recent blocks you want to maintain the search index for (by default it's 0 = since genesis). At its most extreme, you can set it to 1, to prune all past indexes. At the time of release, this reduces your LevelDB SSD footprint by 32GB! You can modify this flag at will, Geth will unindex/reindex in the background based on the current setting. If you unindex a lot of transactions, you might need to compact your database to reclaim the space immediately via debug.chaindbCompact().

Deleting transaction indexes locally is fine since they are not used in consensus nor in synchronization, so network health is unaffected. Light servers for now do need to maintain the full index since light clients rely on them. Huge props to @rjl493456442 and @holiman for this work (#20302).

txlookuplimit

In the current release, we've reworked gas estimation so that reverting transactions will give you a proper error, bubbling up the EVM revert reason (#20830). The release also renamed most of the RPC API related flags to make them consistent with our namespace style, but don't worry, the deprecated flags will keep working for the foreseeable future (#20935).

A rundown of shipped features:

  • Implement background transaction indexing and transaction index deletion (#20302).
  • Improve gas estimation to return the failure/revert reason too if available (#20830).
  • Make light client chain selection logic similar to full nodes on Clique PoA (#20931).
  • Drop the --override.istanbul and --override.muirglacier flags (#20942).
  • Rename a significant number of flags to have consistent namespaces (#20935).
  • Optimize the ABI decoder to only calculate method IDs once (#20895).
  • Remove legacy v5 discovery bootnodes used by LES (#20949).
  • Various ABI package refactors and cleanups (#21009, #21022).
  • Support overloaded struct fields in the ABI parser (#21060).
  • Implement account and storage trie range proofs (#20908).
  • Implement snapshot storage iteration (#20971).

A rundown of fixed bugs:

  • In case of a corrupted database, fail block processing, don't report bad block (#21039).
  • Fix a fast sync regression that didn't properly abort on premature shutdown (#20988).
  • Fix the logger to properly escape all special characters in context fields (#20987).
  • Fix the snapshot journal reloading to not lose deleted account markers (#21003).
  • Fix a trie data race when accessing preimages through the RPC APIs (#20923).
  • Fix the TCP P2P dialer to reject enode IDs that advertise TCP port 0 (#21008).
  • Fix gas estimation to cap max attempted usage at account balance (#21043).
  • Fix the Java abigen code generator to support void return types (#21002).
  • Fix the memory capper to be more aggressive on 32bit platforms (#21028).
  • Fix a data race in key import if the same is imported concurrently (#20915).
  • Fix a data race in the snapshot iteration (upcoming protocol) (#20948).
  • Fix a freezer termination annoyance that printed warnings (#21010).
  • Fix the state dumper to also include the zero address (#21038).
  • Fix an ethstats regression that was leaking tickers (#21071).
  • Fix receipt loss in empty Clique blocks after a crash (#21045).
  • Fix a memory leak in the snapshot storage iteration (#21036).
  • Fix accidental snapshot creation on archive nodes (#21025).
  • Fix startup parameters of Windows .lnk files (#21055).

For a full rundown of the changes please consult the Geth 1.9.14 release milestone.


As with all our previous releases, you can find the:

Codebase changes assessment

Legend

File Stats: (A) Added, (M) Modified and (R) Removed

Line Stats: (A) Added and (R) Removed

Assessment:

  • ✅ No conflict expected
  • ⚠ Review required to assess changes
  • ‼️ Conflicts expected and review required

71 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
⚠️ #20918 p2p/discover: add new methods to udpV5 2/0/0
p2p/discover (2)
42/0
p2p/discover/v5_udp_test.go (44)
p2p/discover/v5_udp.go (40)
#20933 event: fix inconsistency in Lock and Unlock 1/0/0
event (1)
2/2
event/event.go (8)
#20895 accounts/abi: Prevent recalculation of internal fields 14/0/0
accounts/abi (9)
accounts/abi/bind (3)
signer/fourbyte (2)
273/233
accounts/abi/abi.go (248)
accounts/abi/method.go (238)
accounts/abi/abi_test.go (154)
accounts/abi/event.go (138)
accounts/abi/argument.go (110)
⚠️ #20942 Remove override muir and override istanbul 8/0/0
eth (3)
cmd/geth (2)
cmd/utils (1)
core (1)
les (1)
2/44
core/genesis.go (20)
cmd/utils/flags.go (16)
eth/gen_config.go (16)
cmd/geth/config.go (14)
eth/config.go (12)
⚠️ #20923 trie: fix concurrent usage of secKeyBuf, ref #20920 1/0/0
trie (1)
25/11
trie/database.go (72)
⚠️ #20948 snapshot: add Unlock before return/panic 1/0/0
core/state/snapshot (1)
1/0
core/state/snapshot/iterator.go (2)
#20951 p2p: defer wait group done in protocol start 1/0/0
p2p (1)
1/1
p2p/peer.go (4)
⚠️ #20953 core/state/snapshot: make difflayer account iterator seek operation inclusive 2/0/0
core/state/snapshot (2)
18/5
core/state/snapshot/iterator_test.go (42)
core/state/snapshot/iterator.go (4)
‼️ #20936 go.mod : update fastcache latest 1.5.7 2/0/0
go.mod (1)
go.sum (1)
3/13
go.sum (26)
go.mod (6)
‼️ #20830 all: improve EstimateGas API 30/0/0
core/vm (10)
core (5)
eth/tracers/testdata (3)
core/state/snapshot (3)
accounts/abi (2)
accounts/abi/bind/backends (2)
internal/ethapi (1)
eth (1)
eth/tracers (1)
graphql (1)
cmd/geth (1)
543/231
core/state_transition.go (258)
accounts/abi/bind/backends/simulated_test.go (240)
internal/ethapi/api.go (182)
accounts/abi/bind/backends/simulated.go (124)
core/vm/gas_table.go (92)
#20931 core: fix the condition of reorg 1/0/0
core (1)
11/2
core/headerchain.go (26)
⚠️ #20915 accounts/keystore: fix race-condition in Import/ImportECDSA 3/0/0
accounts/keystore (2)
cmd/geth (1)
102/5
accounts/keystore/keystore_test.go (170)
accounts/keystore/keystore.go (26)
cmd/geth/accountcmd_test.go (18)
⚠️ #20908 trie: initial implementation for range proof 3/0/0
trie (2)
les (1)
400/15
trie/proof.go (442)
trie/proof_test.go (376)
les/odr_requests.go (12)
⚠️ #20970 core/state/snapshot: fix binary iterator 2/0/0
core/state/snapshot (2)
66/12
core/state/snapshot/iterator_test.go (112)
core/state/snapshot/iterator_binary.go (44)
⚠️ #20972 p2p/enode: update code comment 1/0/0
p2p/enode (1)
1/1
p2p/enode/urlv4.go (4)
‼️ #20988 eth: fix shutdown regression to abort downloads, not just cancel 2/0/0
eth/downloader (1)
eth (1)
3/2
eth/downloader/downloader.go (6)
eth/sync.go (4)
‼️ #20956 node: shut down all node-related HTTP servers gracefully 4/0/0
node (2)
cmd/geth (1)
cmd/clef (1)
48/42
node/node.go (132)
node/endpoints.go (24)
cmd/clef/main.go (14)
cmd/geth/retesteth.go (10)
⚠️ #20903 accounts/abi: added abi test cases, minor bug fixes 9/1/0
accounts/abi (9)
accounts/abi/bind (1)
1323/1188
accounts/abi/packing_test.go (1976)
accounts/abi/pack_test.go (1262)
accounts/abi/unpack_test.go (676)
accounts/abi/abi_test.go (502)
accounts/abi/bind/base_test.go (430)
#20982 core: add skip in AddChildIndexer() to avoid double lock 1/0/0
core (1)
3/0
core/chain_indexer.go (6)
#19483 rpc: make ExampleClientSubscription work with the geth API 1/0/0
rpc (1)
6/5
rpc/client_example_test.go (22)
⚠️ #20961 core: improve TestLogRebirth 1/0/0
core (1)
70/139
core/blockchain_test.go (418)
‼️ #20992 go.mod: upgrade to golang-lru v0.5.4 2/0/0
go.mod (1)
go.sum (1)
3/3
go.sum (8)
go.mod (4)
#20952 rpc: Respond to empty JSON-RPC requests with an HTTP OK status code 2/0/0
rpc (2)
57/10
rpc/http_test.go (132)
rpc/http.go (2)
⚠️ #20940 event, whisper/whisperv6: use defer when possible 2/0/0
event (1)
whisper/whisperv6 (1)
2/2
event/event.go (4)
whisper/whisperv6/whisper.go (4)
#20987 log: properly escape character sequences 5/0/0
signer/core (2)
signer/fourbyte (2)
log (1)
35/57
log/format.go (96)
signer/core/cliui.go (28)
signer/fourbyte/abi.go (28)
signer/core/signed_data.go (24)
signer/fourbyte/validation.go (8)
‼️ #20996 go.mod: upgrade to goupnp v1.0.0 2/0/0
go.mod (1)
go.sum (1)
10/3
go.sum (14)
go.mod (12)
⚠️ #20971 core/state/snapshot: implement storage iterator 13/0/0
core/state/snapshot (11)
core/state (1)
tests (1)
1088/196
core/state/snapshot/iterator_test.go (778)
core/state/snapshot/conversion.go (530)
core/state/snapshot/iterator.go (430)
core/state/snapshot/iterator_binary.go (280)
core/state/snapshot/iterator_fast.go (276)
⚠️ #21003 core/state/snapshot: fix journal nil deserialziation 1/0/0
core/state/snapshot (1)
10/2
core/state/snapshot/journal.go (24)
‼️ #21004 core/state/snapshot: fix trie generator reporter 2/0/0
core/state/snapshot (1)
go.sum (1)
3/6
core/state/snapshot/conversion.go (16)
go.sum (2)
⚠️ #20998 accounts/external: fetch external accounts 1/0/0
accounts/external (1)
6/0
accounts/external/backend.go (12)
‼️ #21014 go.sum: run go mod tidy 1/0/0
go.sum (1)
0/6
go.sum (12)
⚠️ #21012 les: remove invalid use of t.Fatal in TestHandshake 1/0/0
les (1)
3/2
les/peer_test.go (10)
⚠️ #20997 accounts/external: convert signature v value to 0/1 2/0/0
accounts (1)
accounts/external (1)
10/3
accounts/external/backend.go (22)
accounts/accounts.go (4)
⚠️ #21009 accounts/abi: removed Kind from Type struct 5/0/0
accounts/abi (5)
89/100
accounts/abi/type_test.go (234)
accounts/abi/unpack.go (48)
accounts/abi/reflect.go (44)
accounts/abi/type.go (28)
accounts/abi/error.go (24)
#21020 accounts/abi: common/math: moved U256Bytes 8/0/1
accounts/abi (4)
common/math (2)
accounts/abi/bind (1)
contracts/checkpointoracle/contract (1)
signer/core (1)
22/48
accounts/abi/numbers_test.go (66)
common/math/big_test.go (20)
accounts/abi/numbers.go (14)
accounts/abi/pack.go (12)
common/math/big.go (12)
⚠️ #21021 tests: cleanup snapshot generator goroutine leak 5/0/0
tests (3)
cmd/evm (1)
eth/tracers (1)
30/19
tests/state_test_util.go (52)
tests/vm_test_util.go (20)
tests/state_test.go (14)
eth/tracers/tracers_test.go (8)
cmd/evm/staterunner.go (4)
⚠️ #21023 core/state/snapshot: release iterator after verification 1/0/0
core/state/snapshot (1)
5/1
core/state/snapshot/conversion.go (12)
#20935 cmd/utils: renames flags related to http-rpc server 6/1/0
cmd/geth (3)
cmd/utils (2)
internal/debug (1)
cmd/clef (1)
420/143
cmd/utils/flags.go (392)
cmd/utils/flags_legacy.go (326)
internal/debug/flags.go (148)
cmd/geth/main.go (114)
cmd/geth/usage.go (106)
‼️ #21027 build: raise test timeout back to 10 mins 1/0/0
build (1)
1/1
build/ci.go (4)
⚠️ #21026 tests: skip consensus test using 1GB RAM 1/0/0
tests (1)
3/1
tests/state_test.go (8)
⚠️ #21022 account/abi: remove superfluous type checking 6/0/1
accounts/abi (7)
148/153
accounts/abi/type_test.go (232)
accounts/abi/type.go (120)
accounts/abi/unpack.go (96)
accounts/abi/numbers.go (76)
accounts/abi/reflect.go (46)
⚠️ #21028 cmd/geth: handle memfixes on 32bit arch with large RAM 1/0/0
cmd/geth (1)
4/0
cmd/geth/main.go (8)
‼️ #21032 eth: skip transaction announcer goroutine on eth<65 1/0/0
eth (1)
3/2
eth/peer.go (10)
‼️ #21025 Fix snapshot surprise 1/0/0
eth (1)
6/2
eth/backend.go (16)
⚠️ #21034 trie: fix TestBadRangeProof unit test 1/0/0
trie (1)
14/3
trie/proof_test.go (34)
#21035 eth/downloader: minor typo fixes in comments 4/0/0
eth/downloader (3)
trie (1)
7/8
eth/downloader/queue.go (10)
eth/downloader/downloader.go (8)
trie/sync.go (8)
eth/downloader/downloader_test.go (4)
‼️ #20984 core: avoid double-lock in tx_pool_test 1/0/0
core (1)
1/1
core/tx_pool_test.go (4)
⚠️ #21036 core/state/snapshot: don't create storage list for non-existing accounts 1/0/0
core/state/snapshot (1)
5/0
core/state/snapshot/difflayer.go (10)
⚠️ #21037 core/state/snapshot: fix typo 1/0/0
core/state/snapshot (1)
2/2
core/state/snapshot/difflayer.go (8)
⚠️ #21002 accounts/abi/bind: add void if no return args specified 1/0/0
accounts/abi/bind (1)
1/1
accounts/abi/bind/template.go (4)
⚠️ #21038 core/state: include zero-address in state dump if present 1/0/0
core/state (1)
4/4
core/state/dump.go (16)
‼️ #21039 core/state: abort commit if errors have occurred 2/0/0
core/state (2)
50/0
core/state/statedb_test.go (94)
core/state/statedb.go (6)
‼️ #21051 core/state: avoid statedb.dbErr due to emptyCode 1/0/0
core/state (1)
15/4
core/state/statedb.go (38)
#21055 build: Fix CLI params for windows LNK files 1/0/0
build (1)
3/3
build/nsis.install.nsh (12)
‼️ #21043 accounts/abi/bind/backend, internal/ethapi: recap gas limit with balance 3/0/0
accounts/abi/bind/backends (2)
internal/ethapi (1)
120/4
accounts/abi/bind/backends/simulated_test.go (134)
internal/ethapi/api.go (70)
accounts/abi/bind/backends/simulated.go (44)
‼️ #21056 core/state: make GetCodeSize mirror GetCode implementation wise 2/0/0
core/state (2)
20/14
core/state/state_object.go (34)
core/state/statedb.go (34)
⚠️ #20949 params, cmd/utils, mobile: remove DiscoveryV5Bootnodes 6/0/0
cmd/geth (2)
cmd/utils (2)
mobile (1)
params (1)
26/33
cmd/utils/flags.go (56)
cmd/utils/flags_legacy.go (20)
params/bootnodes.go (18)
cmd/geth/main.go (8)
cmd/geth/usage.go (8)
#21050 console: fix some goja-related crashes/errors in the bridge 1/0/0
console (1)
10/1
console/bridge.go (22)
‼️ #21010 core/rawdb: Stop freezer process as part of freezer.Close() 2/0/0
core/rawdb (2)
26/8
core/rawdb/freezer.go (60)
core/rawdb/database.go (8)
#21008 p2p: add low port check in dialer 3/0/0
p2p (1)
p2p/discover (1)
p2p/simulations/adapters (1)
16/7
p2p/dial.go (38)
p2p/discover/v4_udp.go (4)
p2p/simulations/adapters/types.go (4)
‼️ #20302 Transaction background indexing/unindexing + improved chain initiation from freezer 26/3/1
core (8)
eth (8)
core/rawdb (6)
cmd/geth (4)
consensus/clique (2)
accounts/abi/bind/backends (1)
cmd/utils (1)
1143/194
core/rawdb/chain_iterator.go (610)
core/blockchain_test.go (538)
core/rlp_test.go (402)
core/blockchain.go (294)
core/rawdb/freezer_reinit.go (254)
⚠️ #21061 params: bump CHTs for the v1.9.14 release 1/0/0
params (1)
16/16
params/config.go (64)
⚠️ #21062 core/tests: fixup blockchain tests 1/0/0
core (1)
6/6
core/blockchain_test.go (24)
⚠️ #21033 les: drop the message if the entire p2p connection is stuck 2/0/0
les (2)
2/23
les/peer.go (46)
les/server_handler.go (4)
#21064 core/rawdb : log format fix for Unindexing transaction 1/0/0
core/rawdb (1)
1/1
core/rawdb/chain_iterator.go (4)
#21065 ``core/rawdb remove unused math`` 1/0/0
core/rawdb (1)
0/1
⚠️ #20736 cmd, miner: add noempty-precommit flag 2/0/0
miner (2)
44/7
miner/worker.go (68)
miner/miner.go (34)
⚠️ #21057 accounts/abi: accounts/abi/bind: Move topics to abi package 8/0/2
accounts/abi/bind (6)
accounts/abi (4)
230/142
accounts/abi/topics_test.go (270)
accounts/abi/bind/bind.go (154)
accounts/abi/bind/util_test.go (80)
accounts/abi/bind/template.go (68)
accounts/abi/topics.go (62)
#21060 accounts/abi: allow overloaded argument names 2/0/0
accounts/abi (2)
28/5
accounts/abi/type.go (46)
accounts/abi/abi_test.go (20)
‼️ #21045 core: fix missing receipt 1/0/0
core (1)
14/0
core/blockchain.go (28)
⚠️ #21071 ethstats: stop report ticker in each loop cycle #21070 1/0/0
ethstats (1)
13/10
ethstats/ethstats.go (46)

172 Changed files

🔍 File Lines Changed Linked PR
accounts/abi/packing_test.go 1976 #20903
accounts/abi/pack_test.go 1290 #20895
#20903
⚠️ core/blockchain_test.go 964 #20961
#21062
#20302
⚠️ core/state/snapshot/iterator_test.go 900 #20953
#20830
#20970
#20971
⚠️ accounts/abi/abi_test.go 730 #20830
#20895
#20903
#21020
#21060
⚠️ accounts/abi/unpack_test.go 676 #20903
#21022
core/rawdb/chain_iterator.go 608 #21065
#21064
#20302
⚠️ core/state/snapshot/conversion.go 534 #21023
#20971
#21004
‼️ cmd/utils/flags.go 510 #20942
#20935
#20949
#20302
accounts/abi/bind/base_test.go 482 #20903
#21057
trie/proof.go 442 #20908
⚠️ core/state/snapshot/iterator.go 436 #20953
#20948
#20971
core/rlp_test.go 402 #20302
⚠️ trie/proof_test.go 398 #20908
#21034
⚠️ accounts/abi/bind/backends/simulated_test.go 370 #20830
#21043
cmd/utils/flags_legacy.go 346 #20935
#20949
‼️ core/blockchain.go 322 #21045
#20302
⚠️ core/state/snapshot/iterator_binary.go 304 #20970
#20971
⚠️ accounts/abi/abi.go 294 #20830
#20895
⚠️ core/state/snapshot/iterator_fast.go 276 #20971
accounts/abi/type_test.go 272 #20903
#21009
#21022
accounts/abi/topics_test.go 270 #21057
‼️ core/state_transition.go 258 #20830
core/rawdb/freezer_reinit.go 254 #20302
‼️ internal/ethapi/api.go 252 #20830
#21043
⚠️ accounts/abi/method.go 238 #20895
accounts/abi/type.go 186 #21009
#21022
#21060
‼️ accounts/abi/bind/backends/simulated.go 172 #20830
#21043
#20302
accounts/keystore/keystore_test.go 170 #20915
core/rawdb/chain_iterator_test.go 164 #20302
⚠️ accounts/abi/argument.go 162 #20895
#20903
#21057
⚠️ accounts/abi/bind/bind.go 154 #20895
#21057
internal/debug/flags.go 148 #20935
accounts/abi/reflect.go 144 #20895
#20903
#21009
#21022
accounts/abi/event.go 138 #20895
⚠️ cmd/geth/main.go 136 #20942
#21028
#20935
#20949
#20302
‼️ node/node.go 132 #20956
rpc/http_test.go 132 #20952
⚠️ accounts/abi/unpack.go 126 #21009
#21022
#21057
rlp/iterator.go 120
rlp/iterator_test.go 118
⚠️ cmd/geth/usage.go 116 #20935
#20949
#20302
⚠️ core/rawdb/accessors_chain.go 112 #20302
⚠️ core/state/snapshot/difflayer.go 96 #20971
#21036
#21037
log/format.go 96 #20987
‼️ core/state/statedb_test.go 94 #21039
⚠️ core/vm/gas_table.go 92 #20830
‼️ core/vm/errors.go 88 #20830
accounts/abi/numbers.go 88 #20903
#21020
#21022
core/state/snapshot/account.go 88 #20971
‼️ core/error.go 80 #20830
⚠️ accounts/abi/bind/util_test.go 80 #21057
⚠️ accounts/abi/bind/template.go 74 #21020
#21002
#21057
⚠️ trie/database.go 72 #20923
⚠️ miner/worker.go 68 #20736
accounts/abi/numbers_test.go 66 #21020
⚠️ params/config.go 64 #21061
‼️ core/state/statedb.go 62 #20971
#21056
#21039
#21051
‼️ go.sum 62 #20992
#20936
#21004
#21014
#20996
accounts/abi/topics.go 62 #21057
‼️ core/rawdb/freezer.go 60 #21010
‼️ core/vm/instructions.go 56 #20830
⚠️ tests/state_test_util.go 56 #21021
‼️ core/vm/evm.go 54 #20830
‼️ graphql/graphql.go 52 #20830
core/rawdb/accessors_indexes.go 48 #20302
⚠️ les/peer.go 46 #21033
⚠️ ethstats/ethstats.go 46 #21071
⚠️ core/state/snapshot/snapshot_test.go 46 #20971
⚠️ p2p/discover/v5_udp_test.go 44 #20918
‼️ eth/sync.go 42 #20988
#20302
‼️ cmd/clef/main.go 42 #20956
#20935
⚠️ p2p/discover/v5_udp.go 40 #20918
p2p/dial.go 38 #21008
accounts/abi/error.go 36 #20903
#21009
#21022
signer/fourbyte/abi.go 36 #20895
#20987
⚠️ core/state/state_object.go 34 #21056
⚠️ core/vm/interpreter.go 34 #20830
⚠️ accounts/external/backend.go 34 #20997
#20998
‼️ cmd/geth/retesteth.go 34 #20830
#20956
#20935
#20302
⚠️ miner/miner.go 34 #20736
⚠️ core/state/snapshot/disklayer_test.go 32 #20830
signer/core/signed_data.go 30 #21020
#20987
⚠️ eth/gen_config.go 28 #20942
#20302
signer/core/cliui.go 28 #20987
‼️ eth/api_tracer.go 28 #20830
⚠️ tests/block_test_util.go 26 #20971
core/headerchain.go 26 #20931
⚠️ accounts/keystore/keystore.go 26 #20915
‼️ core/tx_pool.go 24 #20830
core/dao_test.go 24 #20302
⚠️ node/endpoints.go 24 #20956
‼️ cmd/geth/chaincmd.go 24 #20302
‼️ eth/backend.go 24 #20942
#21025
#20302
⚠️ accounts/abi/bind/base.go 24 #20895
#21057
⚠️ core/state/snapshot/journal.go 24 #21003
rpc/client_example_test.go 22 #19483
⚠️ tests/state_test.go 22 #21021
#21026
console/bridge.go 22 #21050
‼️ go.mod 22 #20992
#20936
#20996
common/math/big_test.go 20 #21020
⚠️ tests/vm_test_util.go 20 #21021
⚠️ core/genesis.go 20 #20942
⚠️ accounts/abi/bind/bind_test.go 18 #20895
⚠️ params/bootnodes.go 18 #20949
⚠️ cmd/geth/accountcmd_test.go 18 #20915
⚠️ core/state/snapshot/snapshot.go 18 #20971
⚠️ core/state/dump.go 16 #21038
‼️ eth/config.go 16 #20942
#20302
core/block_validator_test.go 16 #20302
⚠️ les/odr_test.go 16
‼️ core/state_processor.go 16 #20830
⚠️ eth/tracers/tracers_test.go 16 #20830
#21021
‼️ cmd/geth/config.go 14 #20942
⚠️ core/state/snapshot/difflayer_test.go 14 #20830
#20971
⚠️ eth/downloader/downloader.go 14 #20988
#21035
⚠️ core/rawdb/schema.go 12 #20302
event/event.go 12 #20933
#20940
accounts/abi/bind/util.go 12 #21057
⚠️ light/odr_test.go 12
common/math/big.go 12 #21020
⚠️ eth/handler_test.go 12 #20302
build/nsis.install.nsh 12 #21055
les/odr_requests.go 12 #20908
accounts/abi/pack.go 12 #21020
consensus/clique/clique_test.go 12 #20302
‼️ eth/peer.go 10 #21032
eth/downloader/queue.go 10 #21035
⚠️ les/peer_test.go 10 #21012
core/vm/logger.go 10 #20830
trie/sync.go 8 #21035
⚠️ core/rawdb/database.go 8 #21010
⚠️ eth/protocol_test.go 8 #20302
⚠️ core/bench_test.go 8 #20302
signer/fourbyte/fourbyte_test.go 8 #20895
signer/fourbyte/validation.go 8 #20987
⚠️ core/vm/gas_table_test.go 8 #20830
⚠️ core/vm/jump_table.go 8 #20830
⚠️ miner/worker_test.go 8
accounts/abi/event_test.go 8 #20895
⚠️ mobile/params.go 8 #20949
⚠️ core/state/snapshot/generate.go 8 #20971
⚠️ les/client.go 6 #20942
core/chain_indexer.go 6 #20982
⚠️ eth/downloader/downloader_test.go 4 #21035
eth/tracers/testdata/call_tracer_inner_create_oog_outer_throw.json 4 #20830
⚠️ les/server_handler.go 4 #21033
light/trie_test.go 4
⚠️ p2p/enode/urlv4.go 4 #20972
⚠️ eth/helper_test.go 4 #20302
‼️ core/genesis_test.go 4 #20302
⚠️ accounts/abi/method_test.go 4 #20895
⚠️ core/chain_makers_test.go 4 #20302
⚠️ whisper/whisperv6/whisper.go 4 #20940
⚠️ p2p/discover/v4_udp.go 4 #21008
⚠️ core/state_prefetcher.go 4 #20830
eth/tracers/testdata/call_tracer_throw.json 4 #20830
light/txpool_test.go 4
p2p/peer.go 4 #20951
eth/tracers/testdata/call_tracer_inner_throw_outer_revert.json 4 #20830
‼️ eth/handler.go 4 #20302
⚠️ params/version.go 4
⚠️ core/vm/opcodes.go 4 #20830
core/vm/gas.go 4 #20830
⚠️ accounts/accounts.go 4 #20997
‼️ build/ci.go 4 #21027
‼️ core/tx_pool_test.go 4 #20984
p2p/simulations/adapters/types.go 4 #21008
⚠️ cmd/evm/staterunner.go 4 #21021
consensus/clique/snapshot_test.go 4 #20302
contracts/checkpointoracle/contract/oracle.go 2 #21020
‼️ rpc/http.go 2 #20952

holiman and others added 30 commits April 15, 2020 11:07
This adds two new methods to UDPv5, AllNodes and LocalNode.

AllNodes returns all the nodes stored in the local table; this is
useful for the purposes of metrics collection and also debugging any
potential issues with other discovery v5 implementations.

LocalNode returns the local node object. The reason for exposing this
is so that users can modify and set/delete new key-value entries in
the local record.
Co-authored-by: Felix Lange <fjl@twurst.com>
* accounts/abi: prevent recalculation of ID, Sig and String

* accounts/abi: fixed unpacking of no values

* accounts/abi: multiple fixes to arguments

* accounts/abi: refactored methodName and eventName

This commit moves the complicated logic of how we assign method names
and event names if they already exist into their own functions for
better readability.

* accounts/abi: prevent recalculation of internal

In this commit, I changed the way we calculate the string
representations, sig representations and the id's of methods. Before
that these fields would be recalculated everytime someone called .Sig()
.String() or .ID() on a method or an event.

Additionally this commit fixes issue #20856 as we assign names to inputs
with no name (input with name "" becomes "arg0")

* accounts/abi: added unnamed event params test

* accounts/abi: fixed rebasing errors in method sig

* accounts/abi: fixed rebasing errors in method sig

* accounts/abi: addressed comments

* accounts/abi: added FunctionType enumeration

* accounts/abi/bind: added test for unnamed arguments

* accounts/abi: improved readability in NewMethod, nitpicks

* accounts/abi: method/eventName -> overloadedMethodName
trie: fix concurrent usage of secKeyBuf, ref #20920
* Forget Unlock in snapshot

* Remove Unlock before panic
core/state/snapshot: make difflayer account iterator seek operation inclusive
* all: seperate consensus error and evm internal error

There are actually two types of error will be returned when
a tranaction/message call is executed: (a) consensus error
(b) evm internal error. The former should be converted to
a consensus issue, e.g. The sender doesn't enough asset to
purchase the gas it specifies. The latter is allowed since
evm itself is a blackbox and internal error is allowed to happen.

This PR emphasizes the difference by introducing a executionResult
structure. The evm error is embedded inside. So if any error
returned, it indicates consensus issue happens.

And also this PR improve the `EstimateGas` API to return the concrete
revert reason if the transaction always fails

* all: polish

* accounts/abi/bind/backends: add tests

* accounts/abi/bind/backends, internal: cleanup error message

* all: address comments

* core: fix lint

* accounts, core, eth, internal: address comments

* accounts, internal: resolve revert reason if possible

* accounts, internal: address comments
* core: fix the condition of reorg

* core: fix nitpick to only retrieve head once

* core: don't reorg if received chain is longer at same diff

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
* accounts/keystore: fix race in Import/ImportECDSA

* accounts/keystore: added import/export tests

* cmd/geth: improved TestAccountImport test

* accounts/keystore: added import/export tests

* accounts/keystore: fixed naming

* accounts/keystore: fixed typo

* accounts/keystore: use mutex instead of rwmutex

* accounts: use errors instead of fmt
* trie: initial implementation for range proof

* trie: add benchmark

* trie: fix lint

* trie: fix minor issue

* trie: unset the edge valuenode as well

* trie: unset the edge valuenode as nilValuenode
It is possible to specify enode URLs using domain name since
commit b90cdba, but the code comment still said that only
IP addresses are allowed.

Co-authored-by: admin@komgo.io <KomgoRocks2018!>
eth: fix shutdown regression to abort downloads, not just cancel
Rather than just closing the underlying network listener to stop our
HTTP servers, use the graceful shutdown procedure, waiting for any
in-process requests to finish.
* accounts/abi: added documentation

* accounts/abi: reduced usage of arguments.LengthNonIndexed

* accounts/abi: simplified reflection logic

* accounts/abi: moved testjson data into global declaration

* accounts/abi: removed duplicate test cases

* accounts/abi: reworked abi tests

* accounts/abi: added more tests for abi packing

* accounts/abi/bind: refactored base tests

* accounts/abi: run pack tests as subtests

* accounts/abi: removed duplicate tests

* accounts/abi: removed unnused arguments.LengthNonIndexed

Due to refactors to the code, we do not need the arguments.LengthNonIndexed function anymore.
You can still get the length by calling len(arguments.NonIndexed())

* accounts/abi: added type test

* accounts/abi: modified unpack test to pack test

* accounts/abi: length check on arrayTy

* accounts/abi: test invalid abi

* accounts/abi: fixed rebase error

* accounts/abi: fixed rebase errors

* accounts/abi: removed unused definition

* accounts/abi: merged packing/unpacking tests

* accounts/abi: fixed [][][32]bytes encoding

* accounts/abi: added tuple test cases

* accounts/abi: renamed getMockLog -> newMockLog

* accounts/abi: removed duplicate test

* accounts/abi: bools -> booleans
This fixes a theoretical double lock condition which could occur in

    indexer.AddChildIndexer(indexer)

Nobody would ever do that though.

Co-authored-by: Felix Lange <fjl@twurst.com>
This corrects the call to eth_getBlockByNumber, which previously
returned this error:

  can't get latest block: missing value for required argument 1

Co-authored-by: Felix Lange <fjl@twurst.com>
This is a resubmit of #20668 which rewrites the problematic test
without any additional goroutines. It also documents the test better.

The purpose of this test is checking whether log events are sent
correctly when importing blocks. The test was written at a time when
blockchain events were delivered asynchronously, making the check hard
to pull off. Now that core.BlockChain delivers events synchronously
during the call to InsertChain, the test can be simplified.

Co-authored-by: BurtonQin <bobbqqin@gmail.com>
golang-lru is now a go module, and the upgrade corrects a couple
of minor issues. In particular, the library could crash if you inserted
nil into an LRU cache.
* signer: properly handle terminal escape characters

* log: use strconv conversion instead of custom escape function

* log: remove relection tests for nil
MariusVanDerWijden and others added 4 commits May 12, 2020 13:02
* accounts/abi: allow overloaded argument names

In solidity it is possible to create the following contract:
```
contract Overloader {
    struct F { uint _f; uint __f; uint f; }
    function f(F memory f) public {}
}
```
This however resulted in a panic in the abi package.

* accounts/abi fixed error handling
* core: fix missing receipt

* core: address comment
Co-authored-by: Hao Duan <duan.hao@hyperchain.cn>
@ricardolyn ricardolyn changed the base branch from master to upgrade/go-ethereum/v1.9.13-2021204155332 February 11, 2021 11:16
@CLAassistant
Copy link

CLAassistant commented Feb 11, 2021

CLA assistant check
All committers have signed the CLA.

core/state_transition.go Outdated Show resolved Hide resolved
core/state_transition.go Outdated Show resolved Hide resolved
Base automatically changed from upgrade/go-ethereum/v1.9.13-2021204155332 to master February 12, 2021 18:30
@ricardolyn ricardolyn marked this pull request as ready for review February 12, 2021 18:38
@ricardolyn ricardolyn marked this pull request as draft February 15, 2021 15:57
@ricardolyn
Copy link
Contributor Author

Moving to draft. reviewing some changes that can affect the full set of AT.

@ricardolyn
Copy link
Contributor Author

Preparing MR for AT to handle:

  • Changed the error response data: Changes in all: improve EstimateGas API ethereum/go-ethereum#20830 affected how the reverted error comes back (from release notes "we've reworked gas estimation so that reverting transactions will give you a proper error, bubbling up the EVM revert reason (#20830)"). This will require changing tests when handling reverts from evm: execution reverted to Error processing transaction request: execution reverted.

@ricardolyn
Copy link
Contributor Author

ready to review, including PR Consensys/quorum-acceptance-tests#76 that should be green after this is merged into master.

Copy link
Contributor

@nmvalera nmvalera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ricardolyn ricardolyn merged commit c668ba5 into master Feb 15, 2021
@ricardolyn ricardolyn deleted the upgrade/go-ethereum/v1.9.14-2021211111542 branch February 15, 2021 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet