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.3 #1449

Conversation

quorumbot
Copy link
Collaborator

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: Maroon Sea (v1.10.3)

  • Version: v1.10.3
  • Published: 2021-05-05T11:22:28Z

Release notes

Geth v1.10.3 is a maintenance release, containing bug fixes and performance improvements.

The performance of the snapshot system has been a big focus in this release cycle.
Generating a snapshot after a snap sync is approximately 10 times faster.

Geth command changes

  • Several race conditions in database access are resolved, reducing the potential of database corruption (#22739, #22728)
  • Large numbers in log messages now have thousands separators (#22665, #22679)
  • Geth no longer warns about database upgrades when starting with an empty database (#22803)
  • The new geth db freezer-index debugging command prints the contents of a freezer table (#22633)
  • geth --dev --datadir ... works again (#22738)
  • Geth now includes the experimental --catalyst mode for eth2 merge testing (#22641, #22697, #22770)
  • Puppeth now supports using ssh-agent for authentication (#22634)

Go library changes

  • State snapshot generator performance is much improved in this release (#22667, #22470, #22504)
  • It is no longer possible to upgrade snapshot databases generated by pre-Berlin geth (#22663)
  • The RPC client now returns non-2xx HTTP responses as rpc.HTTPError (#22677)
  • The ethash engine now performs less database lookups when verifying uncle headers (#21467)
  • trie.StackTrie has been refactored to improve API semantics. StackTrie methods previously took ownership of key/value byte slices passed to it, which was unintuitive for calling code (#22673, #22686, #22685)

RPC/GraphQL API changes

  • The gas price oracle deals much better with blocks containing transactions of very low price. Such transactions are typically generated by miners using MEV techniques (#22722)
  • eth_hashrate works again (#22765)
  • debug_traceCall now supports state overrides like eth_call (#22245)
  • EVM Tracing now reports correct gas costs for EIP-2929 state access (#22702)
  • Clef and the external signer account backend now support signing of EIP-2930 access list transactions (#22585)

Networking

  • Support for eth/64 has been removed. The minimum protocol version is now eth/65 (#22636)
  • The core of snap sync has been re-architected to allow for dynamic request sizes (#22668, #22777)
  • Several other correctness issues in the snap sync client are resolved (#22678, #22789, #22760, #22762, #22761)
  • DNS discovery for the snap protocol now uses the eth protocol node list. The snap-specific node list will be retired later. This is possible because more than 75% of all eth nodes support serving snap (#22808)
  • For eth and snap, the protocol handlers now report additional metrics about response latency (#22608, #22751, #22753). A Grafana dashboard incorporating the new metrics is available here.
  • Several new tests have been added in the cross-client eth protocol test suite. The tests are now more reliable and run as part of pull request CI on Travis (#22698, #22630, #22757, #22749, #22754, #22801)
  • The discv5 message handler now reflects IPv4-in-IPv6 addresses correctly when handling PING (#22703)
  • The DNS node list tools in cmd/devp2p now support setting a size limit for node lists. This was added because the list of mainnet snap protocol nodes overflowed our AWS Route53 account (#22694, #22695)

Build

  • The Windows build environment has been cleaned up and updated to use GCC 10 (#22811, #22788, #22804, #22821)
  • The crypto/bn256 and crypto/bls12381 packages are now fuzz-tested against gnark-crypto (#22755)
  • go-ethereum now builds correctly on OpenBSD/arm64 (#22693)

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

81 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
‼️ #22636 eth, les: drop support for eth/64 12/0/0
eth/protocols/eth (4)
eth/downloader (3)
eth (3)
les (2)
286/285
eth/downloader/downloader_test.go (654)
eth/protocols/eth/handler_test.go (230)
eth/protocols/eth/handler.go (102)
eth/handler_eth_test.go (84)
eth/downloader/peer.go (16)
#22645 accounts: documentation fixes 1/0/0
accounts (1)
2/2
accounts/accounts.go (8)
#22633 cmd/geth: add db-command to inspect freezer index (ref #22111) 5/0/0
core/rawdb (4)
cmd/geth (1)
72/15
cmd/geth/dbcmd.go (116)
core/rawdb/freezer_table.go (38)
core/rawdb/freezer_table_test.go (8)
core/rawdb/schema.go (8)
core/rawdb/freezer.go (4)
‼️ #22545 cmd/faucet: Support testnet flags in the faucet 1/0/0
cmd/faucet (1)
23/7
cmd/faucet/faucet.go (60)
#22652 eth/fetcher: avoid spurious timer events at startup 1/0/0
eth/fetcher (1)
6/2
eth/fetcher/block_fetcher.go (16)
#22504 core/state/snapshot: faster snapshot generation 16/0/0
core/state/snapshot (6)
trie (4)
core/state (3)
eth/downloader (1)
eth/protocols/snap (1)
cmd/geth (1)
1369/209
core/state/snapshot/generate.go (1358)
core/state/snapshot/generate_test.go (1298)
eth/protocols/snap/sync.go (162)
cmd/geth/snapshot.go (76)
core/state/snapshot/wipe.go (64)
‼️ #22666 core/types: drop some relice data types 1/0/0
core/types (1)
0/32
core/types/block.go (64)
#22665 all: make logs a bit easier on the eye to digest 10/1/0
core (4)
log (2)
accounts (1)
cmd/evm (1)
cmd/evm/testdata/8 (1)
common (1)
eth/protocols/snap (1)
202/27
log/format.go (212)
log/format_test.go (150)
eth/protocols/snap/sync.go (28)
core/blockchain.go (20)
cmd/evm/README.md (12)
‼️ #22559 core: test genesis:genesisHash values (and fix YoloV3) 2/0/0
core (1)
params (1)
36/1
core/genesis_test.go (70)
params/config.go (4)
#22679 log: fix formatting of big.Int 2/0/0
log (2)
54/24
log/format.go (116)
log/format_test.go (40)
‼️ #22678 eth/protocols/snap: use ephemeral channels to avoid cross-sync delveries 1/0/0
eth/protocols/snap (1)
112/101
eth/protocols/snap/sync.go (426)
‼️ #22650 les/vflux/server: fix priority cornercase causing fuzzer timeout 4/0/0
les/vflux/server (4)
19/17
les/vflux/server/clientpool_test.go (22)
les/vflux/server/balance.go (20)
les/vflux/server/clientpool.go (18)
les/vflux/server/balance_test.go (12)
‼️ #22673 trie: make stacktrie not mutate input values 2/0/0
trie (2)
56/11
trie/stacktrie_test.go (102)
trie/stacktrie.go (32)
‼️ #22641 eth/catalyst: add catalyst API prototype 8/5/0
eth/catalyst (5)
cmd/geth (3)
params (1)
cmd/utils (1)
consensus/ethash (1)
core (1)
eth (1)
823/12
eth/catalyst/api.go (604)
eth/catalyst/api_test.go (458)
eth/catalyst/gen_ed.go (234)
eth/catalyst/api_types.go (140)
eth/catalyst/gen_blockparams.go (92)
#22686 core/state/snapshot: avoid copybytes for stacktrie 2/0/0
core/state/snapshot (1)
trie (1)
3/3
trie/trie_test.go (8)
core/state/snapshot/generate.go (4)
#22694 cmd/devp2p: add support for -limit option in nodeset filter command 3/0/0
cmd/devp2p (3)
122/4
cmd/devp2p/nodesetcmd.go (142)
cmd/devp2p/nodeset.go (56)
cmd/devp2p/README.md (54)
‼️ #22695 cmd/devp2p: add dns nuke-route53 command 2/0/0
cmd/devp2p (2)
74/16
cmd/devp2p/dns_route53.go (110)
cmd/devp2p/dnscmd.go (70)
#22663 core: nuke legacy snapshot supporting 4/0/0
core/state/snapshot (2)
core (2)
12/472
core/blockchain_snapshot_test.go (640)
core/state/snapshot/journal.go (244)
core/state/snapshot/snapshot.go (54)
core/blockchain.go (30)
‼️ #22697 ethash: no block reward in catalyst mode 1/0/0
consensus/ethash (1)
4/0
consensus/ethash/consensus.go (8)
‼️ #22685 trie: make stacktrie support binary marshal/unmarshal 2/0/0
trie (2)
140/1
trie/stacktrie.go (188)
trie/stacktrie_test.go (94)
‼️ #22693 go.mod: upgrade gopsutils to fix OpenBSD/arm64 build 2/0/0
go.mod (1)
go.sum (1)
13/2
go.sum (20)
go.mod (10)
‼️ #22704 tests: disable blockchain tests based on general state tests 1/0/0
tests (1)
1/1
tests/block_test.go (4)
‼️ #22245 eth/tracer: extend call tracer 3/0/0
eth/tracers (2)
internal/ethapi (1)
226/21
eth/tracers/api_test.go (340)
internal/ethapi/api.go (88)
eth/tracers/api.go (66)
‼️ #22711 eth/tracers, internal/ethapi: fix typos causing lint issue 2/0/0
internal/ethapi (1)
eth/tracers (1)
2/2
eth/tracers/api_test.go (4)
internal/ethapi/api.go (4)
‼️ #22707 les: clean up resources during test 2/0/0
les (2)
24/10
les/test_helper.go (36)
les/server.go (32)
#22470 trie: improve the node iterator seek operation 2/0/0
trie (2)
202/24
trie/iterator.go (290)
trie/iterator_test.go (162)
‼️ #22585 accounts/external, signer/core: clef support for 2930-type txs 4/0/0
signer/core (3)
accounts/external (1)
65/3
signer/core/types.go (68)
accounts/external/backend.go (28)
signer/core/cliui.go (24)
signer/core/api.go (16)
⚠️ #22677 rpc: return new HTTPError type for HTTP error responses 4/0/0
rpc (4)
81/23
rpc/http_test.go (78)
rpc/errors.go (58)
rpc/http.go (48)
rpc/types.go (24)
#22608 eth/protocols, prp/tracker: add support for req/rep rtt tracking 6/3/0
eth/protocols/eth (4)
eth/protocols/snap (3)
p2p (1)
p2p/tracker (1)
309/11
p2p/tracker/tracker.go (406)
eth/protocols/eth/peer.go (70)
eth/protocols/eth/tracker.go (52)
eth/protocols/snap/tracker.go (52)
eth/protocols/eth/handlers.go (20)
‼️ #22698 cmd/devp2p: ethtest suite runnable as unit test 6/1/0
cmd/devp2p/internal/ethtest (7)
269/74
cmd/devp2p/internal/ethtest/suite.go (208)
cmd/devp2p/internal/ethtest/suite_test.go (198)
cmd/devp2p/internal/ethtest/transaction.go (112)
cmd/devp2p/internal/ethtest/eth66_suite.go (92)
cmd/devp2p/internal/ethtest/chain.go (58)
#22667 core/state/snapshot: reuse memory data instead of hitting disk when generating 2/0/0
trie (1)
core/state/snapshot (1)
64/6
trie/iterator.go (100)
core/state/snapshot/generate.go (40)
‼️ #22630 cmd/devp2p/internal/ethtest: add more tx propagation tests 5/0/0
cmd/devp2p/internal/ethtest (5)
278/58
cmd/devp2p/internal/ethtest/transaction.go (264)
cmd/devp2p/internal/ethtest/eth66_suite.go (194)
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go (180)
cmd/devp2p/internal/ethtest/types.go (24)
cmd/devp2p/internal/ethtest/suite.go (10)
#22703 p2p/discover: handle IPv4 mapped in IPv6 addresses 2/0/0
p2p/discover (2)
40/1
p2p/discover/v5_udp_test.go (64)
p2p/discover/v5_udp.go (18)
#22728 core/rawdb: fix datarace in freezer 2/0/0
core/rawdb (2)
113/37
core/rawdb/freezer_table.go (184)
core/rawdb/freezer_table_test.go (116)
‼️ #22625 les: polish code 4/0/0
les (3)
les/vflux/server (1)
83/63
les/vflux/server/prioritypool.go (246)
les/server_handler.go (42)
les/metrics.go (2)
les/peer.go (2)
#22696 build: upgrade to golangci-lint v1.39.0 4/0/0
build (2)
consensus/ethash (1)
eth/catalyst (1)
40/26
build/checksums.txt (66)
eth/catalyst/api_test.go (36)
consensus/ethash/ethash.go (26)
build/ci.go (4)
‼️ #21467 consensus/ethash: less lookups of block data 1/0/0
consensus/ethash (1)
14/6
consensus/ethash/consensus.go (40)
#22634 cmd/puppeth: support authentication via ssh agent 1/0/0
cmd/puppeth (1)
38/24
cmd/puppeth/ssh.go (124)
‼️ #22746 build: upgrade -dlgo version to Go 1.16.3 2/0/0
build (2)
14/13
build/checksums.txt (50)
build/ci.go (4)
⚠️ #22702 core/vm: make gas cost reporting to tracers correct 2/0/0
core/vm (1)
core/vm/runtime (1)
98/4
core/vm/runtime/runtime_test.go (160)
core/vm/operations_acl.go (44)
#22668 eth/protocols/snap: generate storage trie from full dirty snap data 9/3/0
eth/protocols/snap (5)
core/rawdb (2)
ethdb (1)
ethdb/leveldb (1)
ethdb/memorydb (1)
tests/fuzzers/stacktrie (1)
trie (1)
603/188
eth/protocols/snap/sync.go (816)
eth/protocols/snap/range_test.go (286)
eth/protocols/snap/sync_test.go (226)
eth/protocols/snap/range.go (160)
core/rawdb/database_test.go (34)
#22751 p2p/tracker: properly clean up fulfilled requests 1/0/0
p2p/tracker (1)
1/0
p2p/tracker/tracker.go (2)
#22753 p2p/tracker: only reschedule wake if previous didn't run 1/0/0
p2p/tracker (1)
3/2
p2p/tracker/tracker.go (10)
‼️ #22749 cmd/devp2p, eth/protocols: earlier sanity check + fix flakey test 4/0/0
cmd/devp2p/internal/ethtest (3)
eth/protocols/eth (1)
16/8
cmd/devp2p/internal/ethtest/suite_test.go (24)
eth/protocols/eth/handlers.go (12)
cmd/devp2p/internal/ethtest/eth66_suite.go (8)
cmd/devp2p/internal/ethtest/large.go (4)
#22722 eth/gasprice: improve stability of estimated price 1/0/0
eth/gasprice (1)
3/0
eth/gasprice/gasprice.go (6)
‼️ #22755 tests/fuzzers: crypto/bn256 and crypto/bls12381 tests against gnark-crypto 4/1/1
tests/fuzzers/bls12381 (2)
tests/fuzzers/bn256 (1)
go.mod (1)
go.sum (1)
oss-fuzz.sh (1)
306/159
tests/fuzzers/bls12381/bls12381_fuzz.go (488)
go.sum (306)
tests/fuzzers/bn256/bn256_fuzz.go (96)
go.mod (30)
oss-fuzz.sh (10)
‼️ #22756 les, tests: fix les clientpool 3/0/0
les/vflux/server (1)
tests/fuzzers/vflux (1)
tests/fuzzers/vflux/debug (1)
67/19
tests/fuzzers/vflux/clientpool-fuzzer.go (152)
les/vflux/server/clientpool.go (14)
tests/fuzzers/vflux/debug/main.go (6)
‼️ #22754 cmd/devp2p: fix flakey SameRequestID test 2/0/0
cmd/devp2p/internal/ethtest (2)
78/31
cmd/devp2p/internal/ethtest/eth66_suite.go (142)
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go (76)
‼️ #22761 eth/protocols/snap: lower the packet size to avoid overloading link 1/0/0
eth/protocols/snap (1)
2/2
eth/protocols/snap/sync.go (8)
‼️ #22760 trie: remove redundant returns + use stacktrie where applicable 6/0/0
trie (3)
core/state/snapshot (1)
eth/protocols/snap (1)
tests/fuzzers/rangeproof (1)
96/97
trie/proof_test.go (176)
trie/proof.go (138)
tests/fuzzers/rangeproof/rangeproof-fuzzer.go (28)
trie/notary.go (28)
eth/protocols/snap/sync.go (12)
#22762 core, eth, ethdb, trie: simplify range proofs 11/0/1
trie (4)
tests/fuzzers/rangeproof (1)
tests/fuzzers/stacktrie (1)
core/state/snapshot (1)
eth/protocols/snap (1)
ethdb (1)
ethdb/leveldb (1)
ethdb/memorydb (1)
core/rawdb (1)
149/237
eth/protocols/snap/sync.go (242)
trie/proof.go (164)
trie/proof_test.go (124)
trie/notary.go (114)
ethdb/batch.go (56)
‼️ #22765 eth: restore eth_hashrate API endpoint 1/0/0
eth (1)
5/0
eth/api.go (10)
#22770 catalyst: check if block exists in assemble-block call with unknown parent-hash 1/0/0
eth/catalyst (1)
5/0
eth/catalyst/api.go (10)
#22778 add myself as CODEOWNER for catalyst 1/0/0
.github (1)
1/0
.github/CODEOWNERS (2)
‼️ #22776 Fix comment on read head block 1/0/0
core/rawdb (1)
1/1
core/rawdb/accessors_chain.go (4)
‼️ #22767 evm: Remove errors left after removed EIP-2315 1/0/0
core/vm (1)
0/5
core/vm/errors.go (10)
#22764 github: add note about screenshots in issue template 1/0/0
.github/ISSUE_TEMPLATE (1)
2/0
.github/ISSUE_TEMPLATE/bug.md (4)
‼️ #22781 core/types: add license header 1/0/0
core/types (1)
16/0
core/types/transaction_marshalling.go (32)
#22785 core/vm: fix typo in comment 1/0/0
core/vm (1)
1/1
core/vm/operations_acl.go (4)
‼️ #22783 core: remove unused else branch in reorg 1/0/0
core (1)
0/1
core/blockchain.go (2)
‼️ #22774 core/vm: replace repeated string with predefined variable 1/0/0
core/vm (1)
35/34
core/vm/instructions_test.go (138)
‼️ #22773 core: fix typo in comment 1/0/0
core (1)
1/1
core/blockchain.go (4)
‼️ #22748 README.md: update commands table, add note about web3.js version 1/0/0
README.md (1)
7/4
README.md (22)
‼️ #22782 eth/filters: fix comment on PublicFilterAPI timeoutLoop 1/0/0
eth/filters (1)
2/2
eth/filters/api.go (8)
⚠️ #22772 core/state: remove toAddr helper in tests 2/0/0
core/state (2)
9/11
core/state/state_test.go (28)
core/state/statedb_test.go (12)
‼️ #22777 core, eth: abort snapshot generation on snap sync and resume later 10/0/0
core/rawdb (3)
core/state/snapshot (3)
eth/downloader (2)
core (1)
eth/protocols/snap (1)
115/31
core/state/snapshot/snapshot.go (136)
core/rawdb/accessors_snapshot.go (40)
core/state/snapshot/journal.go (30)
core/state/snapshot/generate.go (20)
eth/downloader/downloader.go (20)
‼️ #22789 eth/protocols/snap: use storage batch, not account batch in st task 1/0/0
eth/protocols/snap (1)
1/1
eth/protocols/snap/sync.go (4)
‼️ #22757 cmd/devp2p: fix flakey tests in CI 4/0/0
cmd/devp2p/internal/ethtest (4)
32/37
cmd/devp2p/internal/ethtest/suite.go (50)
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go (38)
cmd/devp2p/internal/ethtest/types.go (26)
cmd/devp2p/internal/ethtest/eth66_suite.go (24)
‼️ #22766 core/vm: clean up contract creation error handling 1/0/0
core/vm (1)
8/9
core/vm/evm.go (34)
‼️ #22797 Fix interpreter comment 1/0/0
core/vm (1)
2/2
core/vm/interpreter.go (8)
‼️ #22788 params: remove dependency on crypto 1/0/0
params (1)
13/7
params/config.go (40)
‼️ #22738 cmd/utils: don't crash on nonexistent datadir 1/0/0
cmd/utils (1)
1/1
cmd/utils/flags.go (4)
‼️ #22739 core: remove old conversion to shuffle leveldb blocks into ancients 1/0/0
core (1)
7/56
core/blockchain.go (126)
‼️ #22803 eth: don't print db upgrade warning on db init 1/0/0
eth (1)
3/1
eth/backend.go (8)
‼️ #22808 cmd/utils: use eth DNS tree for snap discovery 7/0/0
eth (2)
go.mod (1)
go.sum (1)
p2p/dnsdisc (1)
cmd/utils (1)
eth/protocols/snap (1)
48/39
p2p/dnsdisc/client.go (102)
eth/discovery.go (22)
eth/backend.go (20)
cmd/utils/flags.go (12)
eth/protocols/snap/handler.go (12)
⚠️ #22804 build: improve cross compilation setup 4/1/0
internal/build (3)
Makefile (1)
build (1)
221/162
build/ci.go (412)
internal/build/gotool.go (298)
internal/build/util.go (28)
Makefile (22)
internal/build/env.go (6)
‼️ #22814 go.mod: go mod tidy 2/0/0
go.mod (1)
go.sum (1)
1/2
go.mod (4)
go.sum (2)
‼️ #22813 build: fix iOS framework build 1/0/0
build (1)
3/0
build/ci.go (6)
‼️ #22811 appveyor.yml: upgrade to VisualStudio 2019 image 1/0/0
appveyor.yml (1)
14/26
appveyor.yml (80)
#22821 build: fix windows installer build for NSIS v3.05 1/0/0
build (1)
1/1
build/nsis.envvarupdate.nsh (4)
‼️ #22801 cmd/devp2p: `TestSimultaneousRequests` sends both requests from the same connection 1/0/0
cmd/devp2p/internal/ethtest (1)
21/20
cmd/devp2p/internal/ethtest/eth66_suite.go (82)

161 Changed files

🔍 File Lines Changed Linked PR
‼️ eth/protocols/snap/sync.go 1432 #22678
#22665
#22504
#22668
#22762
#22761
#22777
#22789
#22760
‼️ core/state/snapshot/generate.go 1374 #22686
#22504
#22667
#22762
#22777
#22760
core/state/snapshot/generate_test.go 1298 #22504
‼️ eth/downloader/downloader_test.go 666 #22636
#22777
‼️ core/blockchain_snapshot_test.go 640 #22663
eth/catalyst/api.go 614 #22641
#22770
tests/fuzzers/bls12381/bls12381_fuzz.go 488 #22755
eth/catalyst/api_test.go 482 #22641
#22696
‼️ cmd/devp2p/internal/ethtest/eth66_suite.go 450 #22630
#22698
#22749
#22754
#22757
#22801
‼️ build/ci.go 418 #22696
#22746
#22804
#22813
p2p/tracker/tracker.go 410 #22751
#22753
#22608
trie/iterator.go 382 #22470
#22667
‼️ eth/tracers/api_test.go 340 #22245
#22711
‼️ go.sum 316 #22693
#22755
#22808
#22814
‼️ cmd/devp2p/internal/ethtest/transaction.go 316 #22630
#22698
‼️ core/state/snapshot/journal.go 304 #22663
#22504
#22777
internal/build/gotool.go 298 #22804
‼️ cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go 294 #22630
#22698
#22754
#22757
eth/protocols/snap/range_test.go 286 #22668
‼️ cmd/devp2p/internal/ethtest/suite.go 256 #22630
#22698
#22757
‼️ les/vflux/server/prioritypool.go 246 #22625
log/format.go 236 #22679
#22665
eth/catalyst/gen_ed.go 234 #22641
‼️ eth/protocols/eth/handler_test.go 230 #22636
‼️ eth/protocols/snap/sync_test.go 226 #22668
core/rawdb/freezer_table.go 222 #22633
#22728
‼️ trie/stacktrie.go 220 #22673
#22685
‼️ core/blockchain.go 220 #22641
#22663
#22665
#22739
#22777
#22773
#22783
cmd/devp2p/internal/ethtest/suite_test.go 214 #22698
#22749
core/state/snapshot/snapshot.go 210 #22663
#22504
#22777
‼️ trie/proof.go 198 #22762
#22760
‼️ trie/stacktrie_test.go 192 #22673
#22685
‼️ trie/proof_test.go 192 #22762
#22760
log/format_test.go 190 #22679
#22665
trie/iterator_test.go 162 #22470
⚠️ core/vm/runtime/runtime_test.go 160 #22702
eth/protocols/snap/range.go 160 #22668
‼️ tests/fuzzers/vflux/clientpool-fuzzer.go 152 #22756
cmd/devp2p/nodesetcmd.go 142 #22694
eth/catalyst/api_types.go 140 #22641
‼️ core/vm/instructions_test.go 138 #22774
cmd/puppeth/ssh.go 124 #22634
core/rawdb/freezer_table_test.go 124 #22633
#22728
‼️ build/checksums.txt 116 #22696
#22746
‼️ cmd/geth/dbcmd.go 116 #22633
trie/notary.go 114 #22762
#22760
‼️ cmd/devp2p/dns_route53.go 110 #22695
‼️ eth/protocols/eth/handler.go 106 #22636
#22608
‼️ p2p/dnsdisc/client.go 102 #22808
‼️ tests/fuzzers/bn256/bn256_fuzz.go 96 #22755
eth/catalyst/gen_blockparams.go 92 #22641
‼️ internal/ethapi/api.go 88 #22245
#22711
‼️ eth/handler_eth_test.go 84 #22636
‼️ params/config.go 82 #22559
#22641
#22788
‼️ appveyor.yml 80 #22811
‼️ rpc/http_test.go 78 #22677
‼️ cmd/geth/snapshot.go 76 #22504
‼️ cmd/devp2p/dnscmd.go 70 #22695
⚠️ core/genesis_test.go 70 #22559
‼️ eth/protocols/eth/peer.go 70 #22608
‼️ signer/core/types.go 68 #22585
‼️ eth/tracers/api.go 66 #22245
p2p/discover/v5_udp_test.go 64 #22703
core/state/snapshot/wipe.go 64 #22504
‼️ core/types/block.go 64 #22666
‼️ cmd/faucet/faucet.go 60 #22545
cmd/devp2p/internal/ethtest/chain.go 58 #22698
rpc/errors.go 58 #22677
‼️ cmd/devp2p/internal/ethtest/types.go 56 #22630
#22698
#22757
cmd/devp2p/nodeset.go 56 #22694
‼️ cmd/devp2p/README.md 54 #22694
‼️ cmd/utils/flags.go 52 #22641
#22808
#22738
eth/protocols/snap/tracker.go 52 #22608
‼️ eth/protocols/eth/tracker.go 52 #22608
‼️ consensus/ethash/consensus.go 52 #21467
#22641
#22697
ethdb/batch.go 50 #22668
#22762
core/vm/operations_acl.go 48 #22702
#22785
core/state/sync.go 48 #22504
⚠️ rpc/http.go 48 #22677
‼️ les/server_handler.go 44 #22636
#22625
‼️ tests/fuzzers/rangeproof/rangeproof-fuzzer.go 42 #22762
#22760
‼️ core/rawdb/accessors_snapshot.go 40 #22777
‼️ go.mod 38 #22693
#22755
#22808
#22814
‼️ les/test_helper.go 36 #22707
trie/trie.go 34 #22504
core/rawdb/database_test.go 34 #22668
‼️ core/vm/evm.go 34 #22766
‼️ eth/protocols/snap/handler.go 32 #22668
#22608
#22808
‼️ core/types/transaction_marshalling.go 32 #22781
‼️ eth/protocols/eth/handlers.go 32 #22608
#22749
‼️ les/vflux/server/clientpool.go 32 #22650
#22756
‼️ les/server.go 32 #22707
‼️ eth/downloader/downloader.go 30 #22636
#22777
‼️ eth/backend.go 30 #22641
#22803
#22808
⚠️ internal/build/util.go 28 #22804
⚠️ accounts/external/backend.go 28 #22585
⚠️ core/state/state_test.go 28 #22772
⚠️ consensus/ethash/ethash.go 26 #22696
‼️ cmd/geth/config.go 26 #22641
⚠️ rpc/types.go 24 #22677
core/state/sync_test.go 24 #22504
signer/core/cliui.go 24 #22585
⚠️ Makefile 22 #22804
‼️ README.md 22 #22748
‼️ les/vflux/server/clientpool_test.go 22 #22650
‼️ eth/discovery.go 22 #22808
‼️ les/vflux/server/balance.go 20 #22650
trie/sync.go 18 #22504
p2p/discover/v5_udp.go 18 #22703
‼️ signer/core/api.go 16 #22585
‼️ eth/downloader/peer.go 16 #22636
eth/fetcher/block_fetcher.go 16 #22652
core/rawdb/schema.go 14 #22633
#22777
‼️ eth/protocols/snap/peer.go 14 #22608
trie/trie_test.go 12 #22686
#22504
#22668
#22762
‼️ cmd/evm/README.md 12 #22665
‼️ les/vflux/server/balance_test.go 12 #22650
‼️ cmd/evm/testdata/8/readme.md 12 #22665
‼️ core/rawdb/database.go 12 #22777
‼️ eth/handler.go 12 #22636
⚠️ core/state/statedb_test.go 12 #22772
‼️ eth/protocols/eth/protocol.go 10 #22636
‼️ eth/api.go 10 #22765
‼️ oss-fuzz.sh 10 #22755
‼️ core/vm/errors.go 10 #22767
‼️ eth/filters/api.go 8 #22782
‼️ core/vm/interpreter.go 8 #22797
‼️ eth/protocols/eth/handshake_test.go 8 #22636
trie/committer.go 8 #22504
‼️ core/blockchain_test.go 8 #22665
accounts/accounts.go 8 #22645
‼️ eth/sync_test.go 8 #22636
internal/build/env.go 6 #22804
‼️ tests/fuzzers/vflux/debug/main.go 6 #22756
‼️ p2p/metrics.go 6 #22608
eth/gasprice/gasprice.go 6 #22722
les/client_handler.go 6 #22636
‼️ params/version.go 4
⚠️ core/rawdb/freezer.go 4 #22633
build/nsis.envvarupdate.nsh 4 #22821
core/chain_indexer.go 4 #22665
‼️ eth/downloader/statesync.go 4 #22504
⚠️ common/types.go 4 #22665
‼️ cmd/devp2p/internal/ethtest/large.go 4 #22749
accounts/url.go 4 #22665
‼️ core/state/statedb.go 4 #22504
‼️ core/headerchain.go 4 #22665
.github/ISSUE_TEMPLATE/bug.md 4 #22764
‼️ tests/block_test.go 4 #22704
‼️ core/state/snapshot/conversion.go 4 #22504
‼️ core/rawdb/accessors_chain.go 4 #22776
les/metrics.go 2 #22625
.github/CODEOWNERS 2 #22778
⚠️ cmd/geth/usage.go 2 #22641
les/peer.go 2 #22625
‼️ cmd/geth/main.go 2 #22641
```` 0 #22668
#22762
```` 0 #22668
#22762
tests/fuzzers/bls12381/precompile_fuzzer.go 0 #22755
```` 0 #22668
#22762
```` 0 #22668
#22762

karalabe and others added 30 commits February 16, 2021 10:44
core/state/snapshot: ensure Cap retains a min number of layers
This updates the eth protocol test suite to use the message type
definitions of the 'production' protocol implementation in eth/protocols/eth.
This PR optimizes the broadcast loop. Instead of iterating twice through a given set of transactions to weed out which peers have and which do not have a tx, to send/announce transactions, we do it only once.
* core/state: copy the snap when copying the state

* core/state: deep-copy snap stuff during state Copy
io.Reader may return n > 0 and io.EOF at the end of the input stream.
readFull did not handle this correctly, looking only at the error. This fixes
it to check for n == len(buf) as well.
* eth/protocols/eth: split up the eth protocol handlers

* eth/protocols/eth: define eth-66 protocol messages

* eth/protocols/eth: poc implement getblockheaders on eth/66

* eth/protocols/eth: implement remaining eth-66 handlers

* eth/protocols: define handler map for eth 66

* eth/downloader: use protocol constants from eth package

* eth/protocols/eth: add ETH66 capability

* eth/downloader: tests for eth66

* eth/downloader: fix error in tests

* eth/protocols/eth: use eth66 for outgoing requests

* eth/protocols/eth: remove unused error type

* eth/protocols/eth: define protocol length

* eth/protocols/eth: fix pooled tx over eth66

* protocols/eth/handlers: revert behavioural change which caused tests to fail

* eth/downloader: fix failing test

* eth/protocols/eth: add testcases + fix flaw with header requests

* eth/protocols: change comments

* eth/protocols/eth: review fixes + fixed flaw in RequestOneHeader

* eth/protocols: documentation

* eth/protocols/eth: review concerns about types
In the random sync algorithm used by the DNS node iterator, we first pick a random
tree and then perform one sync action on that tree. This happens in a loop until any
node is found. If no trees contain any nodes, the iterator will enter a hot loop spinning
at 100% CPU.

The fix is complicated. The iterator now checks if a meaningful sync action can
be performed on any tree. If there is nothing to do, it waits for the next root record
recheck time to arrive and then tries again.

Fixes #22306
* les/lespay/server: fix balance expiration and add test

* les: move client balances to a new db

* les: rename lespayDb to lesDb
* les: refactored server handler

* tests/fuzzers/les: add fuzzer for les server handler

* tests, les: update les fuzzer

tests: update les fuzzer

tests/fuzzer/les: release resources

tests/fuzzer/les: pre-initialize all resources

* les: refactored server handler and fuzzer

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
This PR introduces:

- db.put to put a value into the database
- db.get to read a value from the database
- db.delete to delete a value from the database
- db.stats to check compaction info from the database
- db.compact to trigger a db compaction

It also moves inspectdb to db.inspect.
This PR prevents users from submitting transactions without EIP-155 enabled. This behaviour can be overridden by specifying the flag --rpc.allow-unprotected-txs=true.
* travis, appveyor, build: bump Go to 1.16

* accounts/abi/bind: fix up Go mod files for Go 1.16
cmd/utils: disable caching preimages by default
travis: bump Android NDK version
aaronbuchwald and others added 25 commits April 30, 2021 12:49
core, eth: abort snapshot generation on snap sync and resume later
eth/protocols/snap: use storage batch, not account batch in st task
This PR fixes a couple of issues in the eth test suite that caused flakiness when run in the CI.
Do not keep separate flag for "max code size exceeded" case, but instead
assign appropriate error for it sooner.
* Fix interpreter comment

* Fix comment
* params: remove dependency on crypto

Package params should not depend on package crypto because building
crypto requires cgo.

Since build/ci.go needs package params to get the go-ethereum version
number, C code must be compiled in order to run the build tool, which is
annoying for certain cross-compilation setups.

* params: add SectionHead
core: remove old conversion to shuffle leveldb blocks into ancients
eth: don't print db upgrade warning on db init
This removes auto-configuration of the snap.*.ethdisco.net DNS discovery tree.
Since measurements have shown that > 75% of nodes in all.*.ethdisco.net support
snap, we have decided to retire the dedicated index for snap and just use the eth
tree instead.

The dial iterators of eth and snap now use the same DNS tree in the default configuration,
so both iterators should use the same DNS discovery client instance. This ensures that
the record cache and rate limit are shared. Records will not be requested multiple times.

While testing the change, I noticed that duplicate DNS requests do happen even
when the client instance is shared. This is because the two iterators request the tree
root, link tree root, and first levels of the tree in lockstep. To avoid this problem, the
change also adds a singleflight.Group instance in the client. When one iterator
attempts to resolve an entry which is already being resolved, the singleflight object
waits for the existing resolve call to finish and returns the entry to both places.
This PR cleans up the CI build system and fixes a couple of issues.

- The go tool launcher code has been moved to internal/build. With the new
  toolchain functions, the environment of the host Go (i.e. the one that built
  ci.go) and the target Go (i.e. the toolchain downloaded by -dlgo) are isolated
  more strictly. This is important to make cross compilation and -dlgo work
  correctly in more cases.
- The -dlgo option now skips the download and uses the host Go if the running Go
  version matches dlgoVersion exactly.
- The 'test' command now supports -dlgo, -cc and -arch. Running unit tests with
  foreign GOARCH is occasionally useful. For example, it can be used to run
  32-bit tests on Windows. It can also be used to run darwin/amd64 tests on
  darwin/arm64 using Rosetta 2.
- The 'aar', 'xcode' and 'xgo' commands now use a slightly different method to
  install external tools. They previously used `go get`, but this comes with the
  annoying side effect of modifying go.mod. They now use `go install` instead,
  which is the recommended way of installing tools without modifying the local
  module.
- The old build warning about outdated Go version has been removed because we're
  much better at keeping backwards compatibility now.
This updates go.mod for the addition of golang.org/x/sync.
This fixes a regression introduced in #22804.
With the update to a newer AppVeyor build image, creating the Windows
installer no longer worked because of a string quoting error in EnvVarUpdate.nsh.

This applies the fix recommended in https://stackoverflow.com/questions/62081765.
…tion (#22801)

This changes the SimultaneousRequests test to send the requests from the same
connection, as it doesn't really make sense to test whether a node can respond
to two requests with different request IDs from separate connections.
@CLAassistant
Copy link

CLAassistant commented Jul 14, 2022

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 7 committers have signed the CLA.

❌ GregTheGreek
❌ gbotrel
❌ gballet
❌ aaronbuchwald
❌ protolambda
❌ chfast
❌ ligi
You have signed the CLA already but the status is still pending? Let us recheck it.

@antonydenyer antonydenyer self-assigned this Jul 15, 2022
@quorumbot quorumbot closed this Jul 15, 2022
@quorumbot quorumbot deleted the upgrade/go-ethereum/v1.10.3-2022714134454 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.