Closed
Conversation
* cmd, core, eth, light, trie: dump clean cache periodically * eth: update config * trie: minor fix * core, trie: address comments * eth: remove useless * trie: print clean cache dump start too Co-authored-by: Péter Szilágyi <peterke@gmail.com>
* cmd, consensus, eth, les: implement light fetcher * les: address comment * les: address comment * les: address comments * les: check td after delivery * les: add linearExpiredValue for error counter * les: fix import * les: fix dead lock * les: order announces by td * les: encapsulate invalid counter * les: address comment * les: add more checks during the delivery * les: fix log * eth, les: fix lint * eth/fetcher: address comment
This reduces complexity of some lengthy functions in worker.go, making the code easier to read.
* init notes removed some mentions of eth62, bumped protocol err too old to >=63 * remove sanity checks and bump supported protocol version up to 63 * remove 62 tests, still need to add 65 * remove 65 tests
* Disable symbol table and DWARF generation by default. Trimpath if compiling with Go >= 1.13 * Set Go to minimum version 1.13. Revert debug symbol changes.
This replaces the two-stage shutdown scheme with the one we use almost everywhere else: a single quit channel signalling termination. Co-authored-by: Felix Lange <fjl@twurst.com>
core: sort txs at the same gas price by received time
Resolves #20163 Co-authored-by: Felix Lange <fjl@twurst.com>
…a ChainId (#21306) * Do not check for a non-nil ChainId * Add encoding test
This PR significantly changes the APIs for instantiating Ethereum nodes in a Go program. The new APIs are not backwards-compatible, but we feel that this is made up for by the much simpler way of registering services on node.Node. You can find more information and rationale in the design document: https://gist.github.com/renaynay/5bec2de19fde66f4d04c535fd24f0775. There is also a new feature in Node's Go API: it is now possible to register arbitrary handlers on the user-facing HTTP server. In geth, this facility is used to enable GraphQL. There is a single minor change relevant for geth users in this PR: The GraphQL API is no longer available separately from the JSON-RPC HTTP server. If you want GraphQL, you need to enable it using the ./geth --http --graphql flag combination. The --graphql.port and --graphql.addr flags are no longer available.
…padding (#21307) * Handle hex strings for bytesX types * Add tests for parseBytes * Improve tests * Return nil bytes if error is non-nil * Right-pad instead of left-pad bytes * More tests
Co-authored-by: Felix Lange <fjl@twurst.com>
* core: avoid modification of accountSet cache in tx_pool when runReorg, we may copy the dirtyAccounts' accountSet cache to promoteAddrs in which accounts will be promoted, however, if we have reset request at the same time, we may reuse promoteAddrs and modify the cache content which is against the original intention of accountSet cache. So, we need to make a new slice here to avoid modify accountSet cache. * core: fix flatten condition + comment Co-authored-by: Felix Lange <fjl@twurst.com>
This adds a lock around requests because some routers can't handle concurrent requests. Requests are also rate-limited. The Map function request a new mapping exactly when the map timeout occurs instead of 5 minutes earlier. This should prevent duplicate mappings.
* eth65 tests linted * remove non-latest eth light tests
…1414) * should fix import / export issues related to DB unavailability * document reason for makeConfigNode * fix comment * comment consistency * remove comments * lint
core/vm: avoid map lookups for accessing jumpdest analysis
* chaincmd should make config nodes instead of full nodes * add documentation for using makeConfigNode instead of makeFullNode; * add documentation to functions * code style
* cmd/utils: grant snapshot cache to trie if disabled * eth: fix up default non-mainnet cache distribution
les: update checktime even if check fails
eth/downloader: save the correct delivery time for state sync
* les: close all connected les-server when shutdown * les: linter nitpick Co-authored-by: Martin Holst Swende <martin@swende.se>
eth/downloader: set deliverytime on drops and timeouts too
ethstats: overwrite old errors
eth/downloader: allow all timers to exit
ethstats: split read and write lock, otherwise they'll lock up
params: update CHTs for v1.9.19
|
|
Base automatically changed from
upgrade/go-ethereum/v1.9.18-2021224170947
to
master
March 1, 2021 11:41
Contributor
Author
|
re-creating to generate right documentation |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TODO
Plan & Analyse
As you review, list extra changes and/or tests to be implemented to ensure compatibility with GoQuorum specific features.
Build & Test
masterinto this branchExtra Changes & Tests
Go-Ethereum Release: Red Janey (v1.9.19)
Release notes
Geth v1.9.19 is our regular biweekly maintenance release. Apart from the numerous bug-fixes however, it also ships a more deterministic transaction sort order during mining (FIFO). The goal is to reduce front-runner spam which abused miner randomness for transactions at the same price level.
les/xto use the same mechanism aseth/6x(#20692).enodeID of a node too when doing an ENR dump viadevp2p(#21270).Bugfixes:
Note, if you were using GraphQL previously, it was moved to the HTTP RPC endpoint. The old
--graphql.hostand--graphql.portflags will not work any more. You might need to adjust your TOML config files accordingly too.For a full rundown of the changes please consult the Geth 1.9.19 release milestone
As with all our previous releases, you can find the:
ethereum/client-go.Codebase changes assessment
Legend
File Stats: (A) Added, (M) Modified and (R) Removed
Line Stats: (A) Added and (R) Removed
Assessment:
35 Pull Requests
M/A/R
(files changed)
A/R
(lines changed)
Fix posible nil exeptioncmd/clef/docs(1)cmd/faucet(1)signer/storage(1)signer/storage/aes_gcm_storage.go(12)cmd/clef/docs/setup.md(4)cmd/faucet/faucet.html(4)cmd, core, eth, light, trie: dump clean cache periodicallyeth(4)core(2)cmd/geth(2)cmd/utils(1)core/state(1)light(1)trie(1)trie/database.go(102)eth/config.go(56)core/blockchain.go(46)cmd/utils/flags.go(32)eth/gen_config.go(24)les: implement new les fetcherles(10)eth/fetcher(3)consensus/ethash(3)les/utils(2)consensus/clique(2)eth(1)cmd/geth(1)consensus(1)les/fetcher.go(2410)eth/fetcher/block_fetcher_test.go(592)les/fetcher_test.go(536)eth/fetcher/block_fetcher.go(412)les/utils/expiredvalue_test.go(154)miner: refactor helper functions in worker.goconsensus/clique(1)miner(1)miner/worker.go(176)consensus/clique/clique.go(10)les: fix unittestles(1)les/fetcher_test.go(16)eth/downloader: remove eth62eth/downloader(3)eth/downloader/downloader_test.go(80)eth/downloader/peer.go(42)eth/downloader/downloader.go(8)build: use -trimpath flag when building executablesbuild(1)build/ci.go(12)core/bloombits: use single channel for shutdowncore/bloombits(1)core/bloombits/matcher.go(118)rawdb: fix comments to godoc convention formatcore/rawdb(1)core/rawdb/freezer.go(8)core: sort txs at the same gas price by received timecore/types(2)core/types/transaction.go(110)core/types/transaction_test.go(106)rpc: remove silly use of ReadVarint in subscription ID generatorrpc(1)rpc/subscription.go(18)rpc: add SetHeader method to Clientrpc(3)rpc/client_test.go(74)rpc/http.go(74)rpc/client.go(30)TypedData.EncodeData should not reject a Domain without a ChainIdsigner/core(2)signer/core/signed_data_test.go(16)signer/core/signed_data.go(12)node: refactor package nodecmd/geth(6)les(5)cmd/utils(3)eth(2)graphql(2)miner(2)core/rawdb(1)cmd/faucet(1)cmd/wnode(1)internal/ethapi(1)mobile(1)les/checkpointoracle(1)cmd/p2psim(1)console(1)ethclient(1)ethstats(1)ethstats/ethstats.go(304)cmd/utils/flags.go(228)graphql/graphql_test.go(216)eth/backend.go(188)miner/stress_ethash.go(178)signer: EIP 712, parse `bytes` and `bytesX` as hex strings + correct paddingsigner/core(2)signer/core/signed_data_internal_test.go(188)signer/core/signed_data.go(54)cmd/devp2p: print enode:// URL in enrdumpcmd/devp2p(1)cmd/devp2p/enrcmd.go(38)core: avoid modification of accountSet cache in tx_poolcore(1)core/tx_pool.go(14)ethstats: avoid concurrent write on websocket, fixes #21403ethstats(1)ethstats/ethstats.go(136)p2p/nat: limit UPNP request concurrencyp2p/nat(2)p2p/nat/natupnp.go(160)p2p/nat/nat.go(18)core: use errors.Is for consensus errors checkcore(1)core/blockchain.go(24)downloader: add eth65 testseth/downloader(1)eth/downloader/downloader_test.go(164)cmd/geth: fix import / export issues related to DB unavailabilitycmd/geth(1)cmd/geth/chaincmd.go(12)core/vm: avoid map lookups for accessing jumpdest analysiscore/vm(1)core/vm/contract.go(12)cmd/geth: fixes db unavailability for chain commandscmd/geth(2)cmd/geth/chaincmd.go(26)cmd/geth/config.go(4)core: Use maxQueuedTxAnns for to limit the number of transactions announcedeth(1)eth/peer.go(4)cmd/utils: grant snapshot cache to trie if disabledcmd/utils(1)eth(1)eth/config.go(8)cmd/utils/flags.go(2)les: update checktime even if check failsles/checkpointoracle(1)les/checkpointoracle/oracle.go(16)eth/downloader: save the correct delivery time for state synceth/downloader(1)eth/downloader/statesync.go(38)les: close all connected les-server when shutdownles(3)les/peer.go(78)les/server.go(10)les/server_handler.go(6)eth/downloader: set deliverytime on drops and timeouts tooeth/downloader(1)eth/downloader/statesync.go(6)ethstats: overwrite old errorsethstats(1)ethstats/ethstats.go(10)eth/downloader: allow all timers to exiteth/downloader(1)eth/downloader/statesync.go(16)ethstats: split read and write lock, otherwise they'll lock upethstats(1)ethstats/ethstats.go(64)tests: add Berlin-definition identical to YOLOv1tests(1)tests/init.go(28)params: update CHTs for v1.9.19params(1)params/config.go(64)120 Changed files
les/fetcher.gonode/node.gonode/node_test.gonode/rpcstack.gonode/api_test.goeth/fetcher/block_fetcher_test.gop2p/testing/protocoltester.gop2p/testing/protocolsession.goles/fetcher_test.go#20692
ethstats/ethstats.go#21105
#21428
#21434
eth/fetcher/block_fetcher.gonode/api.gocmd/utils/flags.go#20391
#21416
node/utils_test.gonode/service.goeth/downloader/downloader_test.go#21378
node/rpcstack_test.gographql/graphql_test.goles/peer.go#21426
node/service_test.gosigner/core/signed_data_internal_test.gop2p/simulations/adapters/inproc.goeth/backend.go#20391
p2p/simulations/adapters/exec.gominer/stress_ethash.gominer/worker.gominer/stress_clique.gowhisper/whisperv6/whisper_test.gographql/service.gop2p/nat/natupnp.goles/utils/expiredvalue_test.gop2p/testing/peerpool.gocore/bloombits/matcher.goles/client.go#20692
les/server.go#20692
#21426
whisper/whisperv6/whisper.gocore/types/transaction.gocore/types/transaction_test.gotrie/database.gocmd/geth/main.go#20391
les/utils/expiredvalue.gop2p/simulations/adapters/types.gonode/node_example_test.gorpc/http.gonode/doc.gorpc/client_test.gocore/blockchain.go#20391
signer/core/signed_data.go#21306
params/config.gonode/lifecycle.goconsensus/clique/clique.go#20692
consensus/consensus.goeth/downloader/statesync.go#21429
#21433
ethclient/ethclient_test.gomobile/geth.goles/client_handler.gop2p/simulations/network_test.goeth/config.go#21416
les/server_handler.go#21426
les/commons.gowhisper/mailserver/server_test.gocmd/faucet/faucet.gocore/rawdb/freezer.go#21105
eth/api_backend.goles/api_test.gowhisper/whisperv6/filter_test.goeth/downloader/peer.gocmd/geth/chaincmd.go#21415
#21105
node/config.goconsensus/ethash/consensus.gocmd/devp2p/enrcmd.goles/checkpointoracle/oracle.go#21425
cmd/geth/retesteth.gop2p/simulations/examples/ping-pong.gocmd/geth/consolecmd.gonode/endpoints.gorpc/client.gocmd/geth/config.go#21105
tests/init.gocmd/utils/flags_legacy.gop2p/simulations/network.goeth/gen_config.gonode/errors.gorpc/subscription.gop2p/nat/nat.gop2p/simulations/http_test.goles/api_backend.gosigner/core/signed_data_test.goconsole/console_test.gocore/tx_pool.gointernal/ethapi/backend.gobuild/ci.gocore/vm/contract.gocore/state/database.gocmd/geth/usage.go#20391
signer/storage/aes_gcm_storage.goles/clientpool.gocmd/wnode/main.golight/postprocess.goeth/downloader/downloader.goles/odr_test.goeth/api_tracer.gop2p/simulations/connect_test.gocmd/geth/dao_test.gowhisper/whisperv6/api_test.gocmd/utils/cmd.goeth/peer.gocmd/faucet/faucet.htmlconsensus/ethash/sealer.gocore/genesis.goconsensus/ethash/ethash.gocmd/p2psim/main.goconsensus/clique/api.gop2p/simulations/test.gocmd/clef/docs/setup.mdparams/version.goeth/handler.gonode/defaults.goles/test_helper.go