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.0 #16

Closed

Conversation

baptiste-b-pegasys
Copy link
Owner

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: Pangaea Expanse (v1.10.0)

  • Version: v1.10.0
  • Published: 2021-03-03T16:59:53Z

Release notes

After three months of development, we are proud to announce the Geth 1.10.0 release, which is the first release in the 1.10 series.

There are a lot of new features in this release. While we review the highlights and list individual changes in this overview, we also invite you to read the Geth 1.10 release blog post, which explains the changes in more detail.

State snapshot system

In this release, the new snapshot mechanism is enabled by default. Snapshots provide O(1) access to state during EVM execution and also serve as the backbone of the snap sync and state pruning features. Note: should you run into any issues with snapshots, they can still be disabled using the --snapshot=false command-line flag. (#22280, #22177, #22288)

Snap sync

This is a new sync mode, which is a replacement for 'fast sync'. In snap sync, the node downloads Ethereum state data much more efficiently than fast sync ever could. With snap sync, we can also finally provide a progress indicator for the state download. Since this is a new feature, and few peers will support snap sync initially, snap sync is not yet enabled by default. We will make it the default in a couple of weeks. (#21482, #22171, #22235, #22272, #22334)

Berlin fork support

As of Geth 1.10.0, all EIPs scheduled for the Berlin hard fork are supported in Geth. However, due to ongoing debates about the content and timing of the fork, this release does not activate Berlin at any block number.

The following Berlin EIPs were already implemented in Geth 1.9.x:

  • EIP-2929: gas cost increases for state access opcodes
  • EIP-2315: simple subroutines for the EVM

In Geth 1.10.0, support for the following EIPs has been added:

  • EIP-2565: modexp precompile gas cost changes (#22213)
  • EIP-2718: typed transaction envelope (#21502)
  • EIP-2930: access list transactions (#21502)

We have also updated to the latest consensus tests. (#22009, #22290)

Offline state pruning

We have finally added a way to remove old state from the database. Using the geth snapshot prune-state command, you can instruct geth to rebuild the database from the stored snapshot while discarding any data that isn't part of the snapshot window of 128 blocks. Note that this feature is experimental. The pruning process takes a lot of time and geth cannot be used while it is running. We hope to improve this in future releases. (#21724, #22386, #22291, #22294)

Database changes

Geth 1.10.0 contains some changes which remove unnecessary data in the blockchain database. In particular, Geth no longer keeps transaction inclusion info for all transactions, and instead limits the storage of inclusion records to one year. For application developers, this change means that very old transactions can no longer be accessed by hash. Note: if you would like to
disable this behavior and keep inclusion information for all historical transactions, you can re-enable indexing using the --txlookuplimit=0 command-line flag. (#22293, #22419)

Storing trie key preimages is now disabled by default. This data is mostly used for contract debugging, e.g. in remix. You can re-enable storing preimages using the --cache.preimages flag. (#22350)

eth/66 protocol

Geth now supports eth protocol version 66, which adds request IDs. While the new protocol version is supported on the server side, Geth does not use request IDs yet. (#22241)

We have also added a cross-client test suite for the new protocol version in the devp2p tool. (#22363)

les/4 protocol

Geth 1.10.0 updates the light client protocol to version 4. The new protocol version uses the eth2 Discovery v5 DHT, has better support for servers which can't serve old transactions, and adds support for EIP-2364 ForkID in the handshake. (#21909, #22321, #22357, #22343, #22125, #22347, #21940, #22349, #21930)

Geth command changes

  • We have fully removed many deprecated command-line flags. (#22263)
  • Geth will now terminate gracefully when the disk is almost full, to avoid database corruption. (#22103)
  • Geth now tracks unclean shutdowns and warns you about them when starting back up. (#21893)
  • Whisper-related flags have been removed. (#22421)
  • USB hardware wallet support is now off by default in geth. It can be enabled using the --usb flag. (#21984, #22130)
  • Using the new --log.json flag, you can instruct geth to output machine-readable logs. (#22207)
  • Geth now provides some low-level leveldb commands for debugging. (#22014)
  • Geth now has a --mainnet flag, which is useful for scripting. (#21932)
  • Geth has a new flag --light.nosyncserve to enable serving light clients before sync completes. This is meant to be used for testing. (#22250)

RPC changes

  • Non-EIP155 transactions (i.e. transactions which are not replay-protected) are now rejected by the RPC API. Note: you can disable this restriction using the --rpc.allow-unprotected-txs command-line flag. (#22339)
  • More transaction details are logged when submitting through RPC. (#22170)
  • It is now possible to configure the JSON-RPC server on a custom path prefix. (#22184)
  • eth_chainID now returns an error when the chain has not activated EIP-155 yet. (#21686)
  • The WebSocket transport now limits RPC messages to 15MB. They were previously limited to 5MB. (#22385)
  • The 'bad blocks' tracker now persists some recently seen bad blocks, so they can still
    be accessed after a restart. (#21827)

GraphQL changes

We have made several backwards-incompatible changes to GraphQL APIs to better match the specification. In cases where the specification was vague, we have coordinated with the Besu development team to match their implementation.

  • Receipt status is now returned as an integer instead of a hex string. (#22187)
  • estimateGas and cumulativeGas queries now return an integer instead of a hex string. (#22126)
  • The gasLimit and gasUsed fields in responses are now integers instead of hex strings. (#21883)
  • Retrieving blocks by number now works correctly. (#22153)

Go API changes

  • We have added new constructor functions for transactions in package core/types: types.NewTx and types.SignNewTx. These functions allow creating EIP-2930 access list transactions from Go code. (#21502)
  • The eth.Config type has moved to a new package eth/ethconfig. (#22205)
  • ethconfig.Config has a new field SyncFromCheckpoint, which instructs geth to start syncing at an arbitrary checkpoint (#22123)
  • The event package provides a new helper, event.ResubscribeErr for improved logging of subscription errors. (#22191)
  • The consensus.Engine interface no longer provides the VerifySeal method. (#22274)
  • The rpc.Client.ShhSubscribe method is now deprecated. (#22239)
  • Package accounts/keystore now uses github.com/google/uuid to generate key UUIDs. This affects the type definition of keystore.Key because the type of the Id field is now different. We believe this change won't cause any issues because key UUIDs are not used often. (#22217)

Build changes

  • We have updated many external dependencies to newer versions. (#22216, #22227, #22134)
  • go-ethereum no longer depends on github.com/wsddn/go-ecdh (#22212)
  • go-ethereum no longer depends on github.com/aristanetworks/goarista (#22211)
  • Automated builds now use Go 1.16 (#22351)
  • Linux builders now use Ubuntu 18.04 Bionic (#22369)
  • The mobile framework is now built against NDK version r21e. (#22368, #22373)

Optimizations

This section lists miscellaneous optimizations which were applied during the 1.10.0 development cycle.

  • core: speed up header import (#21967)
  • core/state: convert prefetcher to concurrent per-trie loader (#21047)
  • core: switch to github.com/holiman/bloomfilter/v2 (#22044)
  • core/state/snapshot: write snapshot generator in batch (#22163)
  • core/state/snapshot: merge loops for better performance (#22160)
  • eth/downloader: optimize to avoid a copy in state sync hashing (#22035)
  • eth/protocols/snap: speed up hash checks (#22023)
  • eth: optimize tx broadcast mechanism (#22176)
  • consensus/ethash: implement faster difficulty calculators (#21976)
  • core/txpool: remove "local" notion from the txpool price heap (#21478)
  • eth, core: speed up some tests (#22000)

Bug fixes

This section lists miscellaneous bug fixes and changes which were applied during the 1.10.0 development cycle.

  • accounts/abi/bind: fixed unpacking error (#22230)
  • accounts/abi/bind: fix error-handling in wrappers for functions returning structs (#22005)
  • cmd/abigen: clarify abigen alias flag usage (#21875)
  • cmd/clef: don't check file permissions on windows (#22251)
  • cmd/devp2p: fix documentation for eth-test (#22298)
  • cmd/faucet: fix nonce-gap problem (#22145)
  • cmd/faucet: fix websocket race regression after switching to gorilla (#22136)
  • cmd/faucet: sort requests by newest first (#22018)
  • cmd/faucet: support v1.1 Twitter API in faucet, fix puppeth (#22107)
  • cmd/faucet: switch Facebook auth over to mobile site (#22137)
  • cmd/faucet: update the embedded website asset (#22169)
  • cmd/faucet: use Twitter API instead of scraping webpage (#21850)
  • cmd/geth: CLI help fixes (#22220)
  • cmd/geth: dump config for metrics (#22083)
  • cmd/geth: fix js unclean shutdown (#22302)
  • cmd/utils: add workaround for FreeBSD statfs quirk (#22310)
  • cmd/utils: avoid making console preloads absolute (#22109)
  • common/compiler: fix parsing of solc output with solidity v.0.8.0 (#22092)
  • consensus: refactor FinalizeAndAssemble to use Finalize (#21993)
  • core/state/snapshot: ensure Cap retains a min number of layers (#22331)
  • core/state: copy the snap when copying the state (#22340)
  • core/state: fix panic in state dumping (#22225)
  • core: fix temp memory blowup caused by defers holding on to state (#22319)
  • core: reset to genesis when middle block is missing (#22135)
  • core: reset txpool state on sethead (#22247)
  • ethclient: better test suite for ethclient package (#22127)
  • eth/downloader: enhanced test cases for downloader queue (#22114)
  • eth/filters: fix potential deadlock in filter timeout loop (#22178)
  • eth/protocols/eth: fix slice resize flaw (#22181)
  • eth/protocols/snap: track reverts when peer rejects request (#22016)
  • eth/tracers: fix unigram tracer (#22248)
  • eth/tracers: include intrinsic gas in calltracer, expose for all tracers (#22038)
  • eth: improve transaction broadcaset log messages (#22146)
  • internal/ethapi: restore net_version RPC method (#22061)
  • les: don't drop sentTo for normal cases (#22048)
  • metrics: fix cast omission in cpu_syscall.go (#22262)
  • miner, test: fix potential goroutine leak (#21989)
  • miner: avoid sleeping in miner (#22108)
  • node: always show websocket url in logs (#22307)
  • p2p/dnsdisc: fix hot-spin when all trees are empty (#22313)
  • rlp: handle case of normal EOF in Stream.readFull (#22336)
  • tests/fuzzers/abi: better test generation (#22158)
  • tests/fuzzers/abi: fixed one-off panic with int.Min64 value (#22233)
  • tests/fuzzers/les: add fuzzer for les server handler (#22282)
  • tests/fuzzers: added consensys/gurvy library to bn256 differential fuzzer (#21812)
  • tests/fuzzers: fix abi fuzzer (#22199)
  • tests/fuzzers: fix false positive in bitutil fuzzer (#22076)
  • trie: fix bloom crash on fast sync restart (#22332)
  • trie: fix range prover (#22210)

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

171 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
‼️ # 21994 les: rework arm64's undefined workaround 1/0/0
les/utils (1)
8/4
les/utils/expiredvalue.go (24)
‼️ # 21989 miner, test: fix potential goroutine leak 2/0/0
miner (1)
eth/downloader (1)
6/2
miner/worker.go (12)
eth/downloader/downloader_test.go (4)
# 21850 cmd/faucet: use Twitter API instead of website 3/0/0
cmd/puppeth (2)
cmd/faucet (1)
110/13
cmd/faucet/faucet.go (186)
cmd/puppeth/wizard_faucet.go (46)
cmd/puppeth/module_faucet.go (14)
‼️ # 21478 core/txpool: remove "local" notion from the txpool price heap 3/0/0
core (3)
271/145
core/tx_pool.go (390)
core/tx_list.go (304)
core/tx_pool_test.go (138)
# 21976 consensus/ethash: implement faster difficulty calculators 3/3/0
consensus/ethash (3)
oss-fuzz.sh (1)
tests/fuzzers/difficulty/debug (1)
tests/fuzzers/difficulty (1)
469/0
consensus/ethash/difficulty.go (386)
tests/fuzzers/difficulty/difficulty-fuzz.go (290)
consensus/ethash/consensus_test.go (204)
tests/fuzzers/difficulty/debug/main.go (46)
consensus/ethash/consensus.go (10)
‼️ # 21993 consensus: refactor FinalizeAndAssemble to use Finalize 2/0/0
consensus/clique (1)
consensus/ethash (1)
4/6
consensus/clique/clique.go (10)
consensus/ethash/consensus.go (10)
‼️ # 21893 implement unclean-shutdown marker 5/0/0
core/rawdb (3)
eth (1)
les (1)
95/5
core/rawdb/accessors_metadata.go (126)
eth/backend.go (30)
les/client.go (28)
core/rawdb/schema.go (12)
core/rawdb/database.go (4)
⚠️ # 22005 abi/bind: fix error-handling in generated wrappers for functions returning structs 2/0/0
accounts/abi/bind (2)
42/0
accounts/abi/bind/bind_test.go (78)
accounts/abi/bind/template.go (6)
# 21875 doc: clarify abigen alias flag usage 1/0/0
cmd/abigen (1)
1/1
cmd/abigen/main.go (4)
‼️ # 21482 core, eth: split eth package, implement snap protocol 24/4/2
eth (15)
eth/downloader (6)
core/rawdb (2)
core (2)
core/state/snapshot (1)
core/state (1)
cmd/utils (1)
core/forkid (1)
cmd/geth (1)
1950/2735
eth/handler.go (1734)
eth/peer.go (1608)
eth/handler_eth_test.go (1480)
eth/handler_test.go (1472)
eth/peerset.go (602)
‼️ # 22002 cmd/geth: fixed parallelized tests 1/0/0
cmd/geth (1)
1/0
cmd/geth/accountcmd_test.go (2)
# 21999 eth/protocols/eth: remove magic numbers in tests 1/0/0
eth/protocols/eth (1)
11/11
eth/protocols/eth/handler_test.go (44)
# 22000 eth, core: speed up some tests 2/0/0
core/bloombits (2)
9/2
core/bloombits/matcher_test.go (12)
core/bloombits/scheduler_test.go (10)
# 21909 les: les/4 minimalistic version 4/0/0
les (3)
cmd/utils (1)
40/6
les/peer.go (64)
cmd/utils/flags.go (14)
les/protocol.go (10)
les/odr_requests.go (4)
⚠️ # 22018 cmd/faucet: sort requests by newest first 1/0/0
cmd/faucet (1)
2/2
cmd/faucet/faucet.go (8)
# 22035 eth/download/statesync : state hash sum optimized 1/0/0
eth/downloader (1)
6/6
eth/downloader/statesync.go (24)
⚠️ # 22019 snapshot mode typo 1/0/0
eth/downloader (1)
1/1
eth/downloader/modes.go (4)
‼️ # 22061 internal/ethapi: restore net_version RPC method 3/0/0
eth (1)
internal/ethapi (1)
les (1)
11/5
internal/ethapi/api.go (24)
eth/backend.go (4)
les/client.go (4)
# 22029 common,crypto: move fuzzers out of core 1/0/3
oss-fuzz.sh (1)
tests/fuzzers/bitutil (1)
tests/fuzzers/bn256 (1)
tests/fuzzers/runtime (1)
84/38
oss-fuzz.sh (176)
tests/fuzzers/bitutil/compress_fuzz.go (28)
tests/fuzzers/runtime/runtime_fuzz.go (28)
tests/fuzzers/bn256/bn256_fuzz.go (12)
‼️ # 22079 README.md: update Travis badge 1/0/0
README.md (1)
1/1
README.md (4)
‼️ # 22038 eth, eth/tracers: expose gas used in tx to js tracer 6/0/0
eth/tracers (3)
eth/tracers/internal/tracers (2)
eth (1)
92/94
eth/tracers/tracer_test.go (302)
eth/tracers/tracer.go (42)
eth/tracers/internal/tracers/assets.go (12)
eth/tracers/tracers_test.go (8)
eth/api_tracer.go (4)
# 22076 tests/fuzzers: fix false positive in bitutil fuzzer 1/0/0
tests/fuzzers/bitutil (1)
13/1
tests/fuzzers/bitutil/compress_fuzz.go (28)
⚠️ # 22071 cmd/geth: Replace wiki links with new doc pages 1/0/0
cmd/geth (1)
3/3
cmd/geth/consolecmd.go (12)
‼️ # 22070 eth/filters: Replace wiki links with new doc pages 1/0/0
eth/filters (1)
7/7
eth/filters/api.go (28)
# 22069 signer: Replace wiki links with new doc pages 1/0/0
signer/fourbyte (1)
3/3
signer/fourbyte/abi_test.go (12)
# 22052 eth/downloader: removed unnecessary invalid chain error check 1/0/0
eth/downloader (1)
0/3
eth/downloader/queue.go (6)
‼️ # 22066 README.md: Replace wiki links with new doc pages 1/0/0
README.md (1)
13/13
README.md (52)
# 22026 core/rawdb, eth/protocols : Method name typo fix 2/0/0
core/rawdb (1)
eth/protocols/snap (1)
3/3
core/rawdb/accessors_snapshot.go (8)
eth/protocols/snap/sync.go (4)
‼️ # 22053 accounts/abi/bind: fix NewFallback test 1/0/0
accounts/abi/bind (1)
3/6
accounts/abi/bind/bind_test.go (18)
# 22104 snapshot: fixed typo; gethring -> gathering 1/0/0
core/state/snapshot (1)
1/1
core/state/snapshot/generate.go (4)
‼️ # 22099 cmd/geth: update copyright year 1/0/0
cmd/geth (1)
1/1
cmd/geth/main.go (4)
‼️ # 22068 .github: Replace wiki links with new doc pages 1/0/0
.github (1)
2/2
.github/CONTRIBUTING.md (8)
‼️ # 22105 ``node: rename startNetworking to `openEndpoints``` 1/0/0
node (1)
7/4
node/node.go (22)
# 22067 SECURITY.md: link to release page 1/0/0
SECURITY.md (1)
4/6
SECURITY.md (20)
# 22107 cmd: support v1.1 Twitter API in faucet, fix puppeth 3/1/0
cmd/faucet (2)
cmd/puppeth (2)
118/52
cmd/faucet/faucet.go (200)
cmd/faucet/README.md (100)
cmd/puppeth/wizard_faucet.go (36)
cmd/puppeth/module_faucet.go (4)
‼️ # 22108 miner: avoid sleeping in miner 1/0/0
miner (1)
0/7
miner/worker.go (14)
‼️ # 21984 cmd/geth: usb is off by default 3/0/0
cmd/geth (2)
cmd/utils (1)
12/3
cmd/utils/flags.go (22)
cmd/geth/usage.go (6)
cmd/geth/main.go (2)
‼️ # 21883 graphql: use a decimal representation for gas limit and gas used 2/0/0
graphql (2)
150/81
graphql/graphql_test.go (350)
graphql/graphql.go (112)
‼️ # 21932 cmd/geth: added --mainnet flag 4/0/0
cmd/geth (3)
cmd/utils (1)
15/1
cmd/utils/flags.go (24)
cmd/geth/chaincmd.go (4)
cmd/geth/main.go (2)
cmd/geth/usage.go (2)
# 22092 common/compiler: fix parsing of solc output with solidity v.0.8.0 1/0/0
common/compiler (1)
48/2
common/compiler/solidity.go (100)
# 22114 eth/downloader: enhanced test cases for downloader queue 1/0/0
eth/downloader (1)
35/9
eth/downloader/queue_test.go (88)
‼️ # 22124 crypto: fix ineffectual assignments 2/0/0
crypto/bls12381 (1)
crypto/signify (1)
4/2
crypto/signify/signify_fuzz.go (8)
crypto/bls12381/arithmetic_fallback.go (4)
‼️ # 22126 graphql: return decimal for `estimateGas` and `cumulativeGas` queries 2/0/0
graphql (2)
20/13
graphql/graphql.go (54)
graphql/graphql_test.go (12)
‼️ # 22133 snapshot, trie: fixed typos, mostly in snapshot pkg 10/0/0
core/state/snapshot (9)
trie (1)
21/21
core/state/snapshot/difflayer.go (20)
core/state/snapshot/iterator_binary.go (16)
core/state/snapshot/iterator_fast.go (12)
core/state/snapshot/iterator.go (8)
core/state/snapshot/snapshot.go (8)
⚠️ # 22122 cmd/utils, eth/downloader: minor snap nitpicks 2/0/0
cmd/utils (1)
eth/downloader (1)
2/3
eth/downloader/downloader.go (8)
cmd/utils/flags.go (2)
# 22016 snap: track revertals when peer rejects request 1/0/0
eth/protocols/snap (1)
116/56
eth/protocols/snap/sync.go (344)
⚠️ # 22136 cmd/faucet: fix websocket race regression after switching to gorilla 1/0/0
cmd/faucet (1)
35/24
cmd/faucet/faucet.go (118)
# 22023 eth/protocols/snap: speed up hash checks 1/1/0
eth/protocols/snap (2)
107/6
eth/protocols/snap/sync_test.go (196)
eth/protocols/snap/sync.go (30)
# 22137 cmd/faucet: switch Facebook auth over to mobile site 1/1/0
cmd/faucet (2)
51/2
cmd/faucet/faucet_test.go (86)
cmd/faucet/faucet.go (20)
# 22125 les: remove transaction propagation limits 1/0/0
les (1)
8/22
les/txrelay.go (60)
# 22145 cmd/faucet: fix nonce-gap problem 2/0/0
cmd/faucet (2)
3/4
cmd/faucet/faucet.go (10)
cmd/faucet/faucet.html (4)
‼️ # 22127 ethclient: better test suite for ethclient package 1/0/0
ethclient (1)
231/28
ethclient/ethclient_test.go (518)
⚠️ # 22140 eth/downloader: fix race condition in tests 1/0/0
eth/downloader (1)
4/3
eth/downloader/downloader_test.go (14)
⚠️ # 21827 core: persist bad blocks 7/0/0
core/rawdb (4)
eth (2)
core (1)
196/41
core/rawdb/accessors_chain.go (194)
core/rawdb/accessors_chain_test.go (140)
eth/api.go (62)
core/blockchain.go (46)
core/rawdb/schema.go (16)
# 22157 common/prque: pull in tests and benchmarks from upstream 0/2/0
common/prque (2)
230/0
common/prque/prque_test.go (260)
common/prque/sstack_test.go (200)
# 22146 eth: improve log message 2/0/0
eth (2)
5/5
eth/handler.go (12)
eth/peerset.go (8)
⚠️ # 22153 graphql: fix issue with unmarshalling int32 into `Long` type 1/0/0
graphql (1)
1/1
graphql/schema.go (4)
‼️ # 21686 eth: change chainID method to return chainID from config or error if before EIP-155 1/0/0
eth (1)
4/4
eth/api.go (16)
‼️ # 22109 cmd/utils: avoid making console preloads absolute 1/0/0
cmd/utils (1)
1/2
cmd/utils/flags.go (6)
# 22044 go.mod: use github.com/holiman/bloomfilter/v2 5/0/0
trie (2)
core/state/snapshot (1)
go.mod (1)
go.sum (1)
18/78
trie/sync_bloom.go (102)
go.sum (68)
go.mod (14)
core/state/snapshot/difflayer.go (4)
trie/sync.go (4)
# 22130 cmd/utils: don't enumerate usb when --usb isn't set 12/0/0
cmd/geth (5)
miner (2)
node (2)
p2p/simulations/adapters (2)
cmd/utils (1)
21/23
cmd/geth/accountcmd_test.go (20)
cmd/utils/flags.go (16)
cmd/geth/les_test.go (12)
node/config.go (10)
cmd/geth/dao_test.go (8)
# 22009 tests: update the reference tests 1/0/0
tests (1)
1/1
tests/testdata (4)
‼️ # 22164 graphql: fix spurious error in test 1/0/0
graphql (1)
9/1
graphql/graphql_test.go (20)
# 22162 consensus/ethash: increase seal timeout for tests 1/0/0
consensus/ethash (1)
1/1
consensus/ethash/ethash_test.go (4)
‼️ # 22166 graphql: fix spurious travis failure 1/0/0
graphql (1)
6/6
graphql/graphql_test.go (24)
# 22169 cmd/faucet: update the embedded website asset 1/0/0
cmd/faucet (1)
3/3
cmd/faucet/website.go (12)
# 22177 core/state/snapshot: add generation logs to storage too 1/0/0
core/state/snapshot (1)
4/0
core/state/snapshot/generate.go (8)
# 22048 les: don't drop sentTo for normal cases 1/0/0
les (1)
0/5
les/retrieve.go (10)
# 22181 Fix queue slicing 1/0/0
eth/protocols/eth (1)
1/1
eth/protocols/eth/broadcast.go (4)
‼️ # 22115 les: remove useless protocol defines 4/0/0
les (4)
23/22
les/server_handler.go (64)
les/odr_requests.go (18)
les/benchmark.go (4)
les/handler_test.go (4)
# 22158 tests/fuzzers/abi: better test generation 3/0/0
tests/fuzzers/abi (2)
oss-fuzz.sh (1)
51/79
tests/fuzzers/abi/abifuzzer.go (230)
tests/fuzzers/abi/abifuzzer_test.go (18)
oss-fuzz.sh (12)
# 22083 cmd/geth: dump config for metrics 2/1/0
cmd/geth (1)
cmd/utils (1)
metrics (1)
92/10
metrics/config.go (90)
cmd/geth/config.go (86)
cmd/utils/flags.go (28)
# 22163 core/state/snapshot: write snapshot generator in batch 3/0/0
core/state/snapshot (2)
core (1)
653/417
core/blockchain_snapshot_test.go (2066)
core/state/snapshot/generate.go (70)
core/state/snapshot/journal.go (4)
‼️ # 22103 cmd/geth: Graceful shutdown if disk is full 4/2/0
cmd/utils (4)
cmd/geth (2)
113/2
cmd/utils/diskusage_windows.go (76)
cmd/utils/diskusage.go (70)
cmd/utils/cmd.go (68)
cmd/utils/flags.go (8)
cmd/geth/main.go (6)
‼️ # 22123 eth, les: add new config "syncFromCheckpoint" 7/0/0
les (5)
eth (2)
209/35
les/sync_test.go (304)
les/sync.go (104)
eth/gen_config.go (24)
eth/config.go (22)
les/client_handler.go (18)
‼️ # 22199 oss-fuzz: fix abi fuzzer 1/0/0
oss-fuzz.sh (1)
1/1
oss-fuzz.sh (4)
‼️ # 22134 go.mod: upgrade to golang-lru v0.5.5 2/0/0
go.sum (1)
go.mod (1)
3/3
go.sum (8)
go.mod (4)
⚠️ # 21744 downloader: extract findAncestor search functions 1/0/0
eth/downloader (1)
27/0
eth/downloader/downloader.go (54)
‼️ # 21047 core: improve trie updates (part 2) 11/1/0
core/state (6)
crypto (2)
accounts/abi/bind/backends (1)
core (1)
eth (1)
miner (1)
545/81
core/state/trie_prefetcher.go (668)
core/state/statedb.go (248)
core/state/state_object.go (168)
crypto/crypto.go (34)
miner/worker.go (32)
‼️ # 22178 eth/filters: fix potential deadlock in filter timeout loop 4/0/0
eth/filters (2)
les (1)
eth (1)
101/22
eth/filters/filter_system_test.go (172)
eth/filters/api.go (66)
eth/backend.go (4)
les/client.go (4)
# 22191 event: resubscribe with error handler 2/0/0
event (2)
64/4
event/subscription_test.go (72)
event/subscription.go (64)
# 22210 trie: fix range prover 2/0/0
trie (2)
48/15
trie/proof.go (88)
trie/proof_test.go (38)
‼️ # 22211 common/mclock: remove dependency on github.com/aristanetworks/goarista 3/1/0
common/mclock (2)
go.mod (1)
go.sum (1)
9/7
common/mclock/mclock.go (24)
go.sum (4)
common/mclock/mclock.s (2)
go.mod (2)
# 22220 cmd, geth: CLI help fixes 1/0/0
internal/flags (1)
3/3
internal/flags/helpers.go (12)
# 22179 eth/protocols/snap: snap sync testing 6/0/0
eth/protocols/snap (4)
eth/downloader (1)
eth (1)
1248/147
eth/protocols/snap/sync_test.go (2040)
eth/protocols/snap/sync.go (698)
eth/handler.go (32)
eth/protocols/snap/peer.go (10)
eth/downloader/downloader.go (8)
‼️ # 22216 go.mod: update dependencies 2/0/0
go.mod (1)
go.sum (1)
338/30
go.sum (692)
go.mod (44)
‼️ # 22187 graphql: change receipt status to decimal instead of hex 2/0/0
graphql (2)
14/8
graphql/graphql.go (32)
graphql/graphql_test.go (12)
‼️ # 22227 go.mod: upgrade github.com/huin/goupnp 2/0/0
go.mod (1)
go.sum (1)
5/8
go.sum (22)
go.mod (4)
# 22160 snapshot: merge loops for better performance 1/0/0
core/state/snapshot (1)
4/8
core/state/snapshot/difflayer.go (24)
‼️ # 22135 core: aiming genesis when middle block is missing 1/0/0
core (1)
7/2
core/blockchain.go (18)
# 22161 eth/tracers: move tracing APIs into eth/tracers 4/3/1
eth (3)
eth/tracers (2)
les (2)
cmd/utils (1)
1071/322
eth/tracers/api.go (1116)
eth/tracers/api_test.go (974)
eth/state_accessor.go (460)
les/state_accessor.go (176)
eth/api_backend.go (24)
⚠️ # 22171 eth, eth/downloader,p2p: reserve half peer slots for snap peers during snap sync 4/0/0
eth (3)
p2p (1)
37/3
eth/handler.go (30)
eth/peerset.go (22)
p2p/peer.go (20)
eth/sync.go (8)
# 22233 tests/fuzzers/abi: fixed one-off panic with int.Min64 value 2/0/0
tests/fuzzers/abi (2)
5/4
tests/fuzzers/abi/abifuzzer.go (10)
tests/fuzzers/abi/abifuzzer_test.go (8)
‼️ # 22170 internal/ethapi: print tx details when submitting 1/0/0
internal/ethapi (1)
9/7
internal/ethapi/api.go (32)
⚠️ # 22225 core/state: fix panic in state dumping 1/0/0
core/state (1)
1/1
core/state/dump.go (4)
# 21967 core: speed up header import 3/0/0
core (1)
core/rawdb (1)
consensus/ethash (1)
28/24
consensus/ethash/consensus.go (72)
core/headerchain.go (22)
core/rawdb/freezer_table.go (10)
‼️ # 22212 accounts/scwallet: use go-ethereum crypto instead of go-ecdh 3/0/0
accounts/scwallet (1)
go.mod (1)
go.sum (1)
7/17
accounts/scwallet/securechannel.go (42)
go.sum (4)
go.mod (2)
# 22242 accounts/scwallet: update documentation 1/0/0
accounts/scwallet (1)
8/4
accounts/scwallet/README.md (24)
⚠️ # 21940 les: switch to new discv5 12/0/18
p2p/discv5 (18)
les (6)
mobile (2)
cmd/utils (1)
p2p (1)
cmd/bootnode (1)
cmd/faucet (1)
95/6184
p2p/discv5/net.go (2538)
p2p/discv5/ticket.go (1768)
p2p/discv5/sim_test.go (864)
p2p/discv5/udp.go (858)
p2p/discv5/node.go (826)
⚠️ # 22239 rpc: deprecate Client.ShhSubscribe 1/0/0
rpc (1)
1/0
rpc/client.go (2)
‼️ # 22213 cmd,core,eth,params,tests: enable 2565 for yolov3 23/0/0
core/vm (4)
cmd/geth (4)
tests (4)
core (3)
params (2)
core/vm/runtime (1)
cmd/puppeth (1)
cmd/utils (1)
tests/fuzzers/bls12381 (1)
cmd/evm/internal/t8ntool (1)
eth/tracers (1)
112/88
core/vm/contracts.go (70)
params/config.go (62)
cmd/utils/flags.go (56)
core/genesis.go (28)
core/vm/evm.go (20)
‼️ # 21930 les/utils: UDP rate limiter 1/2/0
les/utils (3)
625/14
les/utils/limiter.go (810)
les/utils/limiter_test.go (412)
les/utils/weighted_select.go (56)
‼️ # 22251 cmd/clef: don't check file permissions on windows, closes #20123 1/0/0
cmd/clef (1)
4/2
cmd/clef/main.go (12)
# 22248 eth/tracers: fix unigram tracer's return value 2/0/0
eth/tracers/internal/tracers (2)
17/24
eth/tracers/internal/tracers/assets.go (74)
eth/tracers/internal/tracers/unigram_tracer.js (8)
⚠️ # 22235 eth: check snap satelliteness, delegate drop to eth 13/0/0
eth (8)
eth/protocols/eth (2)
eth/protocols/snap (2)
p2p (1)
201/236
eth/peerset.go (522)
eth/handler.go (212)
p2p/peer.go (22)
eth/peer.go (18)
eth/handler_snap.go (16)
‼️ # 22184 node: serve JSON-RPC on custom path prefix 11/0/0
node (6)
cmd/geth (2)
cmd/utils (1)
go.sum (1)
graphql (1)
320/65
node/rpcstack_test.go (274)
node/node_test.go (214)
node/rpcstack.go (142)
node/node.go (40)
cmd/utils/flags.go (36)
# 21921 Remove uneeded syntax 15/0/0
cmd/puppeth (2)
metrics (2)
accounts/keystore (1)
core/vm/runtime (1)
crypto/bls12381 (1)
eth/protocols/snap (1)
metrics/exp (1)
signer/core (1)
trie (1)
core/state/snapshot (1)
crypto/signify (1)
eth/tracers (1)
node (1)
23/23
metrics/gauge_float64_test.go (24)
core/state/snapshot/conversion.go (8)
core/vm/runtime/runtime_test.go (8)
node/utils_test.go (8)
accounts/keystore/account_cache.go (4)
‼️ # 22246 trie : use trie.NewStackTrie instead of new(trie.Trie) 12/0/0
core (4)
eth/fetcher (2)
miner (2)
consensus/ethash (1)
les (1)
cmd/evm/internal/t8ntool (1)
consensus/clique (1)
15/15
cmd/evm/internal/t8ntool/execution.go (8)
core/blockchain_test.go (8)
les/odr_requests.go (8)
consensus/clique/clique.go (4)
consensus/ethash/consensus.go (4)
‼️ # 22247 core: properly reset the statedb on sethead 1/0/0
core (1)
30/29
core/tx_pool.go (118)
# 21812 bn256: added consensys/gurvy bn256 implementation 3/0/0
go.mod (1)
go.sum (1)
tests/fuzzers/bn256 (1)
180/18
go.sum (248)
tests/fuzzers/bn256/bn256_fuzz.go (146)
go.mod (2)
‼️ # 22270 internal/ethapi: comment nitpick 1/0/0
internal/ethapi (1)
1/1
internal/ethapi/api.go (4)
# 22205 eth: move eth.Config to a common package 19/1/2
les (6)
cmd/utils (3)
eth (2)
eth/ethconfig (2)
miner (2)
core (1)
ethclient (1)
graphql (1)
cmd/faucet (1)
cmd/geth (1)
mobile (1)
console (1)
265/215
cmd/utils/flags.go (218)
core/bloom_indexer.go (184)
eth/bloombits.go (138)
eth/ethconfig/config.go (128)
eth/backend.go (102)
‼️ # 22271 internal/ethapi: comment nitpick 1/0/0
internal/ethapi (1)
2/2
internal/ethapi/api.go (8)
⚠️ # 22272 eth: don't wait for snap registration if we're not running snap 2/0/0
eth (1)
p2p (1)
10/11
p2p/peer.go (34)
eth/peerset.go (8)
# 22274 consensus: Remove seal verification from the consensus engine interface 5/0/0
consensus/ethash (3)
consensus/clique (1)
consensus (1)
4/20
consensus/ethash/consensus.go (16)
consensus/clique/clique.go (12)
consensus/consensus.go (8)
consensus/ethash/ethash_test.go (8)
consensus/ethash/algorithm_test.go (4)
# 22262 Update cpu_syscall.go 1/0/0
metrics (1)
1/1
metrics/cpu_syscall.go (4)
‼️ # 22280 cmd/utils: enable snapshots by default 1/0/0
cmd/utils (1)
4/4
cmd/utils/flags.go (16)
# 21724 all: bloom-filter based pruning mechanism 17/3/0
core/state/snapshot (3)
cmd/geth (3)
core (3)
core/state/pruner (2)
tests (2)
core/rawdb (2)
eth (1)
go.sum (1)
trie (1)
cmd/utils (1)
go.mod (1)
1491/148
core/state/pruner/pruner.go (1074)
cmd/geth/snapshot.go (874)
core/state/snapshot/conversion.go (568)
core/state/pruner/bloom.go (264)
core/state/snapshot/snapshot.go (156)
‼️ # 22288 params: just to make snapshots a bit more official 1/0/0
params (1)
2/2
params/version.go (8)
# 22291 core/state/pruner: fix compaction after pruning 1/0/0
core/state/pruner (1)
10/3
core/state/pruner/pruner.go (26)
# 22294 core/state/pruner: fix compaction range error 1/0/0
core/state/pruner (1)
5/6
core/state/pruner/pruner.go (22)
# 22207 internal/debug: add switch to format logs with json 1/0/0
internal/debug (1)
21/12
internal/debug/flags.go (66)
⚠️ # 22230 accounts/abi/bind: fixed unpacking error 3/0/0
accounts/abi/bind (2)
accounts/abi (1)
68/1
accounts/abi/bind/bind_test.go (128)
accounts/abi/abi_test.go (6)
accounts/abi/bind/template.go (4)
‼️ # 22293 cmd/utils, eth/ethconfig: unindex txs older than ~1 year 2/0/0
cmd/utils (1)
eth/ethconfig (1)
4/3
cmd/utils/flags.go (12)
eth/ethconfig/config.go (2)
# 22298 cmd/devp2p: fix documentation for eth-test 1/0/0
cmd/devp2p (1)
4/2
cmd/devp2p/README.md (12)
‼️ # 22319 core: fix temp memory blowup caused by defers holding on to state 1/0/0
core (1)
12/1
core/blockchain.go (26)
‼️ # 22321 les: enable les/4 and add tests 5/0/0
les (5)
31/4
les/test_helper.go (24)
les/handler_test.go (20)
les/odr_test.go (10)
les/protocol.go (8)
les/request_test.go (8)
# 22310 cmd/utils: add workaround for FreeBSD statfs quirk 1/0/0
cmd/utils (1)
8/1
cmd/utils/diskusage.go (18)
⚠️ # 22302 cmd/geth: fix js unclean shutdown 1/0/0
cmd/geth (1)
2/7
cmd/geth/consolecmd.go (18)
⚠️ # 22316 rpc: increase the number of subscriptions in storm test 1/0/0
rpc (1)
1/1
rpc/client_test.go (4)
# 22332 trie: fix bloom crash on fast sync restart 1/0/0
trie (1)
6/2
trie/sync.go (16)
# 22331 core/state/snapshot: ensure Cap retains a min number of layers 2/0/0
core/state/snapshot (2)
65/93
core/state/snapshot/snapshot_test.go (222)
core/state/snapshot/snapshot.go (94)
‼️ # 22315 cmd/devp2p/internal/ethtest: use shared message types 4/0/0
cmd/devp2p/internal/ethtest (4)
36/84
cmd/devp2p/internal/ethtest/types.go (180)
cmd/devp2p/internal/ethtest/suite.go (38)
cmd/devp2p/internal/ethtest/chain_test.go (14)
cmd/devp2p/internal/ethtest/transaction.go (8)
# 22334 eth: fix snap sync cancellation 3/0/0
eth/protocols/snap (2)
eth/downloader (1)
6/4
eth/protocols/snap/sync.go (12)
eth/downloader/downloader.go (6)
eth/protocols/snap/protocol.go (2)
# 22176 eth/handler, broadcast: optimize tx broadcast mechanism 2/0/0
eth (1)
eth/protocols/eth (1)
36/32
eth/handler.go (112)
eth/protocols/eth/broadcast.go (24)
‼️ # 22340 core/state: copy the snap when copying the state 1/0/0
core/state (1)
25/0
core/state/statedb.go (50)
# 22336 rlp: handle case of normal EOF in Stream.readFull() 2/0/0
rlp (2)
27/1
rlp/decode_test.go (40)
rlp/decode.go (16)
‼️ # 22307 node: show websocket url in logs 1/0/0
node (1)
4/2
node/rpcstack.go (12)
⚠️ # 22241 eth: implement eth66 7/1/0
eth/protocols/eth (5)
eth/downloader (2)
p2p (1)
1120/395
eth/protocols/eth/handlers.go (1020)
eth/protocols/eth/handler.go (798)
eth/protocols/eth/protocol_test.go (400)
eth/downloader/downloader_test.go (370)
eth/protocols/eth/peer.go (226)
# 22313 p2p/dnsdisc: fix hot-spin when all trees are empty 3/0/0
p2p/dnsdisc (3)
138/19
p2p/dnsdisc/client.go (164)
p2p/dnsdisc/client_test.go (94)
p2p/dnsdisc/sync.go (56)
# 22347 les: rename lespay to vflux 10/0/20
les/vflux/client (13)
les (10)
les/vflux/server (7)
80/80
les/clientpool_test.go (56)
les/serverpool.go (56)
les/clientpool.go (52)
les/peer.go (40)
les/client.go (32)
# 22343 les: fix balance expiration 6/0/0
les (4)
les/vflux/server (2)
92/9
les/vflux/server/balance_test.go (146)
les/client.go (16)
les/server.go (16)
les/vflux/server/balance_tracker.go (12)
les/clientpool.go (8)
# 22282 tests/fuzzers/les: add fuzzer for les server handler 6/3/0
les (6)
oss-fuzz.sh (1)
tests/fuzzers/les/debug (1)
tests/fuzzers/les (1)
1218/687
les/server_handler.go (1560)
les/server_requests.go (1138)
tests/fuzzers/les/les-fuzzer.go (814)
les/protocol.go (130)
tests/fuzzers/les/debug/main.go (82)
# 22357 les: clean up server handler 2/0/0
les (2)
114/87
les/server_handler.go (370)
les/server_requests.go (32)
# 22014 cmd/geth: add db commands: stats, compact, put, get, delete 6/1/0
cmd/geth (3)
internal/flags (1)
cmd/utils (1)
core/rawdb (1)
ethdb/leveldb (1)
401/152
cmd/geth/dbcmd.go (682)
cmd/geth/chaincmd.go (258)
ethdb/leveldb/leveldb.go (112)
core/rawdb/database.go (24)
cmd/utils/flags.go (16)
‼️ # 22339 internal/ethapi: disable sending of non eip155 replay protected tx 9/0/0
eth (2)
internal/ethapi (2)
les (2)
cmd/geth (1)
cmd/utils (1)
node (1)
39/10
eth/api_backend.go (22)
les/api_backend.go (22)
cmd/utils/flags.go (14)
eth/backend.go (10)
internal/ethapi/backend.go (10)
‼️ # 22351 travis, appveyor, build: bump Go to 1.16 7/0/0
build (2)
appveyor.yml (1)
.travis.yml (1)
Dockerfile (1)
Dockerfile.alltools (1)
accounts/abi/bind (1)
34/29
build/checksums.txt (48)
.travis.yml (44)
accounts/abi/bind/bind_test.go (14)
appveyor.yml (8)
Dockerfile (4)
‼️ # 22350 cmd/utils: disable caching preimages by default 1/0/0
cmd/utils (1)
2/2
cmd/utils/flags.go (8)
# 22368 travis: bump Android NDK version 1/0/0
.travis.yml (1)
3/3
.travis.yml (12)
# 22369 travis: bump builders to Bionic 1/0/0
.travis.yml (1)
9/9
.travis.yml (36)
# 22373 travis: bump Java version to latest available on Bionic 1/0/0
.travis.yml (1)
13/14
.travis.yml (54)
# 22263 cmd/utils: remove deprecated command line flags 13/0/0
cmd/geth (7)
cmd/utils (2)
README.md (1)
cmd/clef (1)
cmd/puppeth (1)
internal/debug (1)
53/333
cmd/utils/flags_legacy.go (252)
cmd/utils/flags.go (232)
internal/debug/flags.go (110)
cmd/geth/main.go (68)
cmd/clef/main.go (36)
# 22381 eth/protocols/snap: lower abortion and resumption logs to debug 1/0/0
eth/protocols/snap (1)
2/2
eth/protocols/snap/sync.go (8)
# 22250 cmd, eth, les: enable serving light clients when non-synced 6/0/0
eth/ethconfig (2)
cmd/geth (2)
cmd/utils (1)
les (1)
21/1
cmd/utils/flags.go (14)
eth/ethconfig/gen_config.go (12)
les/server.go (12)
cmd/geth/main.go (2)
cmd/geth/usage.go (2)
# 22349 les, light: improve txstatus retrieval 15/0/0
les (13)
light (2)
784/250
les/test_helper.go (668)
les/handler_test.go (436)
les/odr_test.go (384)
les/odr.go (202)
les/sync_test.go (112)
‼️ # 21502 EIP-2718: Typed Transaction Envelope + EIP-2930 25/5/0
core (9)
cmd/evm/testdata/8 (4)
cmd/evm/internal/t8ntool (3)
cmd/evm (2)
core/types (2)
cmd/geth (2)
accounts/abi/bind (1)
accounts/abi/bind/backends (1)
core/state (1)
accounts/scwallet (1)
accounts/usbwallet (1)
cmd/clef (1)
accounts/keystore (1)
cmd/utils (1)
618/169
cmd/evm/internal/t8ntool/transition.go (270)
core/types/access_list_tx.go (230)
core/blockchain_test.go (204)
cmd/evm/testdata/8/readme.md (126)
cmd/evm/testdata/8/txs.json (116)
‼️ # 22363 cmd/devp2p: add eth66 test suite 6/2/0
cmd/devp2p/internal/ethtest (5)
cmd/devp2p (2)
go.mod (1)
721/27
cmd/devp2p/internal/ethtest/eth66_suite.go (764)
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go (540)
cmd/devp2p/internal/ethtest/suite.go (78)
cmd/devp2p/internal/ethtest/transaction.go (58)
cmd/devp2p/README.md (24)
# 22377 les: move server pool to les/vflux/client 7/0/2
les/vflux/client (5)
les (3)
internal/web3ext (1)
206/198
les/vflux/client/serverpool.go (346)
les/vflux/client/valuetracker.go (154)
les/vflux/client/serverpool_test.go (128)
les/client.go (76)
internal/web3ext/web3ext.go (28)
⚠️ # 22385 rpc: add separate size limit for websocket 4/0/0
rpc (4)
64/1
rpc/websocket_test.go (54)
rpc/http_test.go (50)
rpc/testservice_test.go (20)
rpc/websocket.go (6)
‼️ # 22380 all: define and enable the Berlin hard fork on all networks 22/0/0
core/vm (4)
core (3)
tests (2)
cmd/geth (2)
core/types (1)
eth/ethconfig (1)
params (1)
cmd/utils (1)
eth (1)
light (1)
cmd/puppeth (1)
core/forkid (1)
core/vm/runtime (1)
les (1)
eth/tracers (1)
132/93
params/config.go (140)
core/forkid/forkid_test.go (120)
core/vm/jump_table.go (30)
core/vm/contracts.go (24)
core/vm/evm.go (20)
‼️ # 22217 accounts/keystore: replace uuid library 6/0/0
accounts/keystore (3)
cmd/ethkey (1)
go.mod (1)
go.sum (1)
40/34
accounts/keystore/passphrase.go (42)
go.sum (40)
accounts/keystore/key.go (24)
accounts/keystore/presale.go (18)
cmd/ethkey/generate.go (18)
# 22386 core/state: fix eta calculation on pruning 1/0/0
core/state/pruner (1)
1/1
core/state/pruner/pruner.go (4)
# 22183 les: UDP pre-negotiation of available server capacity 16/2/0
les (5)
les/vflux/server (5)
les/vflux/client (2)
p2p/discover (2)
common/prque (2)
les/vflux (1)
p2p/nodestate (1)
915/89
les/vflux/server/prioritypool.go (404)
les/vflux/requests.go (360)
les/vflux/server/prioritypool_test.go (252)
les/vflux/server/service.go (244)
les/vflux/client/serverpool.go (210)
# 22395 core/rawdb: fix the transaction indexer 1/0/0
core/rawdb (1)
14/14
core/rawdb/chain_iterator.go (56)
⚠️ # 22412 cmd/geth: put allowUnprotectedTx flag in RPC section 1/0/0
cmd/geth (1)
1/0
cmd/geth/usage.go (2)
‼️ # 22418 params: update chts 1/0/0
params (1)
12/12
params/config.go (48)
‼️ # 22419 cmd/utils: fix txlookuplimit exclusive check for archive node 1/0/0
cmd/utils (1)
5/2
cmd/utils/flags.go (14)
‼️ # 22413 core/forkid, params: unset Berlin fork number 2/0/0
params (1)
core/forkid (1)
25/37
core/forkid/forkid_test.go (116)
params/config.go (8)
# 22422 les: fix nodiscover option on the client side 3/0/0
les/vflux/client (2)
les (1)
15/5
les/client.go (24)
les/vflux/client/serverpool.go (12)
les/vflux/client/serverpool_test.go (4)
‼️ # 22421 cmd: retire whisper flags 5/0/0
cmd/geth (4)
cmd/utils (1)
3/70
cmd/geth/config.go (62)
cmd/utils/flags.go (56)
cmd/geth/main.go (16)
cmd/geth/usage.go (8)
cmd/geth/consolecmd.go (4)
# 22290 Access list state test format 7/0/0
tests (7)
46/41
tests/gen_sttransaction.go (74)
tests/state_test_util.go (44)
tests/block_test.go (28)
tests/state_test.go (16)
tests/gen_stenv.go (4)

397 Changed files

🔍 File Lines Changed Linked PR
‼️ core/blockchain_snapshot_test.go 2064 # 21482
# 22163
# 21724
core/state/pruner/pruner.go 1086 # 22291
# 22294
# 21724
# 22386
‼️ core/types/transaction.go 932
‼️ cmd/utils/flags.go 896 # 21482
# 21909
# 22122
# 21984
# 21932
# 22130
# 22109
# 22103
# 22083
# 22161
# 22213
# 21940
# 22293
# 22280
# 21724
# 22205
# 22184
# 22014
# 22350
# 22339
# 22380
# 21502
# 22250
# 22419
# 22263
# 22421
cmd/geth/snapshot.go 866 # 21724
# 22263
cmd/devp2p/internal/ethtest/eth66_suite.go 764 # 22363
cmd/geth/dbcmd.go 682 # 22014
core/state/trie_prefetcher.go 668 # 21047
⚠️ eth/downloader/downloader_test.go 604 # 21482
# 21989
# 22140
# 22241
core/state/snapshot/conversion.go 572 # 22133
# 21724
# 21921
‼️ core/types/transaction_test.go 552
cmd/devp2p/internal/ethtest/eth66_suiteHelpers.go 540 # 22363
‼️ core/tx_pool.go 532 # 21478
# 22247
# 22380
# 21502
‼️ core/types/transaction_signing.go 518 # 22380
⚠️ cmd/faucet/faucet.go 456 # 21850
# 22018
# 22107
# 22137
# 22136
# 22145
# 21940
# 22205
core/types/hashing_test.go 424
‼️ core/state/statedb.go 398 # 21482
# 21047
# 22340
# 21502
consensus/ethash/difficulty.go 386 # 21976
core/types/transaction_marshalling.go 374
core/state/snapshot/snapshot_test.go 308 # 21724
# 22331
core/tx_list.go 304 # 21478
⚠️ eth/downloader/downloader.go 280 # 21482
# 22122
# 22179
# 21744
# 22334
‼️ eth/backend.go 278 # 21482
# 21893
# 22061
# 22178
# 21724
# 22205
# 22339
# 22380
cmd/evm/internal/t8ntool/transition.go 270 # 21502
‼️ cmd/geth/chaincmd.go 264 # 21932
# 22213
# 22014
# 22263
core/state/pruner/bloom.go 264 # 21724
common/prque/prque_test.go 260 # 22157
core/state/snapshot/snapshot.go 258 # 22133
# 21724
# 22331
cmd/utils/flags_legacy.go 252 # 22205
# 22263
‼️ accounts/abi/bind/bind_test.go 238 # 22005
# 22053
# 22230
# 22351
core/types/access_list_tx.go 230 # 21502
core/types/hashing.go 224
core/types/legacy_tx.go 222
‼️ core/blockchain_test.go 212 # 22246
# 21502
consensus/ethash/consensus_test.go 204 # 21976
⚠️ core/types/receipt.go 202
core/types/gen_tx_json.go 202
common/prque/sstack_test.go 200 # 22157
‼️ cmd/devp2p/internal/ethtest/types.go 196 # 22315
# 22363
⚠️ core/rawdb/accessors_chain.go 194 # 21827
core/bloom_indexer.go 184 # 22205
⚠️ eth/filters/filter_system_test.go 172 # 22178
⚠️ core/state/state_object.go 168 # 21047
‼️ eth/ethconfig/config.go 166 # 22293
# 22205
# 22380
# 22250
‼️ cmd/geth/config.go 158 # 22083
# 22205
# 22380
# 22421
‼️ core/types/receipt_test.go 152
‼️ core/tx_pool_test.go 142 # 21478
# 22246
⚠️ core/rawdb/accessors_chain_test.go 140 # 21827
‼️ eth/bloombits.go 138 # 22205
‼️ core/blockchain.go 136 # 21482
# 21827
# 21047
# 22135
# 21724
# 22319
.travis.yml 134 # 22351
# 22369
# 22368
# 22373
‼️ cmd/geth/main.go 130 # 21984
# 21932
# 22099
# 22103
# 22213
# 21724
# 22184
# 22014
# 22339
# 22380
# 21502
# 22250
# 22263
# 22421
core/rawdb/accessors_metadata.go 126 # 21893
cmd/evm/testdata/8/readme.md 126 # 21502
core/types/block_test.go 124
core/types/derive_sha.go 116
‼️ cmd/devp2p/internal/ethtest/suite.go 116 # 22315
# 22363
cmd/evm/testdata/8/txs.json 116 # 21502
‼️ consensus/ethash/consensus.go 108 # 21976
# 21993
# 21967
# 22246
# 22274
eth/downloader/queue.go 104 # 21482
# 22052
common/compiler/solidity.go 100 # 22092
cmd/faucet/README.md 100 # 22107
‼️ eth/filters/api.go 94 # 22070
# 22178
eth/downloader/queue_test.go 88 # 22114
cmd/faucet/faucet_test.go 86 # 22137
core/types/gen_access_tuple.go 86
core/state/snapshot/generate.go 86 # 21482
# 22104
# 22177
# 22163
‼️ eth/api.go 84 # 21686
# 21827
# 22161
cmd/utils/diskusage.go 84 # 22103
# 22310
‼️ cmd/evm/internal/t8ntool/execution.go 82 # 22213
# 22246
# 21502
‼️ core/state_processor.go 78 # 22213
# 21502
cmd/utils/diskusage_windows.go 76 # 22103
eth/downloader/statesync.go 74 # 21482
# 22035
‼️ README.md 72 # 22079
# 22066
# 22263
‼️ core/vm/contracts.go 70 # 22213
# 22380
cmd/utils/cmd.go 68 # 22103
# 22205
‼️ core/state_prefetcher.go 66 # 21502
‼️ cmd/devp2p/internal/ethtest/transaction.go 66 # 22315
# 22363
core/rawdb/database.go 62 # 21893
# 21827
# 21724
# 22014
⚠️ cmd/geth/usage.go 60 # 21984
# 21932
# 22103
# 22213
# 21724
# 22184
# 21502
# 22250
# 22412
# 22263
# 22421
eth/ethconfig/gen_config.go 60 # 22205
# 22250
⚠️ core/genesis.go 58 # 22213
# 21724
# 22246
# 22380
# 21502
‼️ eth/api_backend.go 58 # 21482
# 22161
# 22339
core/rawdb/chain_iterator.go 56 # 22395
‼️ accounts/abi/bind/backends/simulated.go 56 # 21047
# 21502
‼️ core/vm/runtime/runtime.go 54 # 22213
# 22380
‼️ cmd/clef/main.go 52 # 22251
# 21502
# 22263
‼️ build/checksums.txt 48 # 22351
core/state/snapshot/difflayer.go 48 # 22133
# 22044
# 22160
core/rawdb/schema.go 46 # 21482
# 21893
# 21827
# 21724
⚠️ cmd/geth/consolecmd.go 46 # 22071
# 22213
# 22302
# 22263
# 22421
accounts/scwallet/securechannel.go 42 # 22212
core/rawdb/accessors_snapshot.go 42 # 21482
# 22026
‼️ core/types/block.go 42 # 21502
‼️ accounts/keystore/passphrase.go 42 # 22217
cmd/devp2p/README.md 36 # 22298
# 22363
‼️ core/state_transition.go 36 # 22380
# 21502
cmd/evm/README.md 34 # 21502
⚠️ crypto/crypto.go 34 # 21047
‼️ accounts/keystore/keystore.go 34 # 21502
cmd/puppeth/wizard_faucet.go 30 # 21850
# 22107
‼️ eth/downloader/peer.go 30 # 21482
# 22241
cmd/bootnode/main.go 30 # 21940
core/vm/jump_table.go 30 # 22213
# 22380
⚠️ consensus/clique/clique.go 26 # 21993
# 22246
# 22274
core/forkid/forkid_test.go 24 # 22380
# 22413
common/mclock/mclock.go 24 # 22211
accounts/keystore/key.go 24 # 22217
accounts/scwallet/README.md 24 # 22242
⚠️ core/state/database.go 24 # 21047
‼️ cmd/geth/accountcmd_test.go 22 # 22002
# 22130
cmd/evm/testdata/8/alloc.json 22 # 21502
‼️ core/headerchain.go 22 # 21967
SECURITY.md 20 # 22067
‼️ core/vm/evm.go 20 # 22213
# 22380
‼️ core/error.go 20 # 21502
cmd/puppeth/wizard_genesis.go 20 # 22213
# 21921
# 22380
‼️ eth/discovery.go 18 # 21482
⚠️ eth/downloader/modes.go 18 # 21482
# 22019
accounts/keystore/presale.go 18 # 22217
⚠️ core/forkid/forkid.go 18 # 21482
cmd/ethkey/generate.go 18 # 22217
core/state/snapshot/iterator_binary.go 16 # 22133
cmd/evm/testdata/8/env.json 14 # 21502
crypto/crypto_test.go 14 # 21047
cmd/devp2p/rlpxcmd.go 14 # 22363
cmd/puppeth/module_faucet.go 14 # 21850
# 22107
cmd/devp2p/internal/ethtest/chain_test.go 14 # 22315
‼️ cmd/geth/consolecmd_test.go 12 # 22130
# 22263
cmd/faucet/website.go 12 # 22169
consensus/ethash/ethash_test.go 12 # 22162
# 22274
‼️ cmd/geth/les_test.go 12 # 22130
⚠️ core/state/statedb_test.go 12 # 21047
core/bloombits/matcher_test.go 12 # 22000
core/types/gen_receipt_json.go 12
eth/api_test.go 12 # 21482
core/state/snapshot/iterator_fast.go 12 # 22133
console/console_test.go 10 # 22205
core/bloombits/scheduler_test.go 10 # 22000
cmd/evm/internal/t8ntool/flags.go 10 # 21502
⚠️ accounts/abi/bind/template.go 10 # 22005
# 22230
common/prque/lazyqueue.go 10 # 22183
core/rawdb/freezer_table.go 10 # 21967
core/state/snapshot/iterator.go 8 # 22133
⚠️ core/vm/runtime/runtime_test.go 8 # 21921
‼️ .github/CONTRIBUTING.md 8 # 22068
appveyor.yml 8 # 22351
‼️ crypto/signify/signify_fuzz.go 8 # 22124
⚠️ core/vm/interpreter.go 8 # 22213
# 22380
‼️ accounts/abi/bind/auth.go 8 # 21502
⚠️ consensus/consensus.go 8 # 22274
‼️ cmd/geth/dao_test.go 8 # 22130
‼️ cmd/geth/genesis_test.go 8 # 22130
accounts/abi/abi_test.go 6 # 22230
‼️ cmd/geth/misccmd.go 4 # 21482
⚠️ core/state/dump.go 4 # 22225
crypto/bls12381/bls12_381_test.go 4 # 21921
⚠️ core/bench_test.go 4 # 21502
cmd/puppeth/module_node.go 4 # 22263
eth/fetcher/block_fetcher_test.go 4 # 22246
core/genesis_alloc.go 4 # 22213
# 21502
core/state/snapshot/disklayer.go 4 # 22133
accounts/usbwallet/trezor.go 4 # 21502
cmd/puppeth/genesis.go 4 # 21921
cmd/faucet/faucet.html 4 # 22145
common/prque/lazyqueue_test.go 4 # 22183
⚠️ eth/gasprice/gasprice_test.go 4
accounts/keystore/account_cache.go 4 # 21921
accounts/scwallet/wallet.go 4 # 21502
core/state/snapshot/difflayer_test.go 4 # 22133
⚠️ core/state/state_test.go 4 # 21047
cmd/abigen/main.go 4 # 21875
‼️ Dockerfile 4 # 22351
‼️ build/ci.go 4 # 22351
core/state/snapshot/disklayer_test.go 4 # 22133
‼️ crypto/signify/signify.go 4 # 21921
crypto/bls12381/arithmetic_fallback.go 4 # 22124
core/state/snapshot/journal.go 4 # 22163
eth/fetcher/block_fetcher.go 4 # 22246
consensus/ethash/algorithm_test.go 4 # 22274
Dockerfile.alltools 4 # 22351
‼️ cmd/geth/run_test.go 4 # 22263
‼️ core/state_processor_test.go 4 # 22246
cmd/evm/main.go 2 # 21502
common/mclock/mclock.s 2 # 22211
⚠️ core/vm/interface.go 2
‼️ ```` 0 # 22213
```` 0 # 21940
```` 0 # 21940
```` 0 # 22313
les/utils/limiter.go 0 # 21930
‼️ ```` 0 # 22213
# 22380
# 22413
# 22418
```` 0 # 21940
# 22347
ethdb/leveldb/leveldb.go 0 # 22014
‼️ ```` 0 # 21976
# 22029
# 22199
# 22158
# 22282
‼️ eth/tracers/tracer.go 0 # 22038
# 21921
‼️ les/api_backend.go 0 # 22161
# 22339
⚠️ ```` 0 # 22239
```` 0 # 22205
‼️ internal/ethapi/api.go 0 # 22061
# 22170
# 22270
# 22271
# 22339
```` 0 # 22130
# 22205
```` 0 # 21940
```` 0 # 21724
```` 0 # 21940
eth/protocols/snap/protocol.go 0 # 22179
# 22235
# 22334
eth/tracers/api_test.go 0 # 22161
eth/tracers/internal/tracers/unigram_tracer.js 0 # 22248
‼️ ethclient/ethclient_test.go 0 # 22127
# 22205
```` 0 # 21940
les/fetcher_test.go 0 # 22349
‼️ eth/handler_test.go 0 # 21482
les/vflux/client/requestbasket.go 0 # 22347
‼️ ```` 0 # 22105
# 22184
eth/protocols/snap/discovery.go 0
les/ulc_test.go 0 # 22349
‼️ les/utils/expiredvalue.go 0 # 21994
```` 0 # 21921
```` 0 # 22029
# 21812
eth/protocols/snap/peer.go 0 # 22179
eth/state_accessor.go 0 # 22161
‼️ les/client.go 0 # 21893
# 22061
# 22178
# 21940
# 22205
# 22347
# 22343
# 22339
# 22380
# 22183
# 22377
# 22349
# 22422
les/vflux/client/api.go 0 # 22347
```` 0 # 22083
⚠️ ```` 0 # 21724
```` 0 # 21940
‼️ eth/peer.go 0 # 21482
# 22235
event/subscription.go 0 # 22191
```` 0 # 21940
internal/flags/helpers.go 0 # 22220
# 22014
‼️ les/odr_test.go 0 # 22321
# 22349
```` 0 # 22183
les/vflux/server/balance_tracker.go 0 # 22347
# 22343
‼️ ```` 0 # 22213
# 21724
# 22380
# 22290
eth/protocols/snap/sync_test.go 0 # 22023
# 22179
les/retrieve.go 0 # 22048
les/vflux/client/valuetracker_test.go 0 # 22347
# 22377
⚠️ ```` 0 # 22316
les/commons.go 0 # 22123
# 21940
# 22205
# 22343
les/vflux/client/fillset_test.go 0 # 22347
les/vflux/client/queueiterator_test.go 0 # 22347
# 22377
‼️ ```` 0 # 22130
# 22184
# 22339
```` 0 # 21940
‼️ ```` 0 # 22385
‼️ eth/sync_test.go 0 # 22235
```` 0 # 21940
eth/handler_snap.go 0 # 21482
# 22235
ethclient/signer.go 0
⚠️ graphql/schema.go 0 # 22153
‼️ les/peer.go 0 # 21909
# 22282
# 22347
# 22377
# 22349
```` 0 # 22130
```` 0 # 22385
```` 0 # 21940
```` 0 # 22183
⚠️ ```` 0 # 21482
# 22123
‼️ ethstats/ethstats.go 0
les/api_test.go 0 # 22205
```` 0 # 21940
‼️ eth/tracers/api.go 0 # 22161
# 22213
# 22380
les/clientpool_test.go 0 # 22347
# 22183
les/vflux/server/clientdb_test.go 0 # 22347
```` 0 # 22044
# 22332
eth/protocols/snap/handler.go 0 # 22235
les/odr_requests.go 0 # 21909
# 22115
# 22246
# 22349
‼️ ```` 0 # 22213
# 22290
eth/protocols/eth/protocol.go 0 # 22235
# 22241
‼️ les/server_handler.go 0 # 22115
# 22282
# 22347
# 22357
```` 0 # 22076
# 22029
```` 0 # 22213
# 22290
```` 0 # 22290
⚠️ interfaces.go 0
les/costtracker.go 0 # 22205
les/vflux/client/timestats_test.go 0 # 22347
```` 0 # 22336
les/vflux/server/balance.go 0 # 22347
# 22183
‼️ internal/ethapi/backend.go 0 # 22339
```` 0 # 21940
```` 0 # 22282
eth/peerset.go 0 # 21482
# 22146
# 22171
# 22235
# 22272
eth/protocols/eth/handshake_test.go 0
```` 0 # 22130
# 22205
```` 0 # 22213
# 22380
```` 0 # 21940
# 22347
⚠️ ```` 0 # 22241
les/vflux/server/clientdb.go 0 # 22347
```` 0 # 22290
les/vflux/client/serverpool_test.go 0 # 22183
# 22377
# 22422
```` 0 # 22336
```` 0 # 22349
les/server_requests.go 0 # 22282
# 22357
# 22349
‼️ eth/protocol.go 0 # 21482
```` 0 # 22158
# 22233
⚠️ ```` 0 # 22171
# 22235
# 22272
⚠️ ```` 0 # 22385
les/vflux/client/wrsiterator_test.go 0 # 22347
‼️ ```` 0 # 22288
⚠️ ```` 0 # 22184
eth/tracers/internal/tracers/assets.go 0 # 22038
# 22248
⚠️ ```` 0 # 21482
# 22123
```` 0 # 22130
# 22184
eth/protocols/eth/broadcast.go 0 # 22181
# 22176
‼️ ```` 0 # 21989
# 22108
# 21047
# 22246
```` 0 # 21921
‼️ les/enr_entry.go 0 # 21940
# 22183
```` 0 # 22044
```` 0 # 21921
eth/protocols/eth/handlers.go 0 # 22241
les/clientpool.go 0 # 22347
# 22343
# 22183
‼️ eth/helper_test.go 0 # 21482
eth/protocols/eth/handler_test.go 0 # 21999
‼️ go.mod 0 # 22044
# 22227
# 22134
# 22212
# 22216
# 22211
# 21724
# 21812
# 22217
# 22363
les/state_accessor.go 0 # 22161
⚠️ ```` 0 # 21940
eth/protocols/eth/handshake.go 0
les/odr.go 0 # 22349
```` 0 # 21921
```` 0 # 22313
les/pruner_test.go 0 # 22349
‼️ les/utils/weighted_select.go 0 # 21930
```` 0 # 22213
```` 0 # 21940
```` 0 # 22282
‼️ ```` 0 # 22184
eth/protocols/snap/sync.go 0 # 22023
# 22026
# 22016
# 22179
# 21921
# 22334
# 22381
‼️ eth/tracers/tracer_test.go 0 # 22038
‼️ graphql/graphql_test.go 0 # 21883
# 22126
# 22166
# 22164
# 22187
# 22205
# 22184
les/api.go 0 # 22347
eth/handler_eth.go 0 # 21482
# 22235
les/utils/limiter_test.go 0 # 21930
les/vflux/client/timestats.go 0 # 22347
```` 0 # 21940
eth/protocols/eth/peer.go 0 # 22241
‼️ go.sum 0 # 22044
# 22227
# 22134
# 22212
# 22216
# 22211
# 21724
# 21812
# 22184
# 22217
internal/debug/flags.go 0 # 22207
# 22263
‼️ les/test_helper.go 0 # 22123
# 22205
# 22282
# 22321
# 22349
‼️ graphql/graphql.go 0 # 21883
# 22126
# 22187
les/request_test.go 0 # 22321
# 22349
```` 0 # 22130
```` 0 # 22210
```` 0 # 21940
‼️ eth/tracers/tracers_test.go 0 # 22038
les/handler_test.go 0 # 22115
# 22282
# 22321
# 22349
les/vflux/client/valuetracker.go 0 # 22347
# 22377
‼️ eth/handler.go 0 # 21482
# 22146
# 22179
# 22171
# 22235
# 22176
eth/protocols/eth/handler.go 0 # 22235
# 22241
‼️ les/sync_test.go 0 # 22123
# 22349
```` 0 # 22158
# 22233
```` 0 # 21921
# 22262
les/client_handler.go 0 # 22123
# 22377
les/server.go 0 # 21940
# 22205
# 22347
# 22343
# 22183
# 22250
```` 0 # 21940
eth/tracers/internal/tracers/prestate_tracer.js 0 # 22038
les/sync.go 0 # 22123
les/vflux/server/balance_test.go 0 # 22347
# 22343
# 22183
```` 0 # 22069
⚠️ ```` 0 # 22246
⚠️ eth/sync.go 0 # 22171
# 22235
les/lespay/server/prioritypool_test.go 0
les/vflux/client/fillset.go 0 # 22347
les/vflux/client/queueiterator.go 0 # 22347
```` 0 # 21976
event/subscription_test.go 0 # 22191
les/txrelay.go 0 # 22125
```` 0 # 22349
eth/handler_eth_test.go 0 # 21482
# 22235
les/vflux/client/wrsiterator.go 0 # 22347
```` 0 # 22009
# 22290
```` 0 # 22210
‼️ ```` 0 # 22184
# 22307
‼️ ethclient/ethclient.go 0
les/vflux/client/serverpool.go 0 # 22183
# 22377
# 22422
‼️ les/vflux/server/prioritypool.go 0 # 22347
# 22183
les/vflux/requests.go 0 # 22183
```` 0 # 22380
eth/protocols/eth/discovery.go 0
les/protocol.go 0 # 21909
# 22282
# 22347
# 22321
‼️ ```` 0 # 22133
```` 0 # 21940
```` 0 # 21940
eth/protocols/eth/peer_test.go 0
‼️ eth/protocol_test.go 0
eth/protocols/eth/protocol_test.go 0 # 22241
les/benchmark.go 0 # 22115
```` 0 # 22029
‼️ ```` 0 # 22385
‼️ internal/web3ext/web3ext.go 0 # 22377
```` 0 # 21940
‼️ ```` 0 # 21921
```` 0 # 22183
```` 0 # 21976
```` 0 # 22313
```` 0 # 22290
internal/guide/guide_test.go 0
⚠️ ```` 0 # 22038
# 21827
# 21047
```` 0 # 21940
```` 0 # 22347
# 22183
les/vflux/client/requestbasket_test.go 0 # 22347
```` 0 # 22183

holiman and others added 30 commits November 17, 2020 11:44
The z == 0 check is hit whenever we Add two points with the same x1/x2
coordinate. crypto/elliptic uses the same check in their affineFromJacobian
function. This change does not affect block processing or tx signature verification
in any way, because it does not use the Add or Double methods.
* cmd, core, eth, light, trie: disable recording preimage by default

* core, eth: fix unit tests

* core: fix import

* all: change to nopreimage

* cmd, core, eth, trie: use cache.preimages flag

* cmd: enable preimages for archive node

* cmd/utils, trie: simplify preimage tracking a bit

* core: fix linter

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
* Only compare hostnames in ws.origins

Also using a helper function for ToLower consolidates all preparation steps in one function for more maintainable consistency.

Spaces => tabs

Remove a semicolon

Add space at start of comment

Remove parens around conditional

Handle case wehre parsed hostname is empty

When passing a single word like "localhost" the parsed hostname is an empty string. Handle this and the error-parsing case together as default, and the nonempty hostname case in the conditional.

Refactor with new originIsAllowed functions

Adds originIsAllowed() & ruleAllowsOrigin(); removes prepOriginForComparison

Remove blank line

Added tests for simple allowed-orign rule

which does not specify a protocol or port, just a hostname

Fix copy-paste: `:=` => `=`

Remove parens around conditional

Remove autoadded whitespace on blank lines

Compare scheme, hostname, and port with rule

if the rule specifies those portions.

Remove one autoadded trailing whitespace

Better handle case where only origin host is given

e.g. "localhost"

Remove parens around conditional

Refactor: attemptWebsocketConnectionFromOrigin DRY

Include return type on helper function

Provide srv obj in helper fn

Provide srv to helper fn

Remove stray underscore

Remove blank line

parent 93e666b4c1e7e49b8406dc83ed93f4a02ea49ac1
author wbt <wbt@users.noreply.github.com> 1598559718 -0400
committer Martin Holst Swende <martin@swende.se> 1605602257 +0100
gpgsig -----BEGIN PGP SIGNATURE-----

 iQFFBAABCAAvFiEEypmrtbNuJK1doP1AaDtDjAWl3fAFAl+zi9ARHG1hcnRpbkBz
 d2VuZGUuc2UACgkQaDtDjAWl3fDRiwgAoMtzU8dwRV7Q9xkCwWEx9Wz2f3n6jUr2
 VWBycDKGKwRkPPOER3oc9kzjGU/P1tFlK07PjfnAKZ9KWzxpDcJZwYM3xCBurG7A
 16y4YsQnzgPNONv3xIkdi3RZtDBIiPFFEmdZFFvZ/jKexfI6JIYPngCAoqdTIFb9
 On/aPvvVWQn1ExfmarsvvJ7kUDUG77tZipuacEH5FfFsfelBWOEYPe+I9ToUHskv
 +qO6rOkV1Ojk8eBc6o0R1PnApwCAlEhJs7aM/SEOg4B4ZJJneiFuEXBIG9+0yS2I
 NOicuDPLGucOB5nBsfIKI3USPeE+3jxdT8go2lN5Nrhm6MimoILDsQ==
 =sgUp
 -----END PGP SIGNATURE-----

Refactor: drop err var for more concise test lines

Add several tests for new WebSocket origin checks

Remove autoadded whitespace on blank lines

Restore TestWebsocketOrigins originally-named test

and rename the others to be helpers rather than full tests

Remove autoadded whitespace on blank line

Temporarily comment out new test sets

Uncomment test around origin rule with scheme

Remove tests without scheme on browser origin

per https://github.com/ethereum/go-ethereum/pull/21481/files#r479371498

Uncomment tests with port; remove some blank lines

Handle when browser does not specify scheme/port

Uncomment test for including scheme & port in rule

Add IP tests

* node: more tests + table-driven, ws origin changes

Co-authored-by: Martin Holst Swende <martin@swende.se>
…s (#21871)

* trie: fix tests to work on 32-bit systems

* les: make test work on 32-bit platform

* cmd/geth: fix windows-issues on tests

* trie: improve balance

* cmd/geth: make account tests less verbose + less mem intense

* rpc: make debug-level log output less verbose

* cmd/geth: lint
* crypto/bn256: fix bn256Mul fuzzer to not hang on large input

* Update crypto/bn256/bn256_fuzz.go

Co-authored-by: ligi <ligi@ligi.de>

Co-authored-by: ligi <ligi@ligi.de>
* p2p: avoid busy-loop on temporary errors

* p2p: address review concerns
Also fixes a bug in les/flowcontrol that caused the overflow.
* added bls fuzzer

* crypto/bls12381: revert bls-changes, fixup fuzzer tests

* fuzzers: split bls fuzzing into 8 different units

* fuzzers/bls: remove (now stale) corpus

* crypto/bls12381: added blsfuzz corpus

* fuzzers/bls12381: fix the bls corpus

* fuzzers: fix oss-fuzz script

* tests/fuzzers: fixups on bls corpus

* test/fuzzers: remove leftover corpus

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
github: Add new style of issue-templates
Resolves #21532

Co-authored-by: roger <dengjun@huobi.com>
This type is automatically offered by github after changing to the new style and a security.md being present
* cmd/devp2p/internal/ethtest: added large announcement tests

* cmd/devp2p/internal/ethtest: added large announcement tests

* cmd/devp2p/internal/ethtest: refactored stuff a bit

* cmd/devp2p/internal/ethtest: added TestMaliciousStatus/Handshake

* cmd/devp2p/internal/ethtest: fixed rebasing issue

* happy linter, happy life

* cmd/devp2p/internal/ethtest: used readAndServe

* stuff

* cmd/devp2p/internal/ethtest: fixed test cases
…atement (#21854)

Changes:

    Simplify nested complexity
    If an if blocks ends with a return statement then remove the else nesting.

Most of the changes has also been reported in golint https://goreportcard.com/report/github.com/ethereum/go-ethereum#golint
…882)

* Make sure to return 400 when errors are present in the response

* graphql: use less memory in chainconfig for tests

Co-authored-by: Martin Holst Swende <martin@swende.se>
This fixes a deadlock that could occur when a response packet arrived
after a call had already received enough responses and was about to
signal completion to the dispatch loop.

Co-authored-by: Felix Lange <fjl@twurst.com>
* internal/build: implement signify's signing func
* Add signify to the ci utility
* fix output file format
* Add unit test for signify
* holiman's + travis' feedback
* internal/build: verify signify's output
* crypto: move signify to common dir
* use go-minisign to verify binaries
* more holiman feedback
* crypto, ci: support minisign output
* only accept one-line trusted comments
* configurable untrusted comments
* code cleanup in tests
* revert to use ed25519 from the stdlib
* bug: fix for empty untrusted comments
* write timestamp as comment if trusted comment isn't present
* rename line checker to commentHasManyLines
* crypto: added signify fuzzer (#6)
* crypto: added signify fuzzer
* stuff
* crypto: updated signify fuzzer to fuzz comments
* crypto: repro signify crashes
* rebased fuzzer on build-signify branch
* hide fuzzer behind gofuzz build flag
* extract key data inside a single function
* don't treat \r as a newline
* travis: fix signing command line
* do not use an external binary in tests
* crypto: move signify to crypto/signify
* travis: fix formatting issue
* ci: fix linter build after package move

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
…757)

* signer/core/api: fix derivation of ledger live accounts

For ledger hardware wallets, change account iteration as follows:

- ledger legacy: m/44'/60'/0'/X; for 0<=X<5
- ledger live: m/44'/60'/0'/0/X; for 0<=X<5

- ledger legacy: m/44'/60'/0'/X; for 0<=X<10
- ledger live: m/44'/60'/X'/0/0; for 0<=X<10

Non-ledger derivation is unchanged and remains as:
- non-ledger: m/44'/60'/0'/0/X; for 0<=X<10

* signer/core/api: derive ten default paths for all hardware wallets, plus ten legacy and ten live paths for ledger wallets

* signer/core/api: as .../0'/0/0 already included by default paths, do not include it again with ledger live paths

* accounts, signer: implement path iterators for hd wallets

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Pascal Dierich <pascal@pascaldierich.com>
This PR fixes a deadlock reported here: #21925

The cause is that many operations may be pending, but if the close happens, only one of them gets awoken and exits, the others remain waiting for a signal that never comes.
karalabe and others added 27 commits February 23, 2021 19:58
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
This replaces the github.com/pborman/uuid dependency with
github.com/google/uuid because the former is only a wrapper for
the latter (since v1.0.0).

Co-authored-by: Felix Lange <fjl@twurst.com>
This PR implements the first one of the "lespay" UDP queries which
is already useful in itself: the capacity query. The server pool is making
use of this query by doing a cheap UDP query to determine whether it is
worth starting the more expensive TCP connection process.
* cmd/utils: fix exclusive check for archive node

* cmd/utils: set the txlookuplimit to 0
* cmd: retire whisper flags

* cmd/geth: remove whisper configs
This updates the consensus tests to commit 31d6630 and
adds support for access list transactions in the test runner.

Co-authored-by: Martin Holst Swende <martin@swende.se>
@baptiste-b-pegasys baptiste-b-pegasys added the geth upstream upgrade Have some Geth upgrade to process label Sep 3, 2021
@baptiste-b-pegasys baptiste-b-pegasys deleted the upgrade/go-ethereum/v1.10.0-2021903162322 branch September 3, 2021 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
geth upstream upgrade Have some Geth upgrade to process
Projects
None yet