64ee5763ee
eth/downloader: fix premature exit before notifying all part fetchers
2016-02-29 14:22:28 +02:00
26e72b2ccd
eth/downloader: fix header download limiting
...
Fixes #2201
2016-02-26 15:24:51 +01:00
216729009b
eth/downloader: fix partial rollback and ancestor lookup
2016-02-19 11:17:02 +02:00
59cd60b266
eth, eth/downloader, jsre: surface state sync progress through the API
2016-02-10 14:30:41 +02:00
f1ec226d80
eth/downloader: raise pending state limit that prevented concurrency
2016-02-08 14:57:02 +02:00
9e011ff1cd
core, eth/downloader: ensure state presence in ancestor lookup
2016-01-04 16:27:23 +02:00
b6f5523bdc
eth/downloader: fetch data proportionally to peer capacity
2015-11-19 17:01:39 +02:00
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
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
2019ed71b4
eth: don't block sync goroutines that short circuit
2015-10-28 16:41:01 +02:00
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
2015-10-21 16:49:55 +03:00
a9d8dfc8e7
core, eth: roll back uncertain headers in failed fast syncs
2015-10-19 10:03:10 +03:00
b97e34a8e4
eth/downloader: concurrent receipt and state processing
2015-10-19 10:03:10 +03:00
ab27bee25a
core, eth, trie: direct state trie synchronization
2015-10-19 10:03:09 +03:00
832b37c822
core, eth: receipt chain reconstruction
2015-10-19 10:03:09 +03:00
f186b39018
eth/downloader: add fast and light sync strategies
2015-10-19 10:03:09 +03:00
47f62a67aa
eth/downloader: match capabilities when querying idle peers
2015-10-02 13:20:41 +03:00
f459a3f0ae
eth/downloader: always send termination wakes, clean leftover
2015-09-23 12:39:17 +03:00
99b62f36b6
eth/downloader: header-chain order and ancestry check
2015-09-15 14:45:53 +03:00
0a7d059b6a
eth, rpc: standardize the chain sync progress counters
2015-09-15 14:45:53 +03:00
cdc2662c40
core: split out TD from database and all internals
2015-09-11 17:42:25 +03:00
1f1d73ab74
eth/downloader: fix race causing occasional test failure
2015-09-01 16:11:14 +03:00
17f65cd1e5
eth: update metrics collection to handle eth/62 algos
2015-08-25 17:48:47 +03:00
47a7fe5d22
eth: port the synchronisation algo to eth/62
2015-08-25 17:48:47 +03:00
ca88e18f59
eth: kill off protocol eth/60 in preparation for eth/62
2015-08-24 17:57:28 +03:00
42f44dda54
eth, eth/downloader: handle header requests, table driven proto tests
2015-08-24 17:57:28 +03:00
c51e153b5c
eth, metrics, p2p: prepare metrics and net packets to eth/62
2015-08-21 10:30:57 +03:00
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
2015-07-29 15:39:08 +03:00
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
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
492d5454b1
eth/downloader: drop peer if advertised TD but won't delvier
2015-07-09 14:40:18 +03:00
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
d6f2c0a76f
eth, eth/downloader: fix #1231 , DOS vulnerability in hash queueing
2015-07-01 15:21:35 +03:00
60454da650
eth/downloader: reduce hash fetches in prep for eth/61
2015-07-01 01:20:49 +03:00
f43c07cb3c
eth, eth/downloader: transition to eth 61
2015-06-30 19:05:06 +03:00
af51dc4d63
eth, eth/downloader: pass the eth protocol version through
2015-06-30 19:00:01 +03:00
5ec6ecc511
eth, eth/fetcher: move propagated block import into fetcher
2015-06-18 15:56:08 +03:00
7c2af1c117
eth, eth/fetcher: separate notification sync mechanism
2015-06-18 15:56:07 +03:00
55dd8fd621
eth/downloader: always reenter processing if not exiting
2015-06-18 00:26:54 +03:00
2f4cbe22f5
eth, eth/downloader: fix processing interrupt caused by temp cancel
2015-06-18 00:04:57 +03:00
4a1e82cf3f
eth/downloader: fix #1280 , overlapping (good/bad) delivery hang
2015-06-17 12:03:16 +03:00
cf7c44a7f6
eth/downloader: detailed comment for the race corner case
2015-06-15 15:18:04 +03:00
9c03c374e3
eth/downloader: fix import statistic reset, fetch hashes async
2015-06-15 13:05:01 +03:00
fc7abd9886
eth, eth/downloader: move block processing into the downlaoder
2015-06-15 09:22:37 +03:00
80833f8137
eth/downloader: instreument and test the sync peer drop
2015-06-15 09:22:37 +03:00
66d3dc8690
eth, eth/downloader: move peer removal into downloader
2015-06-15 09:22:36 +03:00
3c1cccc801
eth/downloader: fetch the block hashes on the fly, when needed
2015-06-10 20:12:22 +03:00
271fb20ecb
cmd/geth, eth/downloader: rough guess at the import eta
2015-06-10 18:01:05 +03:00
b3d5ce7d48
cmd/geth, eth/downloader: collect and report import progress too
2015-06-10 01:20:35 +03:00
8dc3048f65
eth/downloader: fix hash fetch timeout handling
...
Fixes #1206
2015-06-09 17:07:10 +02:00