Péter Szilágyi
53db80da89
eth/downloader: fix a data race in a log output
8 years ago
Péter Szilágyi
1291778032
cmd/geth, code, eth/downloader: tune import logs and mem stats
8 years ago
Péter Szilágyi
64500ab0fa
common, core, eth/downloader: adjust import log formatting
8 years ago
Péter Szilágyi
2924fdfcf7
ethereum, ethclient: add SyncProgress API endpoint
8 years ago
Péter Szilágyi
8f0a4a25f8
eth/downloader: abort sync if master drops (timeout prev)
8 years ago
Péter Szilágyi
071af57bcf
eth, eth/downloader: don't forward the DAO challenge header
8 years ago
Péter Szilágyi
d68865f3b1
eth/downloader: fewer headers and futures too un ancestor lookup
8 years ago
Péter Szilágyi
1dd272080d
eth, eth/downloader: better remote head tracking
8 years ago
Péter Szilágyi
c7c82f1b44
eth/downloader: fix the stall checks/drops during sync
8 years ago
Felix Lange
016007bd25
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.
8 years ago
Péter Szilágyi
a691aa2a13
eth/downloader: return invalid chain (peer drop) on import fails
8 years ago
Péter Szilágyi
88f174a014
eth/downloader: adaptive quality of service tuning
9 years ago
Péter Szilágyi
61ee9f299d
eth/downloader: make fast sync resilient to critical section fails
9 years ago
Péter Szilágyi
4496a44f68
eth/downloader: ensure cancel channel is closed post sync
9 years ago
Péter Szilágyi
4f1d92b332
eth/downloader, trie: pull head state concurrently with chain
9 years ago
Péter Szilágyi
8906b2fe09
eth/downloader: fix reviewer comments
9 years ago
Péter Szilágyi
e86619e75d
eth/downloader: stream partial skeleton filling to processor
9 years ago
Péter Szilágyi
b40dc8a1da
eth/downloader: implement concurrent header downloads
9 years ago
Péter Szilágyi
39ce85cf5d
eth/downloader: bound fork ancestry and allow heavy short forks
9 years ago
Felix Lange
6fdd0893c3
all: fix go vet warnings
9 years ago
Leif Jurvetson
434e4b31d8
core, eth: replace reorganiz with reorganis
9 years ago
Leif Jurvetson
bbbe2360d0
eth: various typos
9 years ago
Péter Szilágyi
64ee5763ee
eth/downloader: fix premature exit before notifying all part fetchers
9 years ago
Felix Lange
26e72b2ccd
eth/downloader: fix header download limiting
...
Fixes #2201
9 years ago
Péter Szilágyi
216729009b
eth/downloader: fix partial rollback and ancestor lookup
9 years ago
Péter Szilágyi
59cd60b266
eth, eth/downloader, jsre: surface state sync progress through the API
9 years ago
Péter Szilágyi
f1ec226d80
eth/downloader: raise pending state limit that prevented concurrency
9 years ago
Péter Szilágyi
9e011ff1cd
core, eth/downloader: ensure state presence in ancestor lookup
9 years ago
Péter Szilágyi
b6f5523bdc
eth/downloader: fetch data proportionally to peer capacity
9 years ago
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.
9 years ago
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.
9 years ago
Péter Szilágyi
2019ed71b4
eth: don't block sync goroutines that short circuit
9 years ago
Péter Szilágyi
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
9 years ago
Péter Szilágyi
a9d8dfc8e7
core, eth: roll back uncertain headers in failed fast syncs
9 years ago
Péter Szilágyi
b97e34a8e4
eth/downloader: concurrent receipt and state processing
9 years ago
Péter Szilágyi
ab27bee25a
core, eth, trie: direct state trie synchronization
9 years ago
Péter Szilágyi
832b37c822
core, eth: receipt chain reconstruction
9 years ago
Péter Szilágyi
f186b39018
eth/downloader: add fast and light sync strategies
9 years ago
Péter Szilágyi
47f62a67aa
eth/downloader: match capabilities when querying idle peers
9 years ago
Péter Szilágyi
f459a3f0ae
eth/downloader: always send termination wakes, clean leftover
9 years ago
Péter Szilágyi
99b62f36b6
eth/downloader: header-chain order and ancestry check
9 years ago
Péter Szilágyi
0a7d059b6a
eth, rpc: standardize the chain sync progress counters
9 years ago
Péter Szilágyi
cdc2662c40
core: split out TD from database and all internals
9 years ago
Péter Szilágyi
1f1d73ab74
eth/downloader: fix race causing occasional test failure
9 years ago
Péter Szilágyi
17f65cd1e5
eth: update metrics collection to handle eth/62 algos
9 years ago
Péter Szilágyi
47a7fe5d22
eth: port the synchronisation algo to eth/62
9 years ago
Péter Szilágyi
ca88e18f59
eth: kill off protocol eth/60 in preparation for eth/62
9 years ago
Péter Szilágyi
42f44dda54
eth, eth/downloader: handle header requests, table driven proto tests
9 years ago
Péter Szilágyi
c51e153b5c
eth, metrics, p2p: prepare metrics and net packets to eth/62
9 years ago
Péter Szilágyi
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
9 years ago