Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | eth/downloader: fetch data proportionally to peer capacity | Péter Szilágyi | 2015-11-19 | 1 | -104/+74 |
| | |||||
* | eth/downloader: also drain stateCh, receiptCh in eth/61 mode | Felix Lange | 2015-11-19 | 1 | -71/+77 |
| | | | | | | | | | 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. | ||||
* | eth/downloader: don't hang for spurious deliveries | Felix Lange | 2015-11-19 | 1 | -105/+57 |
| | | | | | | | | | | | | | | | | 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. | ||||
* | eth: don't block sync goroutines that short circuit | Péter Szilágyi | 2015-10-28 | 1 | -2/+4 |
| | |||||
* | core, eth, trie: fix data races and merge/review issues | Péter Szilágyi | 2015-10-21 | 1 | -71/+120 |
| | |||||
* | core, eth: roll back uncertain headers in failed fast syncs | Péter Szilágyi | 2015-10-19 | 1 | -10/+50 |
| | |||||
* | eth/downloader: concurrent receipt and state processing | Péter Szilágyi | 2015-10-19 | 1 | -24/+40 |
| | |||||
* | core, eth, trie: direct state trie synchronization | Péter Szilágyi | 2015-10-19 | 1 | -334/+234 |
| | |||||
* | core, eth: receipt chain reconstruction | Péter Szilágyi | 2015-10-19 | 1 | -22/+33 |
| | |||||
* | eth/downloader: add fast and light sync strategies | Péter Szilágyi | 2015-10-19 | 1 | -229/+438 |
| | |||||
* | eth/downloader: match capabilities when querying idle peers | Péter Szilágyi | 2015-10-02 | 1 | -2/+2 |
| | |||||
* | eth/downloader: always send termination wakes, clean leftover | Péter Szilágyi | 2015-09-23 | 1 | -20/+36 |
| | |||||
* | eth/downloader: header-chain order and ancestry check | Péter Szilágyi | 2015-09-15 | 1 | -1/+1 |
| | |||||
* | eth, rpc: standardize the chain sync progress counters | Péter Szilágyi | 2015-09-15 | 1 | -47/+139 |
| | |||||
* | core: split out TD from database and all internals | Péter Szilágyi | 2015-09-11 | 1 | -3/+8 |
| | |||||
* | eth/downloader: fix race causing occasional test failure | Péter Szilágyi | 2015-09-01 | 1 | -1/+3 |
| | |||||
* | eth: update metrics collection to handle eth/62 algos | Péter Szilágyi | 2015-08-25 | 1 | -4/+40 |
| | |||||
* | eth: port the synchronisation algo to eth/62 | Péter Szilágyi | 2015-08-25 | 1 | -94/+580 |
| | |||||
* | eth: kill off protocol eth/60 in preparation for eth/62 | Péter Szilágyi | 2015-08-24 | 1 | -394/+3 |
| | |||||
* | eth, eth/downloader: handle header requests, table driven proto tests | Péter Szilágyi | 2015-08-24 | 1 | -5/+7 |
| | |||||
* | eth, metrics, p2p: prepare metrics and net packets to eth/62 | Péter Szilágyi | 2015-08-21 | 1 | -1/+2 |
| | |||||
* | eth, eth/downloader: don't report stall if fetcher filled the block | Péter Szilágyi | 2015-07-29 | 1 | -10/+22 |
| | |||||
* | all: fix license headers one more time | Felix Lange | 2015-07-24 | 1 | -1/+1 |
| | | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a. | ||||
* | all: update license headers to distiguish GPL/LGPL | Felix Lange | 2015-07-23 | 1 | -4/+4 |
| | | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library". | ||||
* | eth/downloader: drop peer if advertised TD but won't delvier | Péter Szilágyi | 2015-07-09 | 1 | -0/+8 |
| | |||||
* | all: update license information | Felix Lange | 2015-07-07 | 1 | -0/+16 |
| | |||||
* | eth, eth/downloader: fix #1231, DOS vulnerability in hash queueing | Péter Szilágyi | 2015-07-01 | 1 | -4/+14 |
| | |||||
* | eth/downloader: reduce hash fetches in prep for eth/61 | Péter Szilágyi | 2015-07-01 | 1 | -3/+3 |
| | |||||
* | eth, eth/downloader: transition to eth 61 | Péter Szilágyi | 2015-07-01 | 1 | -21/+376 |
| | |||||
* | eth, eth/downloader: pass the eth protocol version through | Péter Szilágyi | 2015-07-01 | 1 | -2/+2 |
| | |||||
* | eth, eth/fetcher: move propagated block import into fetcher | Péter Szilágyi | 2015-06-18 | 1 | -1/+1 |
| | |||||
* | eth, eth/fetcher: separate notification sync mechanism | Péter Szilágyi | 2015-06-18 | 1 | -0/+1 |
| | |||||
* | eth/downloader: always reenter processing if not exiting | Péter Szilágyi | 2015-06-18 | 1 | -23/+22 |
| | |||||
* | eth, eth/downloader: fix processing interrupt caused by temp cancel | Péter Szilágyi | 2015-06-18 | 1 | -21/+19 |
| | |||||
* | eth/downloader: fix #1280, overlapping (good/bad) delivery hang | Péter Szilágyi | 2015-06-17 | 1 | -0/+1 |
| | |||||
* | eth/downloader: detailed comment for the race corner case | Péter Szilágyi | 2015-06-15 | 1 | -4/+15 |
| | |||||
* | eth/downloader: fix import statistic reset, fetch hashes async | Péter Szilágyi | 2015-06-15 | 1 | -11/+14 |
| | |||||
* | eth, eth/downloader: move block processing into the downlaoder | Péter Szilágyi | 2015-06-15 | 1 | -58/+119 |
| | |||||
* | eth/downloader: instreument and test the sync peer drop | Péter Szilágyi | 2015-06-15 | 1 | -5/+9 |
| | |||||
* | eth, eth/downloader: move peer removal into downloader | Péter Szilágyi | 2015-06-15 | 1 | -28/+59 |
| | |||||
* | eth/downloader: fetch the block hashes on the fly, when needed | Péter Szilágyi | 2015-06-11 | 1 | -9/+5 |
| | |||||
* | cmd/geth, eth/downloader: rough guess at the import eta | Péter Szilágyi | 2015-06-10 | 1 | -2/+13 |
| | |||||
* | cmd/geth, eth/downloader: collect and report import progress too | Péter Szilágyi | 2015-06-10 | 1 | -4/+35 |
| | |||||
* | eth/downloader: fix hash fetch timeout handling | Felix Lange | 2015-06-09 | 1 | -12/+18 |
| | | | | Fixes #1206 | ||||
* | eth/downloader: reject peer registration if head is banned | Péter Szilágyi | 2015-06-08 | 1 | -4/+15 |
| | |||||
* | eth/downloader: cap the hash ban set, add test for it | Péter Szilágyi | 2015-06-08 | 1 | -7/+16 |
| | |||||
* | eth/downloader: preallocate the block cache | Péter Szilágyi | 2015-06-08 | 1 | -4/+4 |
| | |||||
* | eth/downloader: fix merge compile error | Péter Szilágyi | 2015-06-08 | 1 | -1/+1 |
| | |||||
* | eth/downloader: don't block hash deliveries while pulling blocks | Péter Szilágyi | 2015-06-08 | 1 | -17/+14 |
| | |||||
* | eth/downloader: clean up and simplify the code a bit | Péter Szilágyi | 2015-06-08 | 1 | -13/+3 |
| | |||||
* | eth/downloader: short circuit sync if head hash is banned | Péter Szilágyi | 2015-06-08 | 1 | -0/+4 |
| | |||||
* | eth/downloader: accumulating hash bans for reconnecting attackers | Péter Szilágyi | 2015-06-08 | 1 | -5/+91 |
| | |||||
* | eth/downloader: clean up tests and unused variables | Péter Szilágyi | 2015-06-08 | 1 | -6/+4 |
| | |||||
* | Merge pull request #1189 from karalabe/downloader-polishes | Jeffrey Wilcke | 2015-06-05 | 1 | -16/+35 |
|\ | | | | | eth/downloader: handle timeouts more gracefully | ||||
| * | eth/downloader: differentiate stale and nonexistent deliveries | Péter Szilágyi | 2015-06-05 | 1 | -16/+34 |
| | | |||||
| * | eth/downloader: log hard timeouts and reset capacity | Péter Szilágyi | 2015-06-05 | 1 | -0/+1 |
| | | |||||
* | | eth, eth/downloader: fix #1098, elevate empty hash errors to peer drops | Péter Szilágyi | 2015-06-05 | 1 | -2/+2 |
|/ | |||||
* | eth/downloader: log after state updates, easier to debug | Péter Szilágyi | 2015-06-04 | 1 | -5/+3 |
| | |||||
* | eth/downloader: fix #1178, don't request blocks beyond the cache bounds | Péter Szilágyi | 2015-06-04 | 1 | -14/+24 |
| | |||||
* | eth/downloader: add a basic block download congestion control | Péter Szilágyi | 2015-06-03 | 1 | -6/+8 |
| | |||||
* | core, eth/downloader: expose the bad hashes, check in downloader | Péter Szilágyi | 2015-05-28 | 1 | -0/+16 |
| | |||||
* | eth/downloader: silence "Added N blocks from..." if N == 0 | Péter Szilágyi | 2015-05-26 | 1 | -1/+1 |
| | |||||
* | eth, eth/downloader: surface downloaded block origin, drop on error | Péter Szilágyi | 2015-05-26 | 1 | -1/+7 |
| | |||||
* | eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K | Péter Szilágyi | 2015-05-21 | 1 | -4/+6 |
| | |||||
* | eth/downloader: circumvent a forged block chain with known parent attack | Péter Szilágyi | 2015-05-21 | 1 | -12/+21 |
| | |||||
* | eth/downloader: prevent a peer from dripping bad hashes | Péter Szilágyi | 2015-05-21 | 1 | -8/+12 |
| | |||||
* | eth/downloader: moved start event | obscuren | 2015-05-16 | 1 | -2/+2 |
| | | | | Start event has moved because it could possibly could stall the miner | ||||
* | eth/downloader: circumvent download race between crosscheck and hashes | Péter Szilágyi | 2015-05-16 | 1 | -5/+7 |
| | |||||
* | eth/downloader: fix cancel channel double close | Péter Szilágyi | 2015-05-16 | 1 | -3/+8 |
| | |||||
* | eth/downloader: circumvent a fake blockchain attack | Péter Szilágyi | 2015-05-15 | 1 | -12/+9 |
| | |||||
* | eth/downloader: don't penalize for stale cross checks | Péter Szilágyi | 2015-05-15 | 1 | -7/+17 |
| | |||||
* | eth, eth/downloader: detect and handle madeup hash attacks | Péter Szilágyi | 2015-05-15 | 1 | -32/+64 |
| | |||||
* | eth/downloader: circumvent hash reordering attacks | Péter Szilágyi | 2015-05-15 | 1 | -15/+21 |
| | |||||
* | eth/downloader: check sync after failed attacks | Péter Szilágyi | 2015-05-15 | 1 | -1/+5 |
| | |||||
* | eth/downloader: add a test for detecting missing blocks | Péter Szilágyi | 2015-05-15 | 1 | -3/+1 |
| | |||||
* | eth, eth/downloader: prevent hash repeater attack | Péter Szilágyi | 2015-05-15 | 1 | -4/+6 |
| | |||||
* | eth, eth/downloader, miner: use download events to check miner start | obscuren | 2015-05-15 | 1 | -1/+16 |
| | |||||
* | Merge pull request #974 from karalabe/downloader-fix-unknown-parent-attack | Jeffrey Wilcke | 2015-05-14 | 1 | -9/+2 |
|\ | | | | | eth, eth/downloader: handle a potential unknown parent attack | ||||
| * | eth/downloader: remove a previous leftover | Péter Szilágyi | 2015-05-14 | 1 | -1/+0 |
| | | |||||
| * | eth, eth/downloader: remove parent verification from the downlaoder | Péter Szilágyi | 2015-05-14 | 1 | -12/+2 |
| | | |||||
| * | eth, eth/downloader: handle a potential unknown parent attack | Péter Szilágyi | 2015-05-14 | 1 | -8/+12 |
| | | |||||
* | | Merge pull request #950 from karalabe/downloader-cancel-sync | Jeffrey Wilcke | 2015-05-14 | 1 | -32/+37 |
|\ \ | | | | | | | eth/downloader: fix deliveries to check for sync cancels | ||||
| * | | eth/downloader: remove a redundant sync progress check | Péter Szilágyi | 2015-05-13 | 1 | -4/+0 |
| | | | |||||
| * | | eth/downloader: add a user sync notificaton | Péter Szilágyi | 2015-05-13 | 1 | -0/+5 |
| | | | |||||
| * | | eth/downloader: sync the cancel channel during cancel too | Péter Szilágyi | 2015-05-13 | 1 | -21/+4 |
| | | | |||||
| * | | eth/downloader: fix deliveries to check for sync cancels | Péter Szilágyi | 2015-05-13 | 1 | -10/+31 |
| |/ | |||||
* / | eth/downloader: fix nil panic caused by wrong variable use | Péter Szilágyi | 2015-05-13 | 1 | -1/+1 |
|/ | |||||
* | eth/downloader: fix active peer shadowing, polish func names | Péter Szilágyi | 2015-05-13 | 1 | -18/+10 |
| | |||||
* | eth, eth/downloader: moved pending queue error message to debug | obscuren | 2015-05-11 | 1 | -2/+2 |
| | |||||
* | eth/downloader: use count instead of peers, clearer | Péter Szilágyi | 2015-05-11 | 1 | -2/+2 |
| | |||||
* | eth/downloader: revert to demotion, use harsher penalty | Péter Szilágyi | 2015-05-11 | 1 | -3/+9 |
| | |||||
* | eth/downloader: fix #910, thread safe peers & polishes | Péter Szilágyi | 2015-05-11 | 1 | -84/+56 |
| | |||||
* | eth: added a cancel method for the downloader | obscuren | 2015-05-10 | 1 | -2/+60 |
| | | | | | | | | | Added a cancel method to the downloader which gracefully shuts down any active syncing process (hash fetching or block downloading) and resets the queue and remove any pending blocks. Issue with the downloader which would stall because of an active ongoing process when an invalid block was found. | ||||
* | eth/downloader: fix leftover state between syncs | Péter Szilágyi | 2015-05-08 | 1 | -1/+4 |
| | |||||
* | eth, eth/downloader: handle sync errors a bit more gracefully | Péter Szilágyi | 2015-05-08 | 1 | -15/+13 |
| | |||||
* | eth, eth/downloader: make synchronize thread safe | Péter Szilágyi | 2015-05-08 | 1 | -57/+15 |
| | |||||
* | eth/downloader: fix expiration not running while fetching | Péter Szilágyi | 2015-05-07 | 1 | -22/+18 |
| | |||||
* | eth/downloader: prioritize block fetch based on chain position, cap memory use | Péter Szilágyi | 2015-05-07 | 1 | -120/+70 |
| | |||||
* | downloader: hash downloading recovery | obscuren | 2015-05-03 | 1 | -19/+54 |
| | | | | | | 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. | ||||
* | eth/downloader: changed has to blockHashes for chain linking | obscuren | 2015-05-03 | 1 | -1/+1 |
| | |||||
* | eth, eth/downloader: Moved block processing & graceful shutdown | obscuren | 2015-05-01 | 1 | -149/+132 |
| | | | | | | | 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 | ||||
* | eth/downloader: delete blocks from queue | obscuren | 2015-04-30 | 1 | -2/+14 |
| | |||||
* | eth, eth/downloader: remove bad peers from peer set | obscuren | 2015-04-30 | 1 | -10/+8 |
| | | | | Peers in the eth protocol handler are now being ignored for catch up. | ||||
* | eth/downloader: drop block | obscuren | 2015-04-30 | 1 | -1/+1 |
| | |||||
* | eth/downloader: ignore orphan blocks in the downloader. | obscuren | 2015-04-29 | 1 | -5/+9 |
| | | | | | | 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. | ||||
* | core: return the index of the block that failed when inserting a chain | obscuren | 2015-04-29 | 1 | -5/+4 |
| | |||||
* | eth/downloader: reset the chain when parent is missing during processing | obscuren | 2015-04-29 | 1 | -0/+2 |
| | |||||
* | eth: check if downloader is busy before showing log message | obscuren | 2015-04-29 | 1 | -0/+4 |
| | |||||
* | eth/downloader: removed update loop and synch channel | obscuren | 2015-04-25 | 1 | -25/+0 |
| | |||||
* | eth, eth/downloader: simplified synchronisation process | obscuren | 2015-04-24 | 1 | -24/+13 |
| | |||||
* | eth, eth/downloader: don't require td on downloader. Fixed tests | obscuren | 2015-04-24 | 1 | -4/+1 |
| | |||||
* | eth, eth/downloader: moved peer selection to protocol handler | obscuren | 2015-04-24 | 1 | -45/+50 |
| | |||||
* | core: added chain head reset to known block | obscuren | 2015-04-20 | 1 | -0/+2 |
| | |||||
* | geth: admin download status | obscuren | 2015-04-20 | 1 | -11/+15 |
| | |||||
* | downloader: fixed tests with low ttl | obscuren | 2015-04-19 | 1 | -2/+2 |
| | |||||
* | moved | obscuren | 2015-04-19 | 1 | -6/+6 |
| | |||||
* | Removed debug println | obscuren | 2015-04-19 | 1 | -3/+0 |
| | |||||
* | downloader: moved chunk ignoring. Fixes issue with catching up | obscuren | 2015-04-19 | 1 | -17/+22 |
| | |||||
* | downloader: defer peer reset after download | obscuren | 2015-04-19 | 1 | -4/+7 |
| | |||||
* | downloader: reset hashTtl on receive | obscuren | 2015-04-19 | 1 | -0/+2 |
| | |||||
* | downloader: don't remove peers. keep them around | obscuren | 2015-04-19 | 1 | -2/+3 |
| | |||||
* | downloader: free up peers from work when the downloader resets | obscuren | 2015-04-19 | 1 | -1/+3 |
| | |||||
* | downloader: throw an error if there are no peers available for download | obscuren | 2015-04-19 | 1 | -6/+16 |
| | | | | | | 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. | ||||
* | downloader: fixed a race condition for download status | obscuren | 2015-04-19 | 1 | -1/+0 |
| | |||||
* | eth: adapted to new synchronous api of downloader's AddBlock | obscuren | 2015-04-19 | 1 | -2/+0 |
| | |||||
* | downloader: improved downloading and synchronisation | obscuren | 2015-04-19 | 1 | -109/+35 |
| | | | | | | * 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 | ||||
* | downloader: make sure that hashes are only accepted from the active peer | obscuren | 2015-04-18 | 1 | -18/+45 |
| | |||||
* | downloader: reset the queue if a peer response with an empty hash set | obscuren | 2015-04-18 | 1 | -14/+25 |
| | |||||
* | downloader: all handlers check for isBusy | obscuren | 2015-04-18 | 1 | -7/+7 |
| | |||||
* | Merge branch 'develop' into downloader-proto | obscuren | 2015-04-18 | 1 | -5/+97 |
|\ | | | | | | | | | Conflicts: eth/downloader/downloader.go | ||||
| * | downloader: fixed a typo | obscuren | 2015-04-17 | 1 | -1/+1 |
| | | |||||
| * | downloader: added demotion / promotion in prep. for rep. system | obscuren | 2015-04-16 | 1 | -0/+5 |
| | | |||||
| * | downloader: updated downloader and fixed issues with catch up | obscuren | 2015-04-16 | 1 | -21/+47 |
| | | | | | | | | | | | | 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). | ||||
* | | downloader: updated downloader and fixed issues with catch up | obscuren | 2015-04-16 | 1 | -22/+48 |
|/ | | | | | | 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). | ||||
* | downloader: added missing blocks catchup functionality | obscuren | 2015-04-13 | 1 | -121/+190 |
| | | | | | When a parent is missing in the block list an attempt should be made to fetch the missing parent and grandparents. | ||||
* | downloader: return an error for peer.fetch and return chunk to queue | obscuren | 2015-04-12 | 1 | -2/+8 |
| | | | | | If a peer was somehow already fetching and somehow managed to end up in the `available` pool it should return it's work. | ||||
* | downloader: implemented new downloader | obscuren | 2015-04-12 | 1 | -0/+328 |