Commit Graph

161 Commits

Author SHA1 Message Date
Péter Szilágyi c4e4baf668 [release/1.4.11] eth/downloader: fewer headers and futures too un ancestor lookup
(cherry picked from commit d68865f3b1)
2016-08-18 15:01:49 +02:00
Péter Szilágyi 86493f9103 [release/1.4.11] eth/downloader: abort sync if master drops (timeout prev)
(cherry picked from commit 8f0a4a25f8)
2016-08-18 15:01:46 +02:00
Péter Szilágyi 6c672a55c0 [release/1.4.11] eth, eth/downloader: don't forward the DAO challenge header
(cherry picked from commit 071af57bcf)
2016-08-18 15:01:43 +02:00
Péter Szilágyi 48709d5340 [release/1.4.11] eth, eth/downloader: better remote head tracking
(cherry picked from commit 1dd272080d)

Conflicts:
	eth/handler.go
	eth/sync.go
2016-08-18 15:01:39 +02:00
Felix Lange 65da8f601f [release/1.4.11] eth, eth/downloader, eth/fetcher: delete eth/61 code
The eth/61 protocol was disabled in #2776, this commit removes its
message handlers and hash-chain sync logic.

(cherry picked from commit 016007bd25)

Conflicts:
	eth/handler.go
	eth/handler_test.go
2016-08-18 15:01:34 +02:00
Péter Szilágyi 9eb2873a9c [release/1.4.11] eth/downloader: fix the stall checks/drops during sync
(cherry picked from commit c7c82f1b44)
2016-08-18 15:01:15 +02:00
Péter Szilágyi d0668838b9 [release/1.4.10] eth/downloader: return invalid chain (peer drop) on import fails
(cherry picked from commit a691aa2a13)
2016-07-16 14:29:43 +03:00
Péter Szilágyi 058c5fe960 [release/1.4.6] eth/downloader: adaptive quality of service tuning
(cherry picked from commit 88f174a014)
2016-06-06 16:22:05 +03:00
Péter Szilágyi a29bdf547c [release/1.4.6] eth/downloader: make fast sync resilient to critical section fails
(cherry picked from commit 61ee9f299d)
2016-06-06 16:22:03 +03:00
Péter Szilágyi cd134178f7 [release/1.4.6] eth/downloader: ensure cancel channel is closed post sync
(cherry picked from commit 4496a44f68)
2016-06-06 16:21:51 +03:00
Péter Szilágyi 4918c820c6 [release/1.4.6] eth/downloader, trie: pull head state concurrently with chain
(cherry picked from commit 4f1d92b332)
2016-06-06 16:21:49 +03:00
Péter Szilágyi 170036289b [release/1.4.6] eth/downloader: fix reviewer comments
(cherry picked from commit 8906b2fe09)
2016-06-06 16:21:04 +03:00
Péter Szilágyi 8ebbd9b7c7 [release/1.4.6] eth/downloader: stream partial skeleton filling to processor
(cherry picked from commit e86619e75d)
2016-06-06 16:21:01 +03:00
Péter Szilágyi 7df36e5ec1 [release/1.4.6] eth/downloader: implement concurrent header downloads
(cherry picked from commit b40dc8a1da)
2016-06-06 16:20:58 +03:00
Péter Szilágyi efcfa2209b [release/1.4.4] eth/downloader: bound fork ancestry and allow heavy short forks 2016-05-12 17:32:06 +02:00
Felix Lange 6fdd0893c3 all: fix go vet warnings 2016-04-15 11:17:27 +02:00
Leif Jurvetson 434e4b31d8 core, eth: replace reorganiz with reorganis 2016-03-15 12:03:17 -07:00
Leif Jurvetson bbbe2360d0 eth: various typos 2016-03-15 11:27:49 -07:00
Péter Szilágyi 64ee5763ee eth/downloader: fix premature exit before notifying all part fetchers 2016-02-29 14:22:28 +02:00
Felix Lange 26e72b2ccd eth/downloader: fix header download limiting
Fixes #2201
2016-02-26 15:24:51 +01:00
Péter Szilágyi 216729009b eth/downloader: fix partial rollback and ancestor lookup 2016-02-19 11:17:02 +02:00
Péter Szilágyi 59cd60b266 eth, eth/downloader, jsre: surface state sync progress through the API 2016-02-10 14:30:41 +02:00
Péter Szilágyi f1ec226d80 eth/downloader: raise pending state limit that prevented concurrency 2016-02-08 14:57:02 +02:00
Péter Szilágyi 9e011ff1cd core, eth/downloader: ensure state presence in ancestor lookup 2016-01-04 16:27:23 +02:00
Péter Szilágyi b6f5523bdc eth/downloader: fetch data proportionally to peer capacity 2015-11-19 17:01:39 +02:00
Felix Lange b7b62d4b3c eth/downloader: also drain stateCh, receiptCh in eth/61 mode
State and receipt deliveries from a previous eth/62+ sync can hang if
the downloader has moved on to syncing with eth/61. Fix this by also
draining the eth/63 channels while waiting for eth/61 data.

A nicer solution would be to take care of the channels in a central
place, but that would involve a major rewrite.
2015-11-19 14:18:35 +01:00
Felix Lange 900da3d800 eth/downloader: don't hang for spurious deliveries
Unexpected deliveries could block indefinitely if they arrived at the
right time. The fix is to ensure that the cancellation channel is
always closed when the sync ends, unblocking any deliveries. Also remove
the atomic check for whether a sync is currently running because it
doesn't help and can be misleading.

Cancelling always seems to break the tests though. The downloader
spawned d.process whenever new data arrived, making it somewhat hard to
track when block processing was actually done. Fix this by running
d.process in a dedicated goroutine that is tied to the lifecycle of the
sync. d.process gets notified of new work by the queue instead of being
invoked all the time. This removes a ton of weird workaround code,
including a hairy use of atomic CAS.
2015-11-19 14:18:34 +01:00
Péter Szilágyi 2019ed71b4 eth: don't block sync goroutines that short circuit 2015-10-28 16:41:01 +02:00
Péter Szilágyi 5b0ee8ec30 core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
Péter Szilágyi a9d8dfc8e7 core, eth: roll back uncertain headers in failed fast syncs 2015-10-19 10:03:10 +03:00
Péter Szilágyi b97e34a8e4 eth/downloader: concurrent receipt and state processing 2015-10-19 10:03:10 +03:00
Péter Szilágyi ab27bee25a core, eth, trie: direct state trie synchronization 2015-10-19 10:03:09 +03:00
Péter Szilágyi 832b37c822 core, eth: receipt chain reconstruction 2015-10-19 10:03:09 +03:00
Péter Szilágyi f186b39018 eth/downloader: add fast and light sync strategies 2015-10-19 10:03:09 +03:00
Péter Szilágyi 47f62a67aa eth/downloader: match capabilities when querying idle peers 2015-10-02 13:20:41 +03:00
Péter Szilágyi f459a3f0ae eth/downloader: always send termination wakes, clean leftover 2015-09-23 12:39:17 +03:00
Péter Szilágyi 99b62f36b6 eth/downloader: header-chain order and ancestry check 2015-09-15 14:45:53 +03:00
Péter Szilágyi 0a7d059b6a eth, rpc: standardize the chain sync progress counters 2015-09-15 14:45:53 +03:00
Péter Szilágyi cdc2662c40 core: split out TD from database and all internals 2015-09-11 17:42:25 +03:00
Péter Szilágyi 1f1d73ab74 eth/downloader: fix race causing occasional test failure 2015-09-01 16:11:14 +03:00
Péter Szilágyi 17f65cd1e5 eth: update metrics collection to handle eth/62 algos 2015-08-25 17:48:47 +03:00
Péter Szilágyi 47a7fe5d22 eth: port the synchronisation algo to eth/62 2015-08-25 17:48:47 +03:00
Péter Szilágyi ca88e18f59 eth: kill off protocol eth/60 in preparation for eth/62 2015-08-24 17:57:28 +03:00
Péter Szilágyi 42f44dda54 eth, eth/downloader: handle header requests, table driven proto tests 2015-08-24 17:57:28 +03:00
Péter Szilágyi c51e153b5c eth, metrics, p2p: prepare metrics and net packets to eth/62 2015-08-21 10:30:57 +03:00
Péter Szilágyi 6adbaabc65 eth, eth/downloader: don't report stall if fetcher filled the block 2015-07-29 15:39:08 +03:00
Felix Lange bfbcfbe4a9 all: fix license headers one more time
I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
2015-07-23 18:35:11 +02:00
Felix Lange 3f047be5aa all: update license headers to distiguish GPL/LGPL
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Péter Szilágyi 492d5454b1 eth/downloader: drop peer if advertised TD but won't delvier 2015-07-09 14:40:18 +03:00
Felix Lange ea54283b30 all: update license information 2015-07-07 14:12:44 +02:00