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.15 #1131

Merged
merged 55 commits into from
Feb 19, 2021

Conversation

ricardolyn
Copy link
Contributor

@ricardolyn ricardolyn commented Feb 12, 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: Dextro Heat Sink (v1.9.15)

  • Version: v1.9.15
  • Published: 2020-06-08T09:01:28Z

Release notes

Geth v1.9.15 is a maintenance release containing bug fixes as well as implementations of all EIPs currently scheduled for the upcoming Berlin fork. A temporary test network for these EIPs has also been launched at https://yolonet.xyz/ and can be joined via Geth with --yolov1 flag.

The minimum Go version required to build go-ethereum is now Go 1.13.

The eth_call, eth_estimateGas and eth_sendTransaction RPC methods now return the revert reason as a JSON-RPC error when the contract executes REVERT. The returned error includes the decoded reason string in the error message, and also makes the raw REVERT data available in the error's "data" field:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": 3,
    "message": "execution reverted: some error",
    "data": "0x08c379a000000000000000000..."
  }
}

Other improvements and fixes in this release:

  • The LES 'server pool' was rewritten and can now use DNS discovery to find light servers (#20758).
  • Argument checking for natively-implemented console functions is improved (#21081, #21160).
  • Geth no longer hangs during shutdown while waiting for synced blocks to import (#21114).
  • The RPC client now sends WebSocket ping frames when connection is idle (#21142).
  • Uses of the gosigar library have been replaced by gopsutil. This restores building Geth on darwin without cgo and makes automatic database cache size selection work on OpenBSD (#21041).
  • Prometheus metrics exporting no longer sends duplicate type definitions (#21068).
  • Password input prompts in Clef now work when stdin is not a TTY (#20960).
  • Internal sync error reporting has been made more detailed (#21067).
  • EVM JUMPDEST checks are a bit faster in certain cases (#21123).
  • Fix the puppeth faucet's tweet retrieval endpoint (#21172).

The following core EIPs are implemented in this release:

  • EIP-2537: Precompile for BLS12-381 curve operations (#21018).
  • EIP-2315: JUMPSUB for the EVM (#20619).

Please note that the EIP implementations are not yet scheduled to activate and will receive further testing and development before the fork.

For a full rundown of the changes please consult the Geth 1.9.15 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

40 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
#21077 Corrections to logged error messages. 2/0/0
cmd/clef (1)
cmd/puppeth (1)
2/2
cmd/clef/main.go (4)
cmd/puppeth/wizard_genesis.go (4)
⚠️ #21058 accounts/abi: simplify reflection logic 4/0/0
accounts/abi (4)
73/150
accounts/abi/argument.go (276)
accounts/abi/reflect.go (146)
accounts/abi/unpack_test.go (16)
accounts/abi/event_test.go (8)
⚠️ #21081 console: fix unlockAccount argument count check 1/0/0
console (1)
1/1
console/bridge.go (4)
⚠️ #20960 cmd/clef, signer/core: password input fixes 12/0/1
cmd/geth (3)
console (3)
cmd/clef (2)
cmd/devp2p (1)
cmd/ethkey (1)
cmd/wnode (1)
console/prompt (1)
signer/core (1)
65/54
console/console.go (62)
cmd/clef/main.go (44)
signer/core/cliui.go (26)
console/bridge.go (18)
console/console_test.go (18)
⚠️ #20983 accounts: add blockByNumberNoLock() to avoid double-lock 2/0/0
accounts/abi/bind/backends (2)
18/2
accounts/abi/bind/backends/simulated.go (20)
accounts/abi/bind/backends/simulated_test.go (20)
#21099 whisper : cname of package go-ethereum 1/0/0
whisper/shhclient (1)
1/1
whisper/shhclient/client.go (4)
⚠️ #21000 trie: improve range proof 3/0/0
trie (2)
go.sum (1)
491/92
trie/proof_test.go (736)
trie/proof.go (426)
go.sum (4)
⚠️ #20758 les, les/lespay: implement new server pool 21/9/0
les (14)
les/lespay/client (7)
les/utils (3)
p2p/nodestate (2)
params (1)
cmd/utils (1)
core/forkid (1)
eth (1)
2884/1008
les/serverpool.go (2454)
p2p/nodestate/nodestate.go (1760)
p2p/nodestate/nodestate_test.go (778)
les/serverpool_test.go (704)
les/lespay/client/wrsiterator.go (256)
⚠️ #21113 miner: replace use of 'self' as receiver name 1/0/0
miner (1)
2/2
miner/miner.go (8)
⚠️ #21118 all: fix typos in comments 30/0/0
core/state/snapshot (5)
core (4)
cmd/clef (3)
cmd/puppeth (2)
core/vm (2)
accounts/scwallet (2)
accounts/abi/bind (2)
core/rawdb (1)
accounts/abi/bind/backends (1)
accounts/abi (1)
accounts/external (1)
accounts (1)
consensus/misc (1)
cmd/clef/docs (1)
cmd/geth (1)
consensus/clique (1)
eth/downloader (1)
37/37
core/state/snapshot/iterator.go (16)
cmd/clef/README.md (8)
cmd/clef/intapi_changelog.md (8)
cmd/puppeth/module_dashboard.go (8)
eth/downloader/downloader.go (8)
‼️ #21104 consensus/clique: remove redundant pair of parentheses 1/0/0
consensus/clique (1)
1/1
consensus/clique/api.go (4)
#21123 core/vm: improve jumpdest lookup 1/0/0
core/vm (1)
9/6
core/vm/contract.go (30)
#21085 consensus/ethash: fix flaky test by reading seal results 1/0/0
consensus/ethash (1)
7/1
consensus/ethash/sealer_test.go (16)
‼️ #21124 cmd/utils: fix default DNS discovery configuration 1/0/0
cmd/utils (1)
1/1
cmd/utils/flags.go (4)
#21068 metrics/prometheus: define TYPE once, add tests 1/1/0
metrics/prometheus (2)
118/3
metrics/prometheus/collector_test.go (220)
metrics/prometheus/collector.go (22)
⚠️ #21066 ethdb/leveldb: use timer instead of time.After 1/0/0
ethdb/leveldb (1)
5/1
ethdb/leveldb/leveldb.go (12)
⚠️ #21073 ethstats: avoid blocking chan when received invalid stats request 1/0/0
ethstats (1)
6/3
ethstats/ethstats.go (18)
⚠️ #21107 trie: fix for range proof 2/0/0
trie (2)
73/56
trie/proof.go (146)
trie/proof_test.go (112)
‼️ #21127 build: upgrade to golangci lint v1.27.0 3/0/0
build (2)
.golangci.yml (1)
18/19
build/checksums.txt (66)
.golangci.yml (4)
build/ci.go (4)
⚠️ #21114 eth: interrupt chain insertion on shutdown 3/0/0
light (1)
core (1)
eth (1)
38/22
core/blockchain.go (80)
light/lightchain.go (24)
eth/sync.go (16)
⚠️ #21132 unified clique variable name 1/0/0
consensus/clique (1)
3/3
consensus/clique/clique.go (12)
⚠️ #21130 trie: ensure the range is monotonic increasing 2/0/0
trie (2)
142/113
trie/proof.go (274)
trie/proof_test.go (236)
⚠️ #21067 eth/downloader: more context in errors 4/0/0
eth/downloader (3)
.travis.yml (1)
49/47
eth/downloader/downloader.go (70)
eth/downloader/downloader_test.go (54)
.travis.yml (40)
eth/downloader/queue.go (28)
#21041 metrics: replace gosigar with gopsutil 4/0/0
metrics (1)
cmd/geth (1)
go.mod (1)
go.sum (1)
28/25
cmd/geth/main.go (54)
metrics/cpu_enabled.go (40)
go.sum (8)
go.mod (4)
⚠️ #20619 EIP-2315: JUMPSUB for the EVM 15/0/0
core/vm (12)
eth/tracers (2)
core/vm/runtime (1)
529/52
core/vm/runtime/runtime_test.go (498)
core/vm/logger.go (200)
core/vm/opcodes.go (68)
core/vm/eips.go (66)
core/vm/instructions.go (66)
#21147 p2p/discover: move discv4 encoding to new 'v4wire' package 4/2/0
p2p/discover (4)
p2p/discover/v4wire (2)
655/516
p2p/discover/v4_udp.go (912)
p2p/discover/v4wire/v4wire.go (600)
p2p/discover/v4_udp_test.go (474)
p2p/discover/v4wire/v4wire_test.go (304)
p2p/discover/v4_lookup_test.go (30)
⚠️ #21142 rpc: send websocket ping when connection is idle 1/0/0
rpc (1)
63/3
rpc/websocket.go (132)
#21160 console: handle undefined + null in console funcs 1/1/0
console (2)
58/8
console/bridge_test.go (96)
console/bridge.go (36)
‼️ #21145 core: collect NewTxsEvent items without holding reorg lock 1/0/0
core (1)
8/7
core/tx_pool.go (30)
#21018 core/vm, crypto/bls12381, params: add bls12-381 elliptic curve precompiles 2/28/0
core/vm/testdata/precompiles (25)
crypto/bls12381 (3)
core/vm (2)
9702/485
crypto/bls12381/arithmetic_x86.s (4300)
core/vm/contracts_test.go (1258)
core/vm/testdata/precompiles/blsG1Add.json (1252)
core/vm/testdata/precompiles/blsG1Mul.json (1252)
core/vm/testdata/precompiles/blsG2Add.json (1252)
#21154 core,params,puppeth: inital support for yolo-v1 testnet 16/0/0
core/vm (5)
cmd/geth (4)
core (2)
params (2)
cmd/puppeth (1)
cmd/utils (1)
tests (1)
141/22
params/config.go (154)
cmd/utils/flags.go (44)
core/genesis.go (26)
tests/init.go (24)
core/vm/jump_table.go (18)
‼️ #21162 cmd/geth: fix the fork orders for DAO tests 2/0/0
cmd/geth (2)
6/2
cmd/geth/dao_test.go (12)
cmd/geth/genesis_test.go (4)
⚠️ #21172 acounts/keystore, cmd/faucet: fix faucet double import, fix twitter url 2/0/0
accounts/keystore (1)
cmd/faucet (1)
12/5
cmd/faucet/faucet.go (18)
accounts/keystore/keystore.go (16)
⚠️ #21173 cmd/faucet: delete old keystore when importing new faucet key 2/0/0
accounts/keystore (1)
cmd/faucet (1)
12/6
accounts/keystore/keystore.go (24)
cmd/faucet/faucet.go (12)
‼️ #21168 go.mod: upgrade go-duktape to hide unused function warning 2/0/0
go.mod (1)
go.sum (1)
3/3
go.sum (8)
go.mod (4)
⚠️ #21187 Fix typo on node.Config toml tags 1/0/0
node (1)
1/1
node/config.go (4)
#21182 core/vm: crypt/bls12381: fixed comments in bls 3/0/0
crypto/bls12381 (2)
core/vm (1)
3/3
core/vm/contracts.go (4)
crypto/bls12381/fp2.go (4)
crypto/bls12381/g2.go (4)
⚠️ #21181 core: fix typo in comments 1/0/0
core/forkid (1)
1/1
core/forkid/forkid.go (4)
⚠️ #21083 internal/ethapi: return revert reason for eth_call 12/0/0
rpc (7)
accounts/abi/bind/backends (2)
console (1)
graphql (1)
internal/ethapi (1)
321/132
accounts/abi/bind/backends/simulated_test.go (448)
internal/ethapi/api.go (134)
accounts/abi/bind/backends/simulated.go (106)
console/bridge.go (62)
rpc/client_test.go (54)
‼️ #21188 params: update CHTs for 1.9.15 release 1/0/0
params (1)
16/16
params/config.go (64)

218 Changed files

🔍 File Lines Changed Linked PR
crypto/bls12381/arithmetic_x86.s 4300 #21018
crypto/bls12381/fp_test.go 2806
⚠️ les/serverpool.go 2454 #20758
core/vm/contracts_test.go 1258 #21154
#21018
core/vm/testdata/precompiles/blsG2Add.json 1252 #21018
core/vm/testdata/precompiles/blsG1Add.json 1252 #21018
core/vm/testdata/precompiles/blsG2Mul.json 1252 #21018
core/vm/testdata/precompiles/blsG1Mul.json 1252 #21018
core/vm/testdata/precompiles/blsG1MultiExp.json 1240 #21018
core/vm/testdata/precompiles/blsG2MultiExp.json 1240 #21018
core/vm/testdata/precompiles/blsMapG2.json 1204 #21018
core/vm/testdata/precompiles/blsMapG1.json 1204 #21018
core/vm/testdata/precompiles/blsPairing.json 1204 #21018
crypto/bls12381/arithmetic_fallback.go 1132 #21018
crypto/bls12381/g2.go 914 #21182
core/vm/contracts.go 898 #21118
#21182
#21154
#21018
crypto/bls12381/g1.go 870
les/serverpool_test.go 704 #20758
crypto/bls12381/fp6.go 702
crypto/bls12381/field_element.go 680
crypto/bls12381/g2_test.go 572
crypto/bls12381/g1_test.go 566
crypto/bls12381/pairing.go 564
crypto/bls12381/fp12.go 558
crypto/bls12381/fp2.go 504 #21182
crypto/bls12381/field_element_test.go 502
‼️ core/vm/runtime/runtime_test.go 498 #20619
⚠️ accounts/abi/bind/backends/simulated_test.go 468 #20983
#21083
crypto/bls12381/pairing_test.go 460
crypto/bls12381/bls12_381.go 460
crypto/bls12381/isogeny.go 454
crypto/bls12381/fp.go 334
crypto/bls12381/swu.go 316
⚠️ accounts/abi/argument.go 276 #21058
les/lespay/client/wrsiterator.go 256 #20758
les/lespay/client/queueiterator.go 246 #20758
crypto/bls12381/gt.go 242
les/lespay/client/fillset_test.go 226 #20758
core/vm/testdata/precompiles/bn256ScalarMul.json 220 #21018
les/lespay/client/fillset.go 214 #20758
les/lespay/client/queueiterator_test.go 212 #20758
core/vm/testdata/precompiles/modexp.json 208 #21018
les/lespay/client/wrsiterator_test.go 206 #20758
⚠️ core/vm/logger.go 200 #20619
core/vm/testdata/precompiles/bn256Add.json 196 #21018
core/vm/testdata/precompiles/bn256Pairing.json 172 #21018
crypto/bls12381/arithmetic_decl.go 166 #21018
⚠️ accounts/abi/reflect.go 146 #21058
‼️ internal/ethapi/api.go 138 #21083
‼️ accounts/abi/bind/backends/simulated.go 130 #21118
#20983
#21083
⚠️ console/bridge.go 120 #21081
#20960
#21160
#21083
⚠️ les/client.go 108 #20758
console/bridge_test.go 96 #21160
crypto/bls12381/utils.go 90
‼️ cmd/utils/flags.go 86 #21124
#20758
#21154
‼️ core/blockchain.go 84 #21118
#21114
core/vm/testdata/precompiles/fail-blsPairing.json 84 #21018
⚠️ eth/downloader/downloader.go 78 #21118
#21067
les/fetcher.go 72 #20758
les/retrieve.go 70 #20758
⚠️ core/vm/opcodes.go 68 #20619
⚠️ build/checksums.txt 66 #21127
‼️ core/vm/instructions.go 66 #20619
⚠️ core/vm/eips.go 66 #20619
core/vm/testdata/precompiles/fail-blsG2Add.json 64 #21018
‼️ cmd/geth/main.go 64 #21041
#20960
#21154
core/vm/testdata/precompiles/fail-blsG1Add.json 64 #21018
core/vm/testdata/precompiles/fail-blsG1MultiExp.json 64 #21018
core/vm/testdata/precompiles/fail-blsG2MultiExp.json 64 #21018
core/vm/testdata/precompiles/blake2F.json 64 #21018
core/vm/testdata/precompiles/fail-blsG1Mul.json 64 #21018
core/vm/testdata/precompiles/ecRecover.json 64 #21018
core/vm/testdata/precompiles/fail-blsG2Mul.json 64 #21018
⚠️ console/console.go 62 #20960
‼️ core/vm/instructions_test.go 62 #20619
⚠️ eth/downloader/downloader_test.go 58 #21067
crypto/bls12381/arithmetic_x86_adx.go 48
crypto/bls12381/arithmetic_x86_noadx.go 48
‼️ cmd/clef/main.go 48 #21077
#20960
core/vm/contract.go 46 #21123
#20619
core/vm/testdata/precompiles/fail-blsMapG1.json 44 #21018
core/vm/testdata/precompiles/fail-blake2f.json 44 #21018
core/vm/testdata/precompiles/fail-blsMapG2.json 44 #21018
⚠️ les/lespay/client/valuetracker.go 44 #20758
‼️ .travis.yml 40 #21067
⚠️ core/forkid/forkid.go 40 #20758
#21181
core/vm/stack.go 38 #20619
⚠️ core/vm/interpreter.go 34 #20619
#21154
‼️ core/tx_pool.go 34 #21118
#21145
⚠️ accounts/keystore/keystore.go 32 #21172
#21173
⚠️ cmd/faucet/faucet.go 30 #21172
#21173
core/vm/gen_structlog.go 28 #20619
⚠️ eth/downloader/queue.go 28 #21067
crypto/bls12381/bls12_381_test.go 26
⚠️ core/genesis.go 26 #21154
les/enr_entry.go 24 #20758
⚠️ les/distributor.go 22 #20758
⚠️ les/client_handler.go 22 #20758
‼️ eth/sync.go 20 #21114
⚠️ les/utils/expiredvalue.go 18 #20758
⚠️ core/vm/jump_table.go 18 #21154
console/console_test.go 18 #20960
⚠️ ethstats/ethstats.go 18 #21073
consensus/ethash/sealer_test.go 16 #21085
⚠️ accounts/abi/unpack_test.go 16 #21058
‼️ go.sum 16 #21000
#21041
#21168
⚠️ core/state/snapshot/iterator.go 16 #21118
⚠️ cmd/wnode/main.go 16 #20960
les/metrics.go 14 #20758
⚠️ cmd/geth/dao_test.go 12 #21162
⚠️ consensus/clique/clique.go 12 #21132
cmd/ethkey/utils.go 12 #20960
⚠️ cmd/geth/accountcmd.go 12 #20960
‼️ cmd/geth/chaincmd.go 12 #20960
#21154
cmd/puppeth/wizard_genesis.go 12 #21077
#21154
‼️ eth/backend.go 12 #20758
‼️ graphql/graphql.go 12 #21083
⚠️ ethdb/leveldb/leveldb.go 12 #21066
‼️ cmd/clef/README.md 10 #21118
#20960
core/vm/logger_json.go 10 #20619
les/commons.go 10 #20758
‼️ core/vm/errors.go 10 #20619
cmd/puppeth/module_dashboard.go 8 #21118
⚠️ accounts/abi/event_test.go 8 #21058
‼️ go.mod 8 #21041
#21168
internal/jsre/deps/web3.js 8
⚠️ cmd/devp2p/dnscmd.go 8 #20960
⚠️ eth/tracers/tracer_test.go 8 #20619
eth/fetcher/tx_fetcher_test.go 8
⚠️ cmd/clef/intapi_changelog.md 8 #21118
eth/tracers/tracer.go 8 #20619
⚠️ core/vm/logger_test.go 6 #20619
⚠️ les/peer.go 6 #20758
‼️ core/vm/evm.go 6 #21154
cmd/clef/datatypes.md 4 #21118
⚠️ consensus/clique/clique_test.go 4 #21118
‼️ .golangci.yml 4 #21127
⚠️ core/blockchain_test.go 4 #21118
⚠️ accounts/scwallet/wallet.go 4 #21118
console/prompt/prompter.go 4 #20960
⚠️ core/vm/gas.go 4 #21118
accounts/hd_test.go 4 #21118
‼️ build/ci.go 4 #21127
les/server.go 4 #20758
⚠️ accounts/abi/bind/template.go 4 #21118
eth/fetcher/tx_fetcher.go 4
⚠️ accounts/abi/type.go 4 #21118
⚠️ accounts/abi/bind/base.go 4 #21118
‼️ cmd/geth/genesis_test.go 4 #21162
internal/cmdtest/test_cmd.go 4
⚠️ les/clientpool.go 4
‼️ consensus/clique/api.go 4 #21104
⚠️ eth/downloader/peer.go 4
⚠️ core/rawdb/chain_iterator.go 4 #21118
⚠️ accounts/external/backend.go 4 #21118
⚠️ core/state/snapshot/wipe.go 4 #21118
‼️ core/error.go 4 #21118
⚠️ core/state/snapshot/difflayer.go 4 #21118
⚠️ core/state/snapshot/iterator_fast.go 4 #21118
cmd/puppeth/module_faucet.go 4 #21118
⚠️ cmd/geth/consolecmd.go 4 #21154
accounts/scwallet/hub.go 4 #21118
‼️ cmd/geth/consolecmd_test.go 4 #21118
⚠️ core/state/snapshot/snapshot.go 4 #21118
⚠️ les/test_helper.go 4 #20758
⚠️ cmd/clef/docs/setup.md 4 #21118
consensus/misc/dao.go 4 #21118
⚠️ core/genesis_alloc.go 2 #21154
⚠️ cmd/geth/usage.go 2 #21154
⚠️ les/protocol.go 2 #20758
p2p/rlpx_test.go 0
tests/init.go 0 #21154
metrics/cpu_enabled.go 0 #21041
⚠️ rpc/server.go 0
p2p/nodestate/nodestate_test.go 0 #20758
‼️ params/config.go 0 #21188
#21154
rpc/errors.go 0 #21083
⚠️ p2p/discover/node.go 0 #21147
tests/fuzzers/README.md 0
⚠️ rpc/json.go 0 #21083
⚠️ p2p/discover/v4_lookup_test.go 0 #21147
⚠️ trie/proof_test.go 0 #21130
#21000
#21107
p2p/dnsdisc/client.go 0
p2p/nodestate/nodestate.go 0 #20758
metrics/prometheus/collector_test.go 0 #21068
⚠️ node/node_test.go 0
⚠️ p2p/discover/v4_udp.go 0 #21147
⚠️ miner/miner.go 0 #21113
⚠️ rpc/client_test.go 0 #21083
⚠️ rpc/handler.go 0 #21083
metrics/prometheus/collector.go 0 #21068
⚠️ node/config.go 0 #21187
‼️ params/protocol_params.go 0
whisper/shhclient/client.go 0 #21099
mobile/doc.go 0
‼️ rpc/server_test.go 0 #21083
⚠️ signer/core/signed_data.go 0
⚠️ trie/database.go 0
⚠️ rpc/websocket.go 0 #21142
⚠️ params/bootnodes.go 0 #20758
#21154
⚠️ signer/core/uiapi.go 0
⚠️ trie/proof.go 0 #21130
#21000
#21107
p2p/discover/v4wire/v4wire.go 0 #21147
⚠️ rpc/types.go 0 #21083
les/utils/weighted_select.go 0 #20758
⚠️ params/version.go 0
trie/committer.go 0
⚠️ params/network_params.go 0
p2p/discover/v4wire/v4wire_test.go 0 #21147
log/doc.go 0
⚠️ light/lightchain.go 0 #21114
p2p/simulations/http.go 0
les/utils/weighted_select_test.go 0 #20758
⚠️ rpc/testservice_test.go 0 #21083
⚠️ signer/core/cliui.go 0 #20960
log/handler.go 0
⚠️ p2p/discover/v4_udp_test.go 0 #21147
⚠️ log/format.go 0

karalabe and others added 30 commits May 13, 2020 12:33
* 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
ucwong and others added 8 commits June 4, 2020 17:42
* core/vm: crypto/bls12381: minor code comments

* crypto/bls12381: fix comment
* internal/ethapi: return revert reason for eth_call

* internal/ethapi: moved revert reason logic to doCall

* accounts/abi/bind/backends: added revert reason logic to simulated backend

* internal/ethapi: fixed linting error

* internal/ethapi: check if require reason can be unpacked

* internal/ethapi: better error logic

* internal/ethapi: simplify logic

* internal/ethapi: return vmError()

* internal/ethapi: move handling of revert out of docall

* graphql: removed revert logic until spec change

* rpc: internal/ethapi: added custom error types

* graphql: use returndata instead of return

Return() checks if there is an error. If an error is found, we return nil.
For most use cases it can be beneficial to return the output even if there
was an error. This code should be changed anyway once the spec supports
error reasons in graphql responses

* accounts/abi/bind/backends: added tests for revert reason

* internal/ethapi: add errorCode to revert error

* internal/ethapi: add errorCode of 3 to revertError

* internal/ethapi: unified estimateGasErrors, simplified logic

* internal/ethapi: unified handling of errors in DoEstimateGas

* rpc: print error data field

* accounts/abi/bind/backends: unify simulatedBackend and RPC

* internal/ethapi: added binary data to revertError data

* internal/ethapi: refactored unpacking logic into newRevertError

* accounts/abi/bind/backends: fix EstimateGas

* accounts, console, internal, rpc: minor error interface cleanups

* Revert "accounts, console, internal, rpc: minor error interface cleanups"

This reverts commit 2d3ef53c5304e429a04983210a417c1f4e0dafb7.

* re-apply the good parts of 2d3ef53c53

* rpc: add test for returning server error data from client

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
params: update CHTs for 1.9.15 release
@CLAassistant
Copy link

CLAassistant commented Feb 12, 2021

CLA assistant check
All committers have signed the CLA.

@ricardolyn ricardolyn changed the base branch from master to upgrade/go-ethereum/v1.9.14-2021211111542 February 12, 2021 11:35
… genesis block: unsupported fork ordering: homesteadBlock enabled at 314, but daoForkBlock enabled at 141 by updating genesis config in TestCustomGenesisUpgradeWithPrivacyEnhancementsBlock
Base automatically changed from upgrade/go-ethereum/v1.9.14-2021211111542 to master February 15, 2021 16:47
@ricardolyn ricardolyn marked this pull request as ready for review February 15, 2021 18:47
@ricardolyn ricardolyn marked this pull request as draft February 16, 2021 18:45
@ricardolyn ricardolyn marked this pull request as ready for review February 17, 2021 11:17
@ricardolyn
Copy link
Contributor Author

Tested inserting several thousands of Tx to the network (with 1 node down) and then check if while catching up the chain, the shutdown worked fine and quick as expected on ethereum/go-ethereum#21114.
Both RAFT and Istanbul.

Seems ok.

@ricardolyn ricardolyn requested a review from nmvalera February 17, 2021 12:06
core/vm/evm.go Show resolved Hide resolved
params/config.go Show resolved Hide resolved
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 3aa25c3 into master Feb 19, 2021
@ricardolyn ricardolyn deleted the upgrade/go-ethereum/v1.9.15-2021212113514 branch February 19, 2021 09:46
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.