Commit Graph

12460 Commits

Author SHA1 Message Date
gary rong 19d7a37abb
core/rawdb: fix the transaction indexer (#22395) 2021-03-01 11:26:10 +02:00
Felföldi Zsolt d96870428f
les: UDP pre-negotiation of available server capacity (#22183)
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.
2021-03-01 10:24:20 +01:00
Martin Holst Swende 498458b410
core/state: fix eta calculation on pruning (#22386) 2021-02-26 16:33:37 +01:00
Marius van der Wijden 3822b09904
accounts/keystore: use github.com/google/uuid (#22217)
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>
2021-02-26 15:28:34 +01:00
Péter Szilágyi 744707a490
Merge pull request #22380 from karalabe/berlin
all: define and enable the Berlin hard fork on all networks
2021-02-26 15:04:56 +02:00
Felix Lange 27b31371d4
rpc: add separate size limit for websocket (#22385)
This makes the WebSocket message size limit independent of the
limit used for HTTP requests. The new limit for WebSocket messages 
is 15MB.
2021-02-26 13:40:35 +01:00
Péter Szilágyi 0928562670
all: define Berlin hard fork spec 2021-02-26 14:24:07 +02:00
Felföldi Zsolt dc109cce26
les: move server pool to les/vflux/client (#22377)
* 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
2021-02-25 21:08:34 +01:00
rene de9465f991
cmd/devp2p: add eth66 test suite (#22363)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-02-25 18:36:01 +01:00
lightclient bbfb1e4008
all: add support for EIP-2718, EIP-2930 transactions (#21502)
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>
2021-02-25 15:26:57 +01:00
gary rong 7a3c890009
les, light: improve txstatus retrieval (#22349)
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.
2021-02-25 14:24:04 +01:00
gary rong 378e961d85
cmd, eth, les: enable serving light clients when non-synced (#22250)
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".
2021-02-25 13:55:07 +01:00
Péter Szilágyi 96d9306413
Merge pull request #22381 from karalabe/lower-error-log
eth/protocols/snap: lower abortion and resumption logs to debug
2021-02-25 13:03:07 +02:00
Péter Szilágyi b2b5c82aca
eth/protocols/snap: lower abortion and resumption logs to debug 2021-02-25 12:56:18 +02:00
rene 8e547eecd5
cmd/utils: remove deprecated command line flags (#22263)
This removes support for all deprecated flags except --rpc*.
2021-02-24 14:07:58 +01:00
Péter Szilágyi f54dc4ab3d
travis: manually install Android since Travis is stale (#22373) 2021-02-24 11:36:08 +02:00
Péter Szilágyi bf5b379b13
Merge pull request #22369 from karalabe/android-bionic-builder
travis: bump builders to Bionic
2021-02-23 20:52:40 +02:00
Péter Szilágyi 70afe15f68
travis: bump builders to Bionic 2021-02-23 20:31:09 +02:00
Péter Szilágyi b502c86662
Merge pull request #22368 from karalabe/ndk-bump
travis: bump Android NDK version
2021-02-23 19:58:37 +02:00
Péter Szilágyi c9aa267049
travis: bump Android NDK version 2021-02-23 19:57:39 +02:00
Péter Szilágyi cdb6a84339
Merge pull request #22350 from karalabe/disable-preimage-collection
cmd/utils: disable caching preimages by default
2021-02-23 19:29:36 +02:00
Péter Szilágyi 4ee8d2d305
travis, appveyor, build, Dockerfile: bump Go to 1.16 (#22351)
* travis, appveyor, build: bump Go to 1.16

* accounts/abi/bind: fix up Go mod files for Go 1.16
2021-02-23 18:42:43 +02:00
Péter Szilágyi 2743fb0429
Dockerfile: bump to Go 1.16 base images 2021-02-23 18:28:24 +02:00
Péter Szilágyi 2d1a0e9b03
accounts/abi/bind: fix up Go mod files for Go 1.16 2021-02-23 18:12:25 +02:00
Marius van der Wijden 142fbcfd6f
internal/ethapi: reject non-replay-protected txs over RPC (#22339)
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.
2021-02-23 13:09:19 +01:00
Martin Holst Swende c4a2b682ff
cmd/geth: add db commands stats, compact, put, get, delete (#22014)
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.
2021-02-23 11:27:32 +01:00
gary rong 3ecfdccd9a
les: clean up server handler (#22357) 2021-02-22 14:33:11 +01:00
Felföldi Zsolt 8f03e3b107
tests/fuzzers/les: add fuzzer for les server handler (#22282)
* 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>
2021-02-20 10:40:38 +01:00
Felföldi Zsolt 8647233a8e
les: fix balance expiration (#22343)
* les/lespay/server: fix balance expiration and add test

* les: move client balances to a new db

* les: rename lespayDb to lesDb
2021-02-19 15:53:12 +01:00
Péter Szilágyi c5023e1dc5
travis, appveyor, build: bump Go to 1.16 2021-02-19 16:03:17 +02:00
Péter Szilágyi ca76db6116
cmd/utils: disable caching preimages by default 2021-02-19 15:56:41 +02:00
Felföldi Zsolt c027507e03
les: renamed lespay to vflux (#22347) 2021-02-19 14:44:16 +01:00
Felix Lange d36276d85e
p2p/dnsdisc: fix hot-spin when all trees are empty (#22313)
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
2021-02-19 09:54:46 +01:00
Martin Holst Swende 6ec1561044
eth: implement eth66 (#22241)
* 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
2021-02-18 18:54:29 +02:00
Martin Holst Swende b1835b3855
node: always show websocket url in logs (#22307) 2021-02-18 10:40:19 +01:00
Or Neeman 9ec32a9e7b
rlp: handle case of normal EOF in Stream.readFull (#22336)
io.Reader may return n > 0 and io.EOF at the end of the input stream.
readFull did not handle this correctly, looking only at the error. This fixes
it to check for n == len(buf) as well.
2021-02-18 10:19:49 +01:00
Martin Holst Swende 52e5c38aa5
core/state: copy the snap when copying the state (#22340)
* core/state: copy the snap when copying the state

* core/state: deep-copy snap stuff during state Copy
2021-02-18 10:05:47 +02:00
Martin Holst Swende e01096f531
eth/handler, broadcast: optimize tx broadcast mechanism (#22176)
This PR optimizes the broadcast loop. Instead of iterating twice through a given set of transactions to weed out which peers have and which do not have a tx, to send/announce transactions, we do it only once.
2021-02-17 14:59:00 +01:00
Péter Szilágyi 1489c3f494
Merge pull request #22334 from karalabe/fix-snap-cancel
eth: fix snap sync cancellation
2021-02-16 16:30:07 +02:00
rene f9445e93bb
cmd/devp2p/internal/ethtest: use shared message types (#22315)
This updates the eth protocol test suite to use the message type
definitions of the 'production' protocol implementation in eth/protocols/eth.
2021-02-16 15:23:03 +01:00
Péter Szilágyi bfdff4c5b8
eth: fix snap sync cancellation 2021-02-16 16:11:33 +02:00
Péter Szilágyi 6291fc9230
Merge pull request #22331 from karalabe/enforce-min-snap-difflayers
core/state/snapshot: ensure Cap retains a min number of layers
2021-02-16 15:26:37 +02:00
Péter Szilágyi 9ec3329899
core/state/snapshot: ensure Cap retains a min number of layers 2021-02-16 15:25:20 +02:00
Péter Szilágyi 915c614959
Merge pull request #22332 from karalabe/fix-fastsync-restart-bloom-crash
trie: fix bloom crash on fast sync restart
2021-02-16 13:30:15 +02:00
Guillaume Ballet f4fcd4f506
rpc: increase the number of subscriptions in storm test (#22316) 2021-02-16 11:40:59 +02:00
Péter Szilágyi e991bdae24
trie: fix bloom crash on fast sync restart 2021-02-16 10:44:38 +02:00
Alex Mazalov 77787802fe
cmd/geth: fix js unclean shutdown (#22302) 2021-02-15 19:47:47 +01:00
Guillaume Ballet 08c878acd2
cmd/utils: add workaround for FreeBSD statfs quirk (#22310)
Make geth build on FreeBSD, fixes #22309.
2021-02-15 19:37:09 +01:00
Felföldi Zsolt 7d1b711c7d
les: enable les/4 and add tests (#22321) 2021-02-12 20:48:18 +01:00
Péter Szilágyi 2fc465a7be
Merge pull request #22319 from karalabe/fix-defer-leak
core: fix temp memory blowup caused by defers holding on to state
2021-02-12 15:34:35 +02:00