Commit Graph

146 Commits

Author SHA1 Message Date
obscuren 1470b22e90 downloader: hash downloading recovery
If a peer fails to respond (disconnect, etc) during hash downloading
switch to a different peer which has it's current_hash in the queue's
peer set.
2015-05-03 16:27:03 +02:00
obscuren f2a2b2ac70 eth/downloader: put back hashes on block overflow error 2015-05-03 14:11:00 +02:00
obscuren 493181ea09 eth/downloader: changed has to blockHashes for chain linking 2015-05-03 14:10:31 +02:00
obscuren 25bc88113f eth/downloader: added additional tests 2015-05-03 14:09:33 +02:00
obscuren 016f152b36 eth, eth/downloader: Moved block processing & graceful shutdown
The downloader is no longer responsible for processing blocks. The
eth-protocol handler now takes care of this instead.

Added graceful shutdown during block processing. Closes #846
2015-05-01 15:58:44 +02:00
obscuren 8595198c1b eth/downloader: delete blocks from queue 2015-04-30 17:51:47 +02:00
obscuren 9b6e8f6195 eth, eth/downloader: remove bad peers from peer set
Peers in the eth protocol handler are now being ignored for catch up.
2015-04-30 12:38:16 +02:00
obscuren f8c27d7159 eth/downloader: drop block 2015-04-29 19:55:04 +02:00
obscuren c930045834 core: fixed tetst to reflect (int, error) return by insertChain 2015-04-29 15:27:04 +02:00
obscuren dfbf580354 eth/downloader: ignore orphan blocks in the downloader.
When blocks have been sorted and are being processed, orphan blocks
should be ignored and thrown out. The protocol handler is responsible
for downloading blocks which have missing parents.
2015-04-29 14:49:37 +02:00
obscuren 735b029db9 core: return the index of the block that failed when inserting a chain 2015-04-29 14:00:24 +02:00
obscuren 13364a2dcf eth/downloader: reset the chain when parent is missing during processing 2015-04-29 13:40:39 +02:00
obscuren 4b7bdc3766 eth: check if downloader is busy before showing log message 2015-04-29 12:51:05 +02:00
obscuren 7ce3d06402 eth/downloader: removed update loop and synch channel 2015-04-24 18:28:46 +02:00
obscuren a9e4b96573 eth/downloader: fixed tests 2015-04-24 15:56:18 +02:00
obscuren d84c2202e7 eth, eth/downloader: simplified synchronisation process 2015-04-24 15:38:10 +02:00
obscuren bd9c76097d eth/downloader: removed peer td management and best peer selection 2015-04-24 15:37:07 +02:00
obscuren 31f82eb334 eth, eth/downloader: don't require td on downloader. Fixed tests 2015-04-24 15:04:58 +02:00
obscuren b86e7526e1 eth, eth/downloader: moved peer selection to protocol handler 2015-04-24 14:40:32 +02:00
obscuren 45da3e17e2 core: added chain head reset to known block 2015-04-20 12:29:02 +02:00
obscuren 5dd56bb474 geth: admin download status 2015-04-19 21:46:19 +02:00
obscuren ed07ffcde5 downloader: fixed tests with low ttl 2015-04-19 17:37:01 +02:00
obscuren dcf1a1988a moved 2015-04-19 17:14:15 +02:00
obscuren cce4158cfc Removed debug println 2015-04-19 13:33:14 +02:00
obscuren c58918c84a downloader: moved chunk ignoring. Fixes issue with catching up 2015-04-19 13:30:34 +02:00
obscuren 5c59d95532 downloader: defer peer reset after download 2015-04-19 01:39:37 +02:00
obscuren 86ecdcd5ff downloader: reset hashTtl on receive 2015-04-19 00:15:05 +02:00
obscuren 50e096e627 downloader: don't remove peers. keep them around 2015-04-18 23:56:08 +02:00
obscuren a1d97ea4db typo 2015-04-18 20:35:49 +02:00
obscuren 6830ddb659 downloader: free up peers from work when the downloader resets 2015-04-18 20:25:55 +02:00
obscuren 7c5d50f627 downloader: throw an error if there are no peers available for download
If all peers have been tried during the block download process and some
hashes are unfetchable (available peers > 0 and fetching == 0) throw an
error so the process can be aborted.
2015-04-18 19:30:29 +02:00
obscuren 78e37e98e7 downloader: fixed a race condition for download status 2015-04-18 19:14:25 +02:00
obscuren 0d536734fe eth: adapted to new synchronous api of downloader's AddBlock 2015-04-18 18:57:59 +02:00
obscuren c2c24b3bb4 downloader: improved downloading and synchronisation
* Downloader's peers keeps track of peer's previously requested hashes
  so that we don't have to re-request
* Changed `AddBlock` to be fully synchronous
2015-04-18 18:55:13 +02:00
obscuren 60613b57d1 downloader: make sure that hashes are only accepted from the active peer 2015-04-18 17:35:03 +02:00
obscuren 8244825bbf downloader: reset the queue if a peer response with an empty hash set 2015-04-18 15:14:12 +02:00
obscuren 8f873b762b downloader: all handlers check for isBusy 2015-04-18 03:15:26 +02:00
obscuren 2339ee9910 Merge branch 'develop' into downloader-proto
Conflicts:
	eth/downloader/downloader.go
2015-04-18 01:10:32 +02:00
obscuren eac2df02d1 downloader: fixed a typo 2015-04-17 00:11:45 +02:00
obscuren 205378016f downloader: added demotion / promotion in prep. for rep. system 2015-04-16 02:16:33 +02:00
obscuren eda10c7317 downloader: updated downloader and fixed issues with catch up
Properly ignore blocks coming from peers not in our peer list (blocked)
and do never request anything from bad peers. Added some checks to
account for blocks known when requesting hashes (missing parents).
2015-04-16 01:29:32 +02:00
obscuren c4678ffd77 downloader: updated downloader and fixed issues with catch up
Properly ignore blocks coming from peers not in our peer list (blocked)
and do never request anything from bad peers. Added some checks to
account for blocks known when requesting hashes (missing parents).
2015-04-16 00:14:31 +02:00
obscuren a8a2b2a488 downloader: added missing blocks catchup functionality
When a parent is missing in the block list an attempt should be made to
fetch the missing parent and grandparents.
2015-04-13 16:38:32 +02:00
obscuren 7dcb9825c3 downloader: return an error for peer.fetch and return chunk to queue
If a peer was somehow already fetching and somehow managed to end up in
the `available` pool it should return it's work.
2015-04-12 13:36:01 +02:00
obscuren 6efa8db888 downloader: renamed chunks to queue 2015-04-12 13:24:38 +02:00
obscuren acf8452c33 downloader: implemented new downloader 2015-04-12 12:38:25 +02:00