8938768f75
core, eth/downloader: ensure state presence in ancestor lookup
2016-01-05 12:31:45 +01:00
dd09af27af
eth/downloader: run tests in parallel
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
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
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
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
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
f857fb7600
eth/downloader: fix a rare test race on the OSX CI
2015-07-03 13:01:22 +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
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).
2015-06-29 18:51:47 +02:00
1d42888d30
core/types: make blocks immutable
2015-06-29 18:51:47 +02:00
2a1b722d04
eth/fetcher: fix timer reset bug, add initial tests
2015-06-18 15:56:07 +03:00
4365668462
eth/downloader: extend slow test to fix even slower CI server...
2015-06-18 00:42:02 +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
b240983e2b
eth, eth/downloader: do async block fetches, add dl tests
2015-06-15 12:26:05 +03:00
30a9939388
eth/downloader: sanity test for multi peer syncs
2015-06-15 09:22:37 +03:00
fc7abd9886
eth, eth/downloader: move block processing into the downlaoder
2015-06-15 09:22:37 +03:00
0fc71877a7
eth/downloader: add valid peer during attacks (check interference)
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
2dd6a62f67
eth/downloader: support individual peers in the test suite
2015-06-15 09:22:36 +03:00
2937903299
eth/downloader: remove uneeded testing functions
2015-06-15 09:22:36 +03:00
66d3dc8690
eth, eth/downloader: move peer removal into downloader
2015-06-15 09:22:36 +03:00
4ed3509a02
eth/downloader: test registration rejection on head ban
2015-06-08 15:02:52 +03:00
63c6cedb14
eth/downloader: cap the hash ban set, add test for it
2015-06-08 14:12:00 +03:00
4b2dd44711
eth/downloader: fix throttling test to be less timing dependent
2015-06-08 13:23:58 +03:00
b40c796ff7
eth/downloader: preallocate the block cache
2015-06-08 13:23:58 +03:00
9da0232eef
eth/downloader: update test for shitty travis
2015-06-08 13:23:58 +03:00
84bc93d8cb
eth/downloader: accumulating hash bans for reconnecting attackers
2015-06-08 13:23:58 +03:00
eedb25b22a
eth/downloader: clean up tests and unused variables
2015-06-08 13:23:57 +03:00
c9a546c310
eth/downloader: add a basic block download congestion control
2015-06-03 14:40:11 +03:00
eafdc1f8e3
eth, eth/downloader: surface downloaded block origin, drop on error
2015-05-26 14:00:21 +03:00
af28736bd0
Merge pull request #1064 from karalabe/downloader-attacks
...
Fix two additional download vulnerabilities
2015-05-21 09:00:12 -07:00
06a041589f
eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K
2015-05-21 18:16:04 +03:00
52db6d8be5
eth/downloader: circumvent a forged block chain with known parent attack
2015-05-21 08:37:27 +03:00