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 #1469

Merged

Conversation

quorumbot
Copy link
Collaborator

@quorumbot quorumbot commented Aug 5, 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: 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)
common (1)
eth/protocols/snap (1)
accounts (1)
cmd/evm (1)
cmd/evm/testdata/8 (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)
core (1)
eth (1)
params (1)
cmd/utils (1)
consensus/ethash (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
trie (1)
core/state/snapshot (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 (2)
core/state/snapshot (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.sum (1)
go.mod (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
eth/tracers (1)
internal/ethapi (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)
trie (1)
ethdb (1)
ethdb/leveldb (1)
ethdb/memorydb (1)
tests/fuzzers/stacktrie (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)
go.mod (1)
go.sum (1)
oss-fuzz.sh (1)
tests/fuzzers/bn256 (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)
core/state/snapshot (1)
eth/protocols/snap (1)
ethdb/leveldb (1)
tests/fuzzers/rangeproof (1)
core/rawdb (1)
ethdb (1)
ethdb/memorydb (1)
tests/fuzzers/stacktrie (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)
p2p/dnsdisc (1)
cmd/utils (1)
eth/protocols/snap (1)
go.mod (1)
go.sum (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
‼️ core/blockchain.go 220 #22641
#22663
#22665
#22739
#22777
#22773
#22783
‼️ trie/stacktrie.go 220 #22673
#22685
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
eth/protocols/snap/range.go 160 #22668
⚠️ core/vm/runtime/runtime_test.go 160 #22702
‼️ 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
core/rawdb/freezer_table_test.go 124 #22633
#22728
cmd/puppeth/ssh.go 124 #22634
‼️ cmd/geth/dbcmd.go 116 #22633
‼️ build/checksums.txt 116 #22696
#22746
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
‼️ eth/protocols/eth/peer.go 70 #22608
‼️ cmd/devp2p/dnscmd.go 70 #22695
⚠️ core/genesis_test.go 70 #22559
‼️ signer/core/types.go 68 #22585
‼️ eth/tracers/api.go 66 #22245
core/state/snapshot/wipe.go 64 #22504
‼️ core/types/block.go 64 #22666
p2p/discover/v5_udp_test.go 64 #22703
‼️ cmd/faucet/faucet.go 60 #22545
rpc/errors.go 58 #22677
cmd/devp2p/internal/ethtest/chain.go 58 #22698
‼️ cmd/devp2p/internal/ethtest/types.go 56 #22630
#22698
#22757
cmd/devp2p/nodeset.go 56 #22694
‼️ cmd/devp2p/README.md 54 #22694
‼️ eth/protocols/eth/tracker.go 52 #22608
‼️ cmd/utils/flags.go 52 #22641
#22808
#22738
‼️ consensus/ethash/consensus.go 52 #21467
#22641
#22697
eth/protocols/snap/tracker.go 52 #22608
ethdb/batch.go 50 #22668
#22762
⚠️ rpc/http.go 48 #22677
core/vm/operations_acl.go 48 #22702
#22785
core/state/sync.go 48 #22504
‼️ 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
‼️ les/vflux/server/clientpool.go 32 #22650
#22756
‼️ core/types/transaction_marshalling.go 32 #22781
‼️ eth/protocols/eth/handlers.go 32 #22608
#22749
‼️ 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
⚠️ core/state/state_test.go 28 #22772
⚠️ accounts/external/backend.go 28 #22585
⚠️ consensus/ethash/ethash.go 26 #22696
‼️ cmd/geth/config.go 26 #22641
signer/core/cliui.go 24 #22585
⚠️ rpc/types.go 24 #22677
core/state/sync_test.go 24 #22504
‼️ README.md 22 #22748
‼️ les/vflux/server/clientpool_test.go 22 #22650
‼️ eth/discovery.go 22 #22808
⚠️ Makefile 22 #22804
‼️ les/vflux/server/balance.go 20 #22650
p2p/discover/v5_udp.go 18 #22703
trie/sync.go 18 #22504
‼️ eth/downloader/peer.go 16 #22636
eth/fetcher/block_fetcher.go 16 #22652
‼️ signer/core/api.go 16 #22585
core/rawdb/schema.go 14 #22633
#22777
‼️ eth/protocols/snap/peer.go 14 #22608
‼️ core/rawdb/database.go 12 #22777
trie/trie_test.go 12 #22686
#22504
#22668
#22762
‼️ cmd/evm/testdata/8/readme.md 12 #22665
‼️ eth/handler.go 12 #22636
‼️ cmd/evm/README.md 12 #22665
‼️ les/vflux/server/balance_test.go 12 #22650
⚠️ core/state/statedb_test.go 12 #22772
‼️ oss-fuzz.sh 10 #22755
‼️ eth/protocols/eth/protocol.go 10 #22636
‼️ core/vm/errors.go 10 #22767
‼️ eth/api.go 10 #22765
‼️ eth/sync_test.go 8 #22636
accounts/accounts.go 8 #22645
‼️ core/blockchain_test.go 8 #22665
‼️ core/vm/interpreter.go 8 #22797
‼️ eth/protocols/eth/handshake_test.go 8 #22636
‼️ eth/filters/api.go 8 #22782
trie/committer.go 8 #22504
‼️ p2p/metrics.go 6 #22608
eth/gasprice/gasprice.go 6 #22722
les/client_handler.go 6 #22636
‼️ tests/fuzzers/vflux/debug/main.go 6 #22756
internal/build/env.go 6 #22804
⚠️ common/types.go 4 #22665
‼️ core/headerchain.go 4 #22665
‼️ tests/block_test.go 4 #22704
accounts/url.go 4 #22665
‼️ cmd/devp2p/internal/ethtest/large.go 4 #22749
‼️ core/rawdb/accessors_chain.go 4 #22776
core/chain_indexer.go 4 #22665
‼️ eth/downloader/statesync.go 4 #22504
build/nsis.envvarupdate.nsh 4 #22821
⚠️ core/rawdb/freezer.go 4 #22633
.github/ISSUE_TEMPLATE/bug.md 4 #22764
‼️ core/state/statedb.go 4 #22504
‼️ core/state/snapshot/conversion.go 4 #22504
‼️ params/version.go 4
les/peer.go 2 #22625
les/metrics.go 2 #22625
⚠️ cmd/geth/usage.go 2 #22641
‼️ cmd/geth/main.go 2 #22641
.github/CODEOWNERS 2 #22778
```` 0 #22668
#22762
```` 0 #22668
#22762
```` 0 #22668
#22762
tests/fuzzers/bls12381/precompile_fuzzer.go 0 #22755
```` 0 #22668
#22762

holiman and others added 30 commits February 18, 2021 18:54
* 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
This removes support for all deprecated flags except --rpc*.
eth/protocols/snap: lower abortion and resumption logs to debug
This PR adds a more CLI flag, so that the les-server can serve light clients even the local node is not synced yet.

This functionality is needed in some testing environments(e.g. hive). After launching the les server, no more blocks will be imported so the node is always marked as "non-synced".
Transaction unindexing will be enabled by default as of 1.10, which causes tx status retrieval will be broken without this PR. 

This PR introduces a retry mechanism in TxStatus retrieval.
This adds support for EIP-2718 typed transactions as well as EIP-2930
access list transactions (tx type 1). These EIPs are scheduled for the
Berlin fork.

There very few changes to existing APIs in core/types, and several new APIs
to deal with access list transactions. In particular, there are two new
constructor functions for transactions: types.NewTx and types.SignNewTx.
Since the canonical encoding of typed transactions is not RLP-compatible,
Transaction now has new methods for encoding and decoding: MarshalBinary
and UnmarshalBinary.

The existing EIP-155 signer does not support the new transaction types.
All code dealing with transaction signatures should be updated to use the
newer EIP-2930 signer. To make this easier for future updates, we have
added new constructor functions for types.Signer: types.LatestSigner and
types.LatestSignerForChainID. 

This change also adds support for the YoloV3 testnet.

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
* les: move serverPool to les/vflux/client

* les: add metrics

* les: moved ValueTracker inside ServerPool

* les: protect against node registration before server pool is started

* les/vflux/client: fixed tests

* les: make peer registration safe
This makes the WebSocket message size limit independent of the
limit used for HTTP requests. The new limit for WebSocket messages 
is 15MB.
all: define and enable the Berlin hard fork on all networks
fjl and others added 8 commits May 4, 2021 11:29
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 Aug 5, 2022

CLA assistant check
All committers have signed the CLA.

@baptiste-b-pegasys baptiste-b-pegasys marked this pull request as ready for review August 10, 2022 17:43
SECURITY.md Outdated
@@ -2,31 +2,29 @@

## Supported Versions

Please see Releases. We recommend to use the most recent released version.
Please see [Releases](https://github.com/ethereum/go-ethereum/releases). We recommend using the [most recently released version](https://github.com/ethereum/go-ethereum/releases/latest).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Please see [Releases](https://github.com/ethereum/go-ethereum/releases). We recommend using the [most recently released version](https://github.com/ethereum/go-ethereum/releases/latest).
Please see [Releases](https://github.com/ConsenSys/quorum/releases). We recommend using the [most recently released version](https://github.com/ConsenSys/quorum/releases/latest).

cmd/geth/chaincmd.go Outdated Show resolved Hide resolved
@antonydenyer antonydenyer merged commit 5028075 into Consensys:master Aug 23, 2022
@baptiste-b-pegasys baptiste-b-pegasys deleted the upgrade/go-ethereum/v1.10.3-2022805130510 branch September 22, 2022 09:56
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.