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.10.2 #1391

Conversation

quorumbot
Copy link
Collaborator

@quorumbot quorumbot commented Apr 28, 2022

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 lint passes
  • Implement required changes until all unit tests pass
  • Implement required changes until acceptance tests pass
  • Implement extra changes and/or tests
  • Verify any left TODOs in the code

Add any extra changes/tests as comments on this PR.

Go-Ethereum Release: Kepler Verge (v1.10.2)

  • Version: v1.10.2
  • Published: 2021-04-08T11:05:48Z

Release notes

Geth v1.10.2 is a maintenance release, containing bug fixes and a few minor new features.

Geth command changes

  • Mining work package notifications can now be changed to contain the complete pending block header instead of a work package array. To enable this functionality, use the --miner.notify.full flag (#22558)
  • Geth will now open chain databases in read-only mode when performing commands that should not modify the database. This fixes several cases where indexing operations and snapshot generation would run as part of commands like geth inspect (#22498)
  • Geth now supports JSON log output using the --log.json flag (#22341)
  • The geth copydb command has been removed because it had been broken for quite a while (#22501)
  • The new geth db dumptrie command shows the state tree entries of an account (#22563)
  • When exporting a chain segment using geth export, the end block is now validated against the chain head to prevent fatal error at the end of export (#22387)
  • geth snapshot commands now support setting the freezer directory using the --datadir.ancient flag (#22486)
  • geth snapsnot prune-state now considers pruning successful before performing a long-running leveldb compaction. This avoids issues when the compaction process is interrupted by an abnormal exit (#22579)
  • geth dumpgenesis and the geth db commands now support the --datadir flag and the network selection flags (--rinkeby, etc.) (#22406, #22407)

RPC/GraphQL API changes

  • The new eth_createAccessList RPC method allows auto-creating access lists for EIP-2718 transactions (#22604)
  • RPC methods ethash_submitHashrate and miner_hashrate have been renamed from their previous incorrect spelling *hashRate (#22604)
  • The GraphQL API now supports EIP-2718 access list transactions (#22491)
  • eth_chainId now supports chain IDs larger than 64 bits (#22243)
  • The admin_startRPC and admin_stopRPC methods have been renamed to (start|stop)HTTP (#22461)
  • In LES server RPC APIs, the node ID can now be supplied as an enode:// URL or 32-byte hex ID (#22423)
  • Several bugs related to interactions between chain tracing and the snapshot system are resolved (#22473, #22333, #22629)
  • Tracing now reports correct gas amounts for EIP-2718 transactions (#22480)

Go library changes

  • TransactOpts of accounts/abi/bind now support the NoSend option, which prevents sending the transaction. This can be used with Go contract bindings to 'dry-run' the binding (#22446)
  • The Ledger USB wallet backend now supports EIP-712 'typed data signing' (#22378)
  • Several critical issues related to state snapshot handling are fixed in this release (#22540, #22582, #22551)
  • Background transaction indexing no longer fails for EIP-2718 transactions (#22457)
  • The InfluxDB metrics reporter no longer reports spurious zero values when a histogram has not been updated since the last report (#22590)
  • LES metrics have been renamed to avoid issues in the Prometheus reporter (#22459)
  • The ethstats client no longer crashes when Geth exits immediately after starting (#22587)
  • A rare crash in RPC client subscription handling has been fixed (#22597)

Networking

  • Several bugs in the implementation of snap sync are fixed in this release, but it is still considered experimental and not yet enabled by default (#22596, #22513, #22553, #22591)
  • When metrics are enabled, the 'eth' protocol handler now measures the latency of message handling (#22581, #22586)
  • The DNS discovery client was fixed to avoid hot-spinning when a DNS node trees contains many invalid/incompatible ENRs (#22566)
  • The DNS discovery deployer tool has been updated to resolve some long-standing bugs. Publishing of large trees is now much more efficient because needless updates are avoided, and better batching means the deployer waits less for the server. The tool now uses the latest AWS and CloudFlare SDK versions. (#22572, #22538, #22537, #22588, #22360)
  • The branch factor of DNS discovery trees has been reduced to ensure that all TXT records fit into the 512-byte limit of DNS/UDP packets (#22533)
  • devp2p nodeset filter -les-server was fixed to deal with the new format of the "les" ENR entry (#22565)
  • The cross-client test suite of the 'eth' protocol has been improved a bit, and now skips eth/66 tests when the node under test does not support protocol version 66 (#22460, #22508, #22482, #22474)
  • LES connection pre-negotiation via UDP now works correctly (#22451)

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

73 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
‼️ #22456 core/types: reduce allocations in GasPriceCmp 1/0/0
core/types (1)
1/1
core/types/transaction.go (4)
‼️ #22459 les: add trailing slash to metric namespace 2/0/0
les (2)
2/2
les/client.go (4)
les/server.go (4)
‼️ #22406 cmd: fix dumpgenesis 2/0/0
cmd/geth (1)
cmd/utils (1)
8/1
cmd/geth/chaincmd.go (14)
cmd/utils/flags.go (4)
#22484 p2p/enr: fix decoding of incomplete lists 2/0/0
p2p/enr (2)
30/0
p2p/enr/enr_test.go (46)
p2p/enr/enr.go (14)
‼️ #22486 cmd: add ancient datadir flag to snapshot subcommands 1/0/0
cmd/geth (1)
4/0
cmd/geth/snapshot.go (8)
‼️ #22482 cmd/devp2p: better testcase failure output for ethtests 1/0/0
cmd/devp2p/internal/ethtest (1)
7/6
cmd/devp2p/internal/ethtest/types.go (26)
‼️ #22480 eth/state, les/state, et/tracers: properly init statedb accesslist 3/0/0
eth (1)
eth/tracers (1)
les (1)
38/9
eth/tracers/api.go (90)
eth/state_accessor.go (2)
les/state_accessor.go (2)
#22501 cmd/geth: remove copydb command 2/0/1
cmd/geth (2)
eth/downloader (1)
0/243
eth/downloader/fakepeer.go (322)
cmd/geth/chaincmd.go (162)
cmd/geth/main.go (2)
‼️ #22455 tests/fuzzers: fix goroutine leak in les fuzzer 3/0/0
les (2)
tests/fuzzers/les (1)
11/7
les/test_helper.go (16)
tests/fuzzers/les/les-fuzzer.go (12)
les/server_requests.go (8)
‼️ #22402 core/types: improve comments in new EIP-2718 code 4/0/0
core/types (4)
21/7
core/types/hashing_test.go (32)
core/types/transaction_signing.go (12)
core/types/hashing.go (10)
core/types/receipt.go (2)
⚠️ #22400 cmd/clef: docs - link to ethereum org repo 1/0/0
cmd/clef (1)
1/1
cmd/clef/README.md (4)
#22399 Clef: flatten sing_flow image 1/0/0
cmd/clef (1)
0/0
#22457 core/rawdb: fix transaction indexing/unindexing hashing error 3/0/0
core/rawdb (2)
rlp (1)
65/38
core/rawdb/chain_iterator_test.go (146)
core/rawdb/chain_iterator.go (58)
rlp/iterator.go (2)
‼️ #22451 les: fix UDP connection query 8/0/0
les (7)
les/vflux/client (1)
110/76
les/vflux/client/serverpool.go (206)
les/clientpool_test.go (48)
les/client.go (36)
les/clientpool.go (36)
les/metrics.go (20)
‼️ #22423 les: allow either full enode strings or raw hex ids in the API 1/0/0
les (1)
45/6
les/api.go (102)
‼️ #22530 rename "spap" to "snap" 1/0/0
eth/protocols/snap (1)
1/1
eth/protocols/snap/handler.go (4)
‼️ #22508 cmd/devp2p/internal/ethtest: return request ID in BlockHeaders response 1/0/0
cmd/devp2p/internal/ethtest (1)
5/2
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go (14)
‼️ #22514 ethclient: fix error handling for header test 1/0/0
ethclient (1)
5/4
ethclient/ethclient_test.go (18)
‼️ #22446 abi/bind: add an option to dry run a transaction 1/0/0
accounts/abi/bind (1)
5/0
accounts/abi/bind/base.go (10)
‼️ #22436 go.mod: upgrade goleveldb to commit 64b5b1c 2/0/0
go.mod (1)
go.sum (1)
3/2
go.sum (6)
go.mod (4)
‼️ #22479 go.mod: upgrade goupnp to commit 0ca76305 2/0/0
go.mod (1)
go.sum (1)
3/3
go.sum (8)
go.mod (4)
⚠️ #22512 consensus/ethash: remove unnecessary variable definition 1/0/0
consensus/ethash (1)
1/2
consensus/ethash/ethash.go (6)
‼️ #22360 cmd/devp2p: use AWS-SDK v2 4/0/0
cmd/devp2p (2)
go.mod (1)
go.sum (1)
153/87
cmd/devp2p/dns_route53.go (272)
cmd/devp2p/dns_route53_test.go (144)
go.sum (50)
go.mod (14)
#22533 p2p/dnsdisc: fix flaw in dns size calculation 1/0/0
p2p/dnsdisc (1)
34/3
p2p/dnsdisc/tree.go (74)
#22346 core: fix potential race in chainIndexerTest 1/0/0
core (1)
5/1
core/chain_indexer_test.go (12)
‼️ #22460 cmd/devp2p: only run eth66 tests against supporting node 6/0/0
cmd/devp2p/internal/ethtest (5)
cmd/devp2p (1)
116/15
cmd/devp2p/internal/ethtest/chain_test.go (116)
cmd/devp2p/internal/ethtest/suite.go (74)
cmd/devp2p/internal/ethtest/types.go (34)
cmd/devp2p/internal/ethtest/eth66_suite.go (20)
cmd/devp2p/rlpxcmd.go (16)
#22537 cmd/devp2p: add flag for AWS region 2/0/0
cmd/devp2p (2)
13/2
cmd/devp2p/dns_route53.go (16)
cmd/devp2p/dnscmd.go (14)
#22538 cmd/devp2p: fix error in updating the cursor when collecting route53 records 1/0/0
cmd/devp2p (1)
9/1
cmd/devp2p/dns_route53.go (20)
‼️ #22474 cmd/devp2p: add old block announcement test to eth test suite 2/0/0
cmd/devp2p/internal/ethtest (2)
37/0
cmd/devp2p/internal/ethtest/suite.go (66)
cmd/devp2p/internal/ethtest/eth66_suite.go (8)
#22511 fix/workaround for issue #22434 1/1/0
cmd/utils (2)
44/1
cmd/utils/diskusage_openbsd.go (86)
cmd/utils/diskusage.go (4)
‼️ #22543 ``Fix comment for `requestReset``` 1/0/0
core (1)
1/1
core/tx_pool.go (4)
⚠️ #22378 accounts: eip-712 signing for ledger 3/0/0
accounts/usbwallet (3)
128/1
accounts/usbwallet/ledger.go (164)
accounts/usbwallet/wallet.go (86)
accounts/usbwallet/trezor.go (8)
#22407 all: add read-only option to database 26/0/0
core (5)
cmd/geth (4)
core/rawdb (4)
node (2)
eth/filters (2)
les (2)
trie (1)
core/state/snapshot (1)
eth (1)
eth/protocols/eth (1)
cmd/utils (1)
core/state/pruner (1)
ethdb/leveldb (1)
265/190
cmd/geth/dbcmd.go (302)
cmd/geth/snapshot.go (114)
core/state/pruner/pruner.go (72)
cmd/geth/chaincmd.go (66)
core/rawdb/accessors_chain.go (52)
‼️ #22387 cmd/geth: check block range against chain head in export cmd 1/0/0
cmd/geth (1)
3/0
cmd/geth/chaincmd.go (6)
#22551 core/state/snapshot: fix panic on missing parent 1/0/0
core/state/snapshot (1)
2/2
core/state/snapshot/snapshot.go (8)
‼️ #22513 eth/protocols/snap, eth/downloader: don't use bloom filter in snap sync 4/0/0
eth/protocols/snap (2)
eth/downloader (1)
eth (1)
11/12
eth/protocols/snap/sync.go (26)
eth/handler.go (12)
eth/downloader/downloader.go (4)
eth/protocols/snap/sync_test.go (4)
#22461 ``internal/web3ext,node: migrate node admin API (Start Stop)RPC->HTTP`` 3/0/0
node (2)
internal/web3ext (1)
43/16
‼️ #22565 cmd/devp2p: skip ENR field tails properly in nodeset filter 2/0/0
cmd/devp2p (1)
les (1)
4/4
cmd/devp2p/nodesetcmd.go (12)
les/enr_entry.go (4)
⚠️ #22547 p2p: fix minor typo 1/0/0
p2p (1)
3/3
p2p/server.go (12)
#22566 p2p/dnsdisc: rate limit resolving before checking cache 1/0/0
p2p/dnsdisc (1)
17/18
p2p/dnsdisc/client.go (70)
‼️ #22553 eth/protocols/snap: fix the flaws in the snap sync 3/0/0
eth/protocols/snap (3)
695/183
eth/protocols/snap/sync_test.go (1690)
eth/protocols/snap/sync.go (48)
eth/protocols/snap/handler.go (18)
‼️ #22333 core, eth/tracer: initialize tracer statedb in CaptureStart 12/0/0
core/vm (9)
eth/tracers (2)
core/vm/runtime (1)
384/365
core/vm/instructions.go (848)
eth/tracers/tracer.go (226)
eth/tracers/tracer_test.go (104)
core/vm/logger.go (88)
core/vm/interpreter.go (48)
#22572 cmd/devp2p: fix comparison of TXT record value 2/0/0
cmd/devp2p (2)
42/17
cmd/devp2p/dns_route53.go (70)
cmd/devp2p/dns_route53_test.go (48)
#22573 core: fix condition on header verification 1/0/0
core (1)
1/1
core/headerchain.go (4)
‼️ #22574 eth: dump rpc gas cap and tx fee cap 1/0/0
eth/ethconfig (1)
2/2
eth/ethconfig/config.go (8)
#22581 eth/protocols, metrics, p2p: add handler performance metrics 4/0/0
metrics (1)
p2p (1)
eth/protocols/eth (1)
eth/protocols/snap (1)
38/2
p2p/metrics.go (22)
eth/protocols/eth/handler.go (20)
eth/protocols/snap/handler.go (20)
metrics/histogram.go (18)
#22586 eth/protocols, metrics: use resetting histograms for rare packets 2/1/0
eth/protocols/snap (1)
metrics (1)
eth/protocols/eth (1)
34/2
metrics/resetting_sample.go (48)
eth/protocols/eth/handler.go (12)
eth/protocols/snap/handler.go (12)
‼️ #21695 eth: fix corner case in sync head determination 1/0/0
eth (1)
2/2
eth/sync.go (8)
‼️ #22558 miner: add support for --miner.notify.full flag 11/0/0
consensus/ethash (5)
cmd/geth (2)
cmd/utils (1)
eth (1)
eth/ethconfig (1)
miner (1)
171/39
consensus/ethash/sealer_test.go (188)
eth/ethconfig/config.go (60)
consensus/ethash/ethash.go (56)
miner/miner.go (34)
consensus/ethash/sealer.go (22)
#22590 metrics/influxdb: don't push empty histograms, no measurement != 0 1/0/0
metrics/influxdb (1)
23/20
metrics/influxdb/influxdb.go (86)
‼️ #22591 eth/protocols/snap: add peer id and req id to the timeout logs 1/0/0
eth/protocols/snap (1)
25/15
eth/protocols/snap/sync.go (80)
‼️ #22588 cmd/devp2p: update to newer cloudflare API client 3/0/0
cmd/devp2p (1)
go.mod (1)
go.sum (1)
30/22
go.sum (60)
cmd/devp2p/dns_cloudflare.go (28)
go.mod (16)
‼️ #22579 core/state/pruner: move the compaction out of the pruning procedure 1/0/0
core/state/pruner (1)
22/46
core/state/pruner/pruner.go (136)
⚠️ #22589 core: add GetBalance method to block generation 1/0/0
core (1)
5/0
core/chain_makers.go (10)
#22549 cmd/puppeth: specify working directory for nodejs 15 1/0/0
cmd/puppeth (1)
2/0
cmd/puppeth/module_dashboard.go (4)
‼️ #22596 eth/protocols/snap: try to prevent requests timing out 2/0/0
eth/protocols/snap (2)
10/5
eth/protocols/snap/handler.go (26)
eth/protocols/snap/sync.go (4)
‼️ #22563 cmd/geth: add db dumptrie command 1/0/0
cmd/geth (1)
69/0
cmd/geth/dbcmd.go (138)
‼️ #22603 Fix Byzantium precompiles population. 1/0/0
core/vm (1)
1/1
core/vm/contracts.go (4)
‼️ #22587 ethstats: avoid creating subscriptions on background goroutine 1/0/0
ethstats (1)
13/13
ethstats/ethstats.go (52)
#22582 core/state/snapshot, ethdb: track deletions more accurately 3/0/0
core/state/snapshot (1)
ethdb/leveldb (1)
ethdb/memorydb (1)
22/3
core/state/snapshot/snapshot.go (42)
ethdb/leveldb/leveldb.go (4)
ethdb/memorydb/memorydb.go (4)
⚠️ #22597 rpc: tighter shutdown synchronization in client subscription 4/0/0
rpc (4)
177/40
rpc/subscription.go (242)
rpc/client_test.go (176)
rpc/handler.go (8)
rpc/websocket_test.go (8)
‼️ #22604 all: fix miner hashRate -> hashrate on API calls 6/0/0
consensus/ethash (2)
eth (1)
ethstats (1)
internal/web3ext (1)
miner (1)
8/18
eth/api.go (20)
consensus/ethash/ethash_test.go (12)
internal/web3ext/web3ext.go (8)
consensus/ethash/api.go (4)
ethstats/ethstats.go (4)
#22540 [core] Race condition on diffLayer 1/0/0
core/state/snapshot (1)
12/4
core/state/snapshot/difflayer.go (32)
‼️ #22243 internal/ethapi: fix eth_chainId method 2/0/0
eth (1)
internal/ethapi (1)
7/12
internal/ethapi/api.go (20)
eth/api.go (18)
⚠️ #22491 graphql: add support for tx types and tx access lists 3/0/0
graphql (3)
180/4
graphql/graphql_test.go (272)
graphql/graphql.go (78)
graphql/schema.go (18)
‼️ #22341 internal/debug: rename flags in log namespace, fix some pprof flags 1/0/0
internal/debug (1)
106/18
internal/debug/flags.go (248)
‼️ #22510 cmd/geth: move cache sanity check to SetEthConfig 2/0/0
cmd/geth (1)
cmd/utils (1)
23/22
cmd/utils/flags.go (46)
cmd/geth/main.go (44)
#22618 Change the progress log 1/0/0
consensus/ethash (1)
1/1
consensus/ethash/algorithm.go (4)
#22495 les: move client pool to les/vflux/server 20/5/2
les/vflux/server (10)
les (8)
common/prque (4)
oss-fuzz.sh (1)
p2p/nodestate (1)
tests/fuzzers/vflux (1)
tests/fuzzers/vflux/debug (1)
les/flowcontrol (1)
1986/1544
les/vflux/server/balance.go (978)
les/clientpool.go (906)
les/vflux/server/prioritypool.go (832)
les/vflux/server/clientpool.go (670)
tests/fuzzers/vflux/clientpool-fuzzer.go (578)
‼️ #22473 eth, les: fix tracer 8/0/0
eth (3)
eth/tracers (2)
les (2)
eth/protocols/eth (1)
156/242
eth/state_accessor.go (414)
eth/tracers/api.go (192)
eth/tracers/api_test.go (72)
les/state_accessor.go (72)
eth/api_backend.go (20)
‼️ #22550 Create access list 9/1/0
core/vm (3)
internal/ethapi (2)
core/vm/runtime (1)
eth (1)
internal/web3ext (1)
les (1)
core (1)
318/36
core/vm/access_list_tracer.go (354)
internal/ethapi/api.go (208)
core/vm/runtime/runtime.go (32)
core/vm/evm.go (30)
core/vm/contracts.go (28)
‼️ #22629 eth: fix tracing state retrieval if requesting the non-dirty genesis 1/0/0
eth (1)
10/0
eth/state_accessor.go (20)
‼️ #22632 params: update CHTs for v1.10.2 1/0/0
params (1)
12/12
params/config.go (48)

162 Changed files

🔍 File Lines Changed Linked PR
‼️ eth/protocols/snap/sync_test.go 1694 #22513
#22553
‼️ les/vflux/server/balance.go 978 #22495
‼️ les/clientpool.go 878 #22451
#22495
‼️ core/vm/instructions.go 848 #22333
‼️ les/vflux/server/prioritypool.go 832 #22495
les/vflux/server/clientpool.go 670 #22495
tests/fuzzers/vflux/clientpool-fuzzer.go 578 #22495
‼️ les/vflux/server/clientpool_test.go 542 #22495
‼️ les/peer.go 536 #22495
‼️ les/vflux/server/balance_test.go 444 #22495
‼️ cmd/geth/dbcmd.go 440 #22407
#22563
‼️ eth/state_accessor.go 432 #22480
#22629
#22473
core/vm/access_list_tracer.go 354 #22550
cmd/devp2p/dns_route53.go 346 #22360
#22538
#22537
#22572
‼️ les/vflux/server/balance_tracker.go 330 #22495
eth/downloader/fakepeer.go 322 #22501
‼️ eth/tracers/api.go 278 #22480
#22473
‼️ graphql/graphql_test.go 272 #22491
‼️ les/api.go 272 #22423
#22495
‼️ les/server_handler.go 254 #22495
‼️ internal/debug/flags.go 248 #22341
‼️ cmd/geth/chaincmd.go 244 #22406
#22501
#22387
#22407
rpc/subscription.go 242 #22597
‼️ internal/ethapi/api.go 228 #22243
#22550
‼️ eth/tracers/tracer.go 226 #22333
‼️ core/state/pruner/pruner.go 208 #22407
#22579
‼️ les/vflux/client/serverpool.go 206 #22451
cmd/devp2p/dns_route53_test.go 192 #22360
#22572
consensus/ethash/sealer_test.go 188 #22558
⚠️ rpc/client_test.go 176 #22597
‼️ les/server.go 174 #22451
#22459
#22407
#22495
accounts/usbwallet/ledger.go 164 #22378
‼️ eth/protocols/snap/sync.go 158 #22513
#22553
#22591
#22596
‼️ les/vflux/server/prioritypool_test.go 152 #22495
core/rawdb/chain_iterator_test.go 146 #22457
‼️ cmd/devp2p/internal/ethtest/suite.go 140 #22474
#22460
‼️ cmd/geth/snapshot.go 122 #22486
#22407
les/vflux/server/status.go 118 #22495
cmd/devp2p/internal/ethtest/chain_test.go 116 #22460
‼️ go.sum 116 #22360
#22479
#22436
#22588
‼️ cmd/utils/flags.go 104 #22406
#22407
#22558
#22510
‼️ eth/tracers/tracer_test.go 104 #22333
‼️ core/vm/logger.go 88 #22333
metrics/influxdb/influxdb.go 86 #22590
⚠️ accounts/usbwallet/wallet.go 86 #22378
cmd/utils/diskusage_openbsd.go 86 #22511
tests/fuzzers/vflux/debug/main.go 82 #22495
‼️ graphql/graphql.go 78 #22491
‼️ les/state_accessor.go 74 #22480
#22473
p2p/dnsdisc/tree.go 74 #22533
‼️ eth/tracers/api_test.go 72 #22473
‼️ eth/protocols/snap/handler.go 72 #22530
#22581
#22586
#22553
#22596
p2p/dnsdisc/client.go 70 #22566
‼️ eth/ethconfig/config.go 68 #22558
#22574
les/vflux/server/metrics.go 66 #22495
⚠️ consensus/ethash/ethash.go 62 #22512
#22558
‼️ cmd/devp2p/internal/ethtest/types.go 60 #22482
#22460
core/rawdb/chain_iterator.go 58 #22457
‼️ ethstats/ethstats.go 56 #22604
#22587
‼️ internal/web3ext/web3ext.go 52 #22461
#22604
#22550
‼️ core/rawdb/accessors_chain.go 52 #22407
core/state/snapshot/snapshot.go 50 #22551
#22582
core/rawdb/database.go 50 #22407
‼️ cmd/geth/main.go 48 #22501
#22558
#22510
metrics/resetting_sample.go 48 #22586
‼️ params/config.go 48 #22632
‼️ core/vm/interpreter.go 48 #22333
‼️ les/test_helper.go 48 #22455
#22451
#22495
p2p/enr/enr_test.go 46 #22484
‼️ core/vm/logger_json.go 46 #22333
⚠️ node/api.go 46 #22461
‼️ eth/api.go 44 #22604
#22243
#22473
‼️ les/client.go 44 #22451
#22459
#22407
‼️ core/vm/evm.go 42 #22333
#22550
common/prque/sstack.go 40 #22495
node/api_test.go 40 #22461
‼️ go.mod 38 #22360
#22479
#22436
#22588
‼️ core/vm/runtime/runtime_test.go 38 #22333
‼️ miner/miner.go 38 #22558
#22604
‼️ eth/api_backend.go 36 #22473
#22550
⚠️ core/rawdb/freezer.go 36 #22407
‼️ core/blockchain_test.go 36 #22407
p2p/nodestate/nodestate.go 34 #22495
‼️ core/vm/logger_test.go 32 #22333
‼️ core/vm/instructions_test.go 32 #22333
core/state/snapshot/difflayer.go 32 #22540
‼️ core/types/hashing_test.go 32 #22402
‼️ core/vm/contracts.go 32 #22603
#22550
‼️ core/vm/runtime/runtime.go 32 #22550
consensus/ethash/ethash_test.go 30 #22558
#22604
‼️ les/api_backend.go 30 #22473
#22550
‼️ cmd/devp2p/internal/ethtest/eth66_suite.go 28 #22474
#22460
cmd/devp2p/dns_cloudflare.go 28 #22588
‼️ eth/protocols/eth/handler.go 28 #22581
#22586
consensus/ethash/sealer.go 22 #22558
p2p/metrics.go 22 #22581
core/vm/eips.go 20 #22333
‼️ ethclient/ethclient_test.go 18 #22514
les/metrics.go 18 #22451
#22495
metrics/histogram.go 18 #22581
⚠️ graphql/schema.go 18 #22491
consensus/ethash/algorithm_test.go 16 #22558
‼️ cmd/devp2p/rlpxcmd.go 16 #22460
‼️ cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go 16 #22508
#22460
‼️ node/node.go 16 #22407
‼️ eth/backend.go 16 #22407
#22558
⚠️ core/bench_test.go 16 #22407
cmd/devp2p/dnscmd.go 14 #22537
p2p/enr/enr.go 14 #22484
‼️ les/enr_entry.go 14 #22451
#22565
‼️ ethdb/leveldb/leveldb.go 14 #22407
#22582
common/prque/prque.go 14 #22495
⚠️ eth/filters/bench_test.go 12 #22407
⚠️ p2p/server.go 12 #22547
common/prque/lazyqueue.go 12 #22495
‼️ cmd/devp2p/nodesetcmd.go 12 #22565
‼️ eth/handler.go 12 #22513
‼️ common/prque/sstack_test.go 12 #22495
‼️ tests/fuzzers/les/les-fuzzer.go 12 #22455
‼️ core/types/transaction_signing.go 12 #22402
⚠️ core/blockchain_repair_test.go 12 #22407
⚠️ node/node_test.go 12 #22407
core/chain_indexer_test.go 12 #22346
‼️ les/vflux/server/service.go 12 #22495
‼️ core/state_transition.go 10 #22550
⚠️ core/chain_makers.go 10 #22589
‼️ accounts/abi/bind/base.go 10 #22446
‼️ core/types/hashing.go 10 #22402
⚠️ eth/filters/filter_test.go 8 #22407
⚠️ core/blockchain_sethead_test.go 8 #22407
⚠️ rpc/websocket_test.go 8 #22597
accounts/usbwallet/trezor.go 8 #22378
‼️ les/server_requests.go 8 #22455
‼️ core/blockchain_snapshot_test.go 8 #22407
les/servingqueue.go 8 #22495
⚠️ rpc/handler.go 8 #22597
‼️ eth/sync.go 8 #21695
⚠️ cmd/clef/README.md 4 #22400
les/flowcontrol/manager.go 4 #22495
‼️ params/version.go 4
⚠️ cmd/geth/dao_test.go 4 #22407
‼️ core/types/transaction.go 4 #22456
consensus/ethash/algorithm.go 4 #22618
⚠️ core/rawdb/accessors_chain_test.go 4 #22407
‼️ eth/downloader/downloader.go 4 #22513
ethdb/memorydb/memorydb.go 4 #22582
core/vm/jump_table.go 4 #22333
core/headerchain.go 4 #22573
‼️ core/tx_pool.go 4 #22543
trie/trie_test.go 4 #22407
consensus/ethash/api.go 4 #22604
‼️ internal/ethapi/backend.go 4 #22550
‼️ eth/protocols/eth/protocol_test.go 4 #22407
#22473
‼️ cmd/utils/diskusage.go 4 #22511
cmd/puppeth/module_dashboard.go 4 #22549
core/state/snapshot/disklayer_test.go 4 #22407
⚠️ cmd/geth/usage.go 2 #22558
‼️ core/types/receipt.go 2 #22402
‼️ oss-fuzz.sh 2 #22495
rlp/iterator.go 2 #22457
```` 0 #22451
cmd/clef/sign_flow.png 0 #22399

karalabe and others added 30 commits January 14, 2021 12:10
cmd/faucet: update the embedded website asset
core/state/snapshot: add generation logs to storage too
This PR has two changes in the les protocol:

- the auxRoot is not supported. See ethereum/devp2p#171 for more information
- the empty response will be returned in GetHelperTrieProofsMsg request if the merkle
   proving is failed. note, for backward compatibility, the empty merkle proof as well as
   the request auxiliary data will still be returned in  les2/3 protocol no matter the proving
   is successful or not. the proving failure can happen e.g. request the proving for a
   non-included entry in helper trie (unstable header).
* tests/fuzzers/abi: better test generation

* tests/fuzzers/abi: fixed packing issue

* oss-fuzz: enable abi fuzzer
* cmd/geth: dump config

* cmd/geth: dump config

* cmd/geth: properly read config again

* cmd/geth: override metrics if flags are set

* cmd/geth: write metrics regardless if enabled

* cmd/geth: renamed to metricsfromcliargs

* metrics: add default configuration
* core/state/snapshot: write snapshot generator in batch

* core: refactor the tests

* core: update tests

* core: update tests
Adding warnings of free disk space left and graceful shutdown when there is not enough space left.
This also adds a flag datadir.minfreedisk which can be used to set the trigger for low disk space, and setting it to zero disables the check. 

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
This PR introduces a new config field SyncFromCheckpoint for light client.

In some special scenarios, it's required to start synchronization from some
arbitrary checkpoint or even from the scratch. So this PR offers this
flexibility to users so that the synchronization start point can be configured.

There are two relevant configs: SyncFromCheckpoint and Checkpoint.

- If the SyncFromCheckpoint is true, the light client will try to sync from the
  specified checkpoint.

- If the Checkpoint is not configured, then the light client will sync from the
  scratch(from the latest header if the database is not empty)

Additional notes: these two configs are not visible in the CLI flags but only
accessable in the config file.

Example Usage:

[Eth]
SyncFromCheckpoint = true

[Eth.Checkpoint]
SectionIndex = 100
SectionHead = "0xabc"
CHTRoot = "0xabc"
BloomRoot = "0xabc"

PS. Historical checkpoint can be retrieved from the synced full node or light
client via les_getCheckpoint API.
This is a simple refactoring, extracting common ancestor
negotiation logic to named function
Squashed from the following commits:

core/state: lazily init snapshot storage map
core/state: fix flawed meter on storage reads
core/state: make statedb/stateobjects reuse a hasher
core/blockchain, core/state: implement new trie prefetcher
core: make trie prefetcher deliver tries to statedb
core/state: refactor trie_prefetcher, export storage tries
blockchain: re-enable the next-block-prefetcher
state: remove panics in trie prefetcher
core/state/trie_prefetcher: address some review concerns

sq
This fixes #22131 and adds a test reproducing the issue.
This adds a way to get the error of the failing subscription
for logging/debugging purposes.

Co-authored-by: Felix Lange <fjl@twurst.com>
Fixes a special case when the trie only has a single trie node and the range proof only contains a single element.
…a (#22211)

It takes three lines of code to get to runtime.nanotime, no need to
pull a dependency for that.
* cmd, geth: Reflect command being optional - closes 22218

* cmd, geth: Set current year to 2021
* cmd, geth: Reflect command being optional - closes 22218

* cmd, geth: Set current year to 2021
* eth/protocols/snap: make timeout configurable

* eth/protocols/snap: snap sync testing

* eth/protocols/snap: test to trigger panic

* eth/protocols/snap: fix race condition on timeouts

* eth/protocols/snap: return error on cancelled sync

* squashme: updates + test causing panic + properly serve accounts in order

* eth/protocols/snap: revert failing storage response

* eth/protocols/snap: revert on bad responses (storage, code)

* eth/protocols/snap: fix account handling stall

* eth/protocols/snap: fix remaining revertal-issues

* eth/protocols/snap: timeouthandler for bytecode requests

* eth/protocols/snap: debugging + fix log message

* eth/protocols/snap: fix misspelliings in docs

* eth/protocols/snap: fix race in bytecode handling

* eth/protocols/snap: undo deduplication of storage roots

* synctests: refactor + minify panic testcase

* eth/protocols/snap: minor polishes

* eth: minor polishes to make logs more useful

* eth/protocols/snap: remove excessive logs from the test runs

* eth/protocols/snap: stress tests with concurrency

* eth/protocols/snap: further fixes to test cancel channel handling

* eth/protocols/snap: extend test timeouts on CI

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
This updates go module dependencies as discussed in #22050.
This PR fixes the receipt status field to be decimal instead of a hex string,
as called for by the spec.

Co-authored-by: Martin Holst Swende <martin@swende.se>
This updates the goupnp dependency, fixing huin/goupnp#33
When a sethead/rewind finds that the targeted block is missing, it resets to genesis instead of crashing. Closes #22129
@baptiste-b-pegasys baptiste-b-pegasys marked this pull request as ready for review May 24, 2022 05:53
tag goquorum additions
eth/state_accessor.go Outdated Show resolved Hide resolved
eth/state_accessor.go Outdated Show resolved Hide resolved
if err != nil {
return nil, nil, err
}
statedb, err = state.New(root, database, nil)
Copy link
Contributor

Choose a reason for hiding this comment

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

old code:

err = statedb.Reset(root)
// statedb, err = state.New(root, database, nil) // Quorum

I am not sure if we should initialise with new or reset?

eth/api_backend.go Outdated Show resolved Hide resolved
eth/api_backend.go Outdated Show resolved Hide resolved
@antonydenyer antonydenyer merged commit 2acd4cc into Consensys:master Jun 1, 2022
@quorumbot quorumbot deleted the upgrade/go-ethereum/v1.10.2-2022428043256 branch July 15, 2022 12:32
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