Péter Szilágyi
783289068a
eth/downloader: fix occasional fast sync critical section test fails
9 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
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
Leif Jurvetson
bbbe2360d0
eth: various typos
9 years ago
Péter Szilágyi
93c0012000
eth/downloader: bump the download queue size to prevent starvation
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
9e011ff1cd
core, eth/downloader: ensure state presence in ancestor lookup
9 years ago
Péter Szilágyi
1f39746886
eth/downloader: throttling tests are time-sensitive, don't run parallel
9 years ago
Felix Lange
9be5d5cd90
eth/downloader: fix negative balance issue in tests
...
The test chain generated by makeChainFork included invalid uncle
headers, crashing the generator during the state commit.
The headers were invalid because they used the iteration counter as the
block number, even though makeChainFork uses a block with number > 0 as
the parent. Fix this by introducing BlockGen.Number, which allows
accessing the actual number of the block being generated.
9 years ago
Felix Lange
dd09af27af
eth/downloader: run tests in parallel
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
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
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
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
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
9 years ago
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
9 years ago
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".
9 years ago
Péter Szilágyi
492d5454b1
eth/downloader: drop peer if advertised TD but won't delvier
9 years ago
Felix Lange
ea54283b30
all: update license information
9 years ago
Péter Szilágyi
f857fb7600
eth/downloader: fix a rare test race on the OSX CI
9 years ago
Péter Szilágyi
f43c07cb3c
eth, eth/downloader: transition to eth 61
9 years ago
Péter Szilágyi
af51dc4d63
eth, eth/downloader: pass the eth protocol version through
9 years ago
Felix Lange
e0e5f74776
eth/downloader, eth/fetcher: use core.GenerateChain in tests
...
TestMadeupParentBlockChainAttack has been deleted because it was too
hard to port and the attack that it checks the prevention of is being
averted in a different way (through a protocol change).
9 years ago
Felix Lange
1d42888d30
core/types: make blocks immutable
9 years ago
Péter Szilágyi
2a1b722d04
eth/fetcher: fix timer reset bug, add initial tests
10 years ago
Péter Szilágyi
4365668462
eth/downloader: extend slow test to fix even slower CI server...
10 years ago
Péter Szilágyi
55dd8fd621
eth/downloader: always reenter processing if not exiting
10 years ago
Péter Szilágyi
2f4cbe22f5
eth, eth/downloader: fix processing interrupt caused by temp cancel
10 years ago
Péter Szilágyi
4a1e82cf3f
eth/downloader: fix #1280 , overlapping (good/bad) delivery hang
10 years ago
Péter Szilágyi
b240983e2b
eth, eth/downloader: do async block fetches, add dl tests
10 years ago
Péter Szilágyi
30a9939388
eth/downloader: sanity test for multi peer syncs
10 years ago
Péter Szilágyi
fc7abd9886
eth, eth/downloader: move block processing into the downlaoder
10 years ago
Péter Szilágyi
0fc71877a7
eth/downloader: add valid peer during attacks (check interference)
10 years ago
Péter Szilágyi
80833f8137
eth/downloader: instreument and test the sync peer drop
10 years ago
Péter Szilágyi
2dd6a62f67
eth/downloader: support individual peers in the test suite
10 years ago
Péter Szilágyi
2937903299
eth/downloader: remove uneeded testing functions
10 years ago
Péter Szilágyi
66d3dc8690
eth, eth/downloader: move peer removal into downloader
10 years ago