aboutsummaryrefslogtreecommitdiffstats
path: root/eth/downloader
Commit message (Expand)AuthorAgeFilesLines
* all: import "context" instead of "golang.org/x/net/context"Felix Lange2017-03-231-1/+1
* core, eth, les: support resuming fast sync on heavy rollback (#3743)Péter Szilágyi2017-03-222-10/+10
* Logger updates 3 (#3730)Péter Szilágyi2017-03-022-35/+35
* common, eth/downloader, log: support terminal log formattingPéter Szilágyi2017-02-282-28/+24
* eth/downloader: review fixesPéter Szilágyi2017-02-272-7/+13
* accounts, eth/downloader: use "err" instead of "error" in logsPéter Szilágyi2017-02-271-13/+13
* eth/downloader: port over old logs from glog to log15Péter Szilágyi2017-02-274-125/+137
* eth, les, swarm: fix go vet issues sufraced by log15Péter Szilágyi2017-02-231-1/+1
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-232-91/+89
* params: core, core/vm, miner: 64bit gas instructionsJeffrey Wilcke2017-02-142-7/+7
* Revert "params: core, core/vm, miner: 64bit gas instructions (#3514)"Jeffrey Wilcke2017-02-132-7/+7
* params: core, core/vm, miner: 64bit gas instructions (#3514)Jeffrey Wilcke2017-02-022-7/+7
* eth/downloader: improve deliverNodeData (#3588)Felix Lange2017-01-241-72/+52
* eth/downloader: fix mutex regression causing panics on fail (#3591)Péter Szilágyi2017-01-201-1/+2
* all: fix ineffectual assignments and remove uses of crypto.Sha3Felix Lange2017-01-091-1/+1
* all: fix spelling errorsPéter Szilágyi2017-01-071-1/+1
* all: gofmt -w -sFelix Lange2017-01-062-4/+4
* Merge pull request #3516 from fjl/types-drop-sign-ecdsaPéter Szilágyi2017-01-061-1/+1
|\
| * core/types: remove redundant SignECDSA wrappers, rename to SignTxFelix Lange2017-01-051-1/+1
* | trie: remove dependency on ethdbFelix Lange2017-01-061-5/+10
|/
* core/types, params: EIP#155Jeffrey Wilcke2016-11-131-1/+2
* core, core/state, trie: EIP158, reprice & skip empty account writeJeffrey Wilcke2016-11-131-1/+1
* cmd, eth: added light client and light server modeszsfelfoldi2016-11-092-7/+22
* eth/downloader: clear pending requests when switching trie rootPéter Szilágyi2016-11-011-9/+18
* eth/downloader: lower a state sync log level (users freak out)Péter Szilágyi2016-11-011-1/+1
* eth/downloader: reduce fast sync block requirements, fix testPéter Szilágyi2016-10-312-13/+28
* core/state, eth/downloader, trie: reset fast-failure on progressPéter Szilágyi2016-10-313-160/+206
* eth/downloader: fix a data race in a log outputPéter Szilágyi2016-10-211-1/+2
* cmd/geth, code, eth/downloader: tune import logs and mem statsPéter Szilágyi2016-10-211-1/+1
* common, core, eth/downloader: adjust import log formattingPéter Szilágyi2016-10-181-1/+1
* trie, core/state: improve memory usage and performance (#3135)Felix Lange2016-10-151-1/+1
* ethereum, ethclient: add SyncProgress API endpointPéter Szilágyi2016-09-063-48/+48
* rpc: refactor subscriptions and filtersBas van Kervel2016-08-171-46/+111
* Merge pull request #2866 from karalabe/downloader-future-ancestorsPéter Szilágyi2016-08-161-9/+17
|\
| * eth/downloader: fewer headers and futures too un ancestor lookupPéter Szilágyi2016-07-261-9/+17
* | Merge pull request #2868 from karalabe/downloader-abort-master-dropPéter Szilágyi2016-08-091-2/+15
|\ \
| * | eth/downloader: abort sync if master drops (timeout prev)Péter Szilágyi2016-07-261-2/+15
| |/
* | Merge pull request #2867 from karalabe/dao-challenge-finishPéter Szilágyi2016-08-091-1/+1
|\ \
| * | eth, eth/downloader: don't forward the DAO challenge headerPéter Szilágyi2016-07-261-1/+1
| |/
* | Merge pull request #2861 from karalabe/track-peer-heads-properlyPéter Szilágyi2016-08-093-10/+27
|\ \ | |/ |/|
| * eth, eth/downloader: better remote head trackingPéter Szilágyi2016-07-253-10/+27
* | Merge pull request #2855 from karalabe/downloader-fix-stall-dropFelix Lange2016-07-251-1/+8
|\ \ | |/ |/|
| * eth/downloader: fix the stall checks/drops during syncPéter Szilágyi2016-07-221-1/+8
* | eth, eth/downloader, eth/fetcher: delete eth/61 codeFelix Lange2016-07-226-932/+75
|/
* accounts, core, eth: pass chain config for chain maker to test DAOPéter Szilágyi2016-07-151-1/+1
* eth/downloader: return invalid chain (peer drop) on import failsPéter Szilágyi2016-07-121-1/+1
* eth/downloader: fix occasional fast sync critical section test failsPéter Szilágyi2016-06-131-1/+3
* eth/downloader: adaptive quality of service tuningPéter Szilágyi2016-06-063-48/+235
* eth/downloader: make fast sync resilient to critical section failsPéter Szilágyi2016-06-022-26/+109
* Merge pull request #2637 from karalabe/downloader-always-cancelPéter Szilágyi2016-05-312-1/+13
|\
| * eth/downloader: ensure cancel channel is closed post syncPéter Szilágyi2016-05-302-1/+13
* | eth/downloader, trie: pull head state concurrently with chainPéter Szilágyi2016-05-272-29/+35
|/
* eth/downloader: fix reviewer commentsPéter Szilágyi2016-05-202-9/+32
* eth/downloader: stream partial skeleton filling to processorPéter Szilágyi2016-05-173-19/+55
* eth/downloader: implement concurrent header downloadsPéter Szilágyi2016-05-174-211/+584
* eth/downloader: bound fork ancestry and allow heavy short forksPéter Szilágyi2016-05-132-43/+201
* rpc: remove NotifierContextKeyFelix Lange2016-04-161-1/+1
* all: fix go vet warningsFelix Lange2016-04-152-5/+3
* all: update license informationFelix Lange2016-04-151-7/+7
* rpc: add pub/sub supportBas van Kervel2016-04-021-16/+59
* core, eth: replace reorganiz with reorganisLeif Jurvetson2016-03-161-2/+2
* eth: various typosLeif Jurvetson2016-03-164-10/+10
* eth/downloader: fix a throughput estimation data racePéter Szilágyi2016-03-101-2/+2
* eth/downloader: fix premature exit before notifying all part fetchersPéter Szilágyi2016-02-291-1/+3
* eth/downloader: fix header download limitingFelix Lange2016-02-261-1/+1
* Merge pull request #2251 from karalabe/increase-downlaoder-queuePéter Szilágyi2016-02-242-1/+6
|\
| * eth/downloader: bump the download queue size to prevent starvationPéter Szilágyi2016-02-232-1/+6
* | Merge pull request #2242 from jimenezrick/upstream-cryptoJeffrey Wilcke2016-02-241-1/+1
|\ \ | |/ |/|
| * all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()Ricardo Catalinas Jiménez2016-02-221-1/+1
* | eth/downloader: fix partial rollback and ancestor lookupPéter Szilágyi2016-02-191-2/+28
|/
* eth, eth/downloader, jsre: surface state sync progress through the APIPéter Szilágyi2016-02-103-22/+31
* eth/downloader: raise pending state limit that prevented concurrencyPéter Szilágyi2016-02-082-3/+3
* rpc: migrated the RPC insterface to a new reflection based RPC layerBas van Kervel2016-01-261-1/+1
* core, eth/downloader: ensure state presence in ancestor lookupPéter Szilágyi2016-01-043-57/+68
* eth/downloader: throttling tests are time-sensitive, don't run parallelPéter Szilágyi2015-12-301-3/+1
* eth/downloader: fix negative balance issue in testsFelix Lange2015-12-181-2/+5
* rpc: new RPC implementation with pub/sub supportBas van Kervel2015-12-141-0/+64
* eth/downloader: fetch data proportionally to peer capacityPéter Szilágyi2015-11-193-246/+258
* eth/downloader: run tests in parallelFelix Lange2015-11-191-0/+29
* eth/downloader: also drain stateCh, receiptCh in eth/61 modeFelix Lange2015-11-191-71/+77
* eth/downloader: don't hang for spurious deliveriesFelix Lange2015-11-193-236/+230
* eth/downloader: fix dysfunctional ignore list hidden by generic setPéter Szilágyi2015-11-042-11/+46
* eth: don't block sync goroutines that short circuitPéter Szilágyi2015-10-281-2/+4
* core, eth, trie: fix data races and merge/review issuesPéter Szilágyi2015-10-215-347/+518
* eth: clean out light node notions from ethPéter Szilágyi2015-10-191-4/+6
* core, eth: roll back uncertain headers in failed fast syncsPéter Szilágyi2015-10-193-11/+130
* eth/downloader: concurrent receipt and state processingPéter Szilágyi2015-10-194-72/+158
* core, eth, trie: direct state trie synchronizationPéter Szilágyi2015-10-196-451/+760
* core, eth: receipt chain reconstructionPéter Szilágyi2015-10-192-114/+166
* eth/downloader: add fast and light sync strategiesPéter Szilágyi2015-10-196-775/+1388
* eth/downloader: match capabilities when querying idle peersPéter Szilágyi2015-10-023-8/+53
* eth/downloader: always send termination wakes, clean leftoverPéter Szilágyi2015-09-231-20/+36
* eth/downloader: header-chain order and ancestry checkPéter Szilágyi2015-09-153-7/+77
* eth, rpc: standardize the chain sync progress countersPéter Szilágyi2015-09-152-51/+476
* core: split out TD from database and all internalsPéter Szilágyi2015-09-112-16/+39
* eth/downloader: fix race causing occasional test failurePéter Szilágyi2015-09-011-1/+3
* eth: update metrics collection to handle eth/62 algosPéter Szilágyi2015-08-253-4/+97
* eth: port the synchronisation algo to eth/62Péter Szilágyi2015-08-254-217/+1125
* eth: kill off protocol eth/60 in preparation for eth/62Péter Szilágyi2015-08-242-772/+5
* eth, eth/downloader: handle header requests, table driven proto testsPéter Szilágyi2015-08-241-5/+7
* eth, metrics, p2p: prepare metrics and net packets to eth/62Péter Szilágyi2015-08-211-1/+2
* eth, eth/downloader: don't report stall if fetcher filled the blockPéter Szilágyi2015-07-292-42/+64
* all: fix license headers one more timeFelix Lange2015-07-245-5/+5
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-235-20/+20
* eth/downloader: drop peer if advertised TD but won't delvierPéter Szilágyi2015-07-092-99/+44
* all: update license informationFelix Lange2015-07-075-0/+80
* eth/downloader: fix a rare test race on the OSX CIPéter Szilágyi2015-07-031-1/+7
* eth, eth/downloader: fix #1231, DOS vulnerability in hash queueingPéter Szilágyi2015-07-011-4/+14
* eth/downloader: reduce hash fetches in prep for eth/61Péter Szilágyi2015-07-011-3/+3
* eth, eth/downloader: transition to eth 61Péter Szilágyi2015-07-014-81/+606
* eth, eth/downloader: pass the eth protocol version throughPéter Szilágyi2015-07-013-35/+44
* eth/downloader, eth/fetcher: use core.GenerateChain in testsFelix Lange2015-06-301-156/+97
* core/types: make blocks immutableFelix Lange2015-06-301-1/+4
* eth, eth/fetcher: move propagated block import into fetcherPéter Szilágyi2015-06-181-1/+1
* eth/fetcher: fix timer reset bug, add initial testsPéter Szilágyi2015-06-181-3/+5
* eth, eth/fetcher: separate notification sync mechanismPéter Szilágyi2015-06-181-0/+1
* eth/downloader: extend slow test to fix even slower CI server...Péter Szilágyi2015-06-181-1/+1
* eth/downloader: always reenter processing if not exitingPéter Szilágyi2015-06-182-39/+37
* eth, eth/downloader: fix processing interrupt caused by temp cancelPéter Szilágyi2015-06-182-23/+21
* eth/downloader: fix #1280, overlapping (good/bad) delivery hangPéter Szilágyi2015-06-172-0/+35
* eth/downloader: detailed comment for the race corner casePéter Szilágyi2015-06-151-4/+15
* eth/downloader: fix import statistic reset, fetch hashes asyncPéter Szilágyi2015-06-151-11/+14
* eth, eth/downloader: do async block fetches, add dl testsPéter Szilágyi2015-06-152-4/+46
* eth/downloader: sanity test for multi peer syncsPéter Szilágyi2015-06-151-0/+31
* eth, eth/downloader: move block processing into the downlaoderPéter Szilágyi2015-06-152-180/+249
* eth/downloader: add valid peer during attacks (check interference)Péter Szilágyi2015-06-151-93/+140
* eth/downloader: instreument and test the sync peer dropPéter Szilágyi2015-06-152-9/+66
* eth/downloader: support individual peers in the test suitePéter Szilágyi2015-06-151-112/+113
* eth/downloader: remove uneeded testing functionsPéter Szilágyi2015-06-152-37/+2
* eth, eth/downloader: move peer removal into downloaderPéter Szilágyi2015-06-153-45/+76
* eth/downloader: fetch the block hashes on the fly, when neededPéter Szilágyi2015-06-111-9/+5
* cmd/geth, eth/downloader: rough guess at the import etaPéter Szilágyi2015-06-101-2/+13
* cmd/geth, eth/downloader: collect and report import progress tooPéter Szilágyi2015-06-101-4/+35
* eth/downloader: fix hash fetch timeout handlingFelix Lange2015-06-091-12/+18
* eth/downloader: test registration rejection on head banPéter Szilágyi2015-06-081-2/+10
* eth/downloader: reject peer registration if head is bannedPéter Szilágyi2015-06-081-4/+15
* eth/downloader: cap the hash ban set, add test for itPéter Szilágyi2015-06-084-9/+61
* eth/downloader: fix throttling test to be less timing dependentPéter Szilágyi2015-06-081-3/+7
* eth/downloader: fix another rebase errorPéter Szilágyi2015-06-081-2/+1
* eth/downloader: preallocate the block cachePéter Szilágyi2015-06-083-21/+14
* eth/downloader: fix merge compile errorPéter Szilágyi2015-06-081-1/+1
* eth/downloader: don't block hash deliveries while pulling blocksPéter Szilágyi2015-06-081-17/+14
* eth/downloader: update test for shitty travisPéter Szilágyi2015-06-081-1/+1
* eth/downloader: clean up and simplify the code a bitPéter Szilágyi2015-06-081-13/+3
* eth/downloader: short circuit sync if head hash is bannedPéter Szilágyi2015-06-081-0/+4
* eth/downloader: accumulating hash bans for reconnecting attackersPéter Szilágyi2015-06-082-5/+126
* eth/downloader: clean up tests and unused variablesPéter Szilágyi2015-06-082-120/+79
* Merge pull request #1189 from karalabe/downloader-polishesJeffrey Wilcke2015-06-053-19/+50
|\
| * eth/downloader: differentiate stale and nonexistent deliveriesPéter Szilágyi2015-06-052-19/+46
| * eth/downloader: log hard timeouts and reset capacityPéter Szilágyi2015-06-052-0/+4
* | eth, eth/downloader: fix #1098, elevate empty hash errors to peer dropsPéter Szilágyi2015-06-051-2/+2
|/
* eth/downloader: drop log entry from peer, it's covered alreadyPéter Szilágyi2015-06-041-5/+0
* eth/downloader: log after state updates, easier to debugPéter Szilágyi2015-06-041-5/+3
* eth/downloader: fix #1178, don't request blocks beyond the cache boundsPéter Szilágyi2015-06-043-15/+35
* eth/downloader: demote peers if they exceed the soft limits at 1 blocks alreadyPéter Szilágyi2015-06-031-3/+8
* eth/downloader: add a basic block download congestion controlPéter Szilágyi2015-06-035-55/+67
* core, eth/downloader: expose the bad hashes, check in downloaderPéter Szilágyi2015-05-281-0/+16
* eth/downloader: silence "Added N blocks from..." if N == 0Péter Szilágyi2015-05-261-1/+1
* eth, eth/downloader: surface downloaded block origin, drop on errorPéter Szilágyi2015-05-263-14/+22
* Merge pull request #1064 from karalabe/downloader-attacksJeffrey Wilcke2015-05-223-21/+93
|\
| * eth, eth/downloader: remove duplicate consts, bump hash fetch to 2KPéter Szilágyi2015-05-213-6/+8
| * eth/downloader: circumvent a forged block chain with known parent attackPéter Szilágyi2015-05-212-13/+56
| * eth/downloader: prevent a peer from dripping bad hashesPéter Szilágyi2015-05-212-9/+36
* | eth/downloader: fix test to it doesn't time out on a slow machinePéter Szilágyi2015-05-201-1/+1
|/
* eth/downloader: moved start eventobscuren2015-05-161-2/+2
* Merge pull request #996 from karalabe/fix-potential-crosscheck-raceJeffrey Wilcke2015-05-161-5/+7
|\
| * eth/downloader: circumvent download race between crosscheck and hashesPéter Szilágyi2015-05-161-5/+7
* | eth/downloader: fix #992, where tests may time out on a slow machinePéter Szilágyi2015-05-161-0/+6
|/
* eth/downloader: fix cancel channel double closePéter Szilágyi2015-05-161-3/+8
* eth/downloader: circumvent a fake blockchain attackPéter Szilágyi2015-05-152-27/+58
* eth/downloader: don't penalize for stale cross checksPéter Szilágyi2015-05-151-7/+17
* eth, eth/downloader: detect and handle madeup hash attacksPéter Szilágyi2015-05-153-42/+109
* eth/downloader: circumvent hash reordering attacksPéter Szilágyi2015-05-153-49/+88
* eth/downloader: check sync after failed attacksPéter Szilágyi2015-05-152-7/+23
* eth/downloader: add a test for detecting missing blocksPéter Szilágyi2015-05-152-8/+24
* eth, eth/downloader: prevent hash repeater attackPéter Szilágyi2015-05-153-13/+46
* eth/downloader: fixed testobscuren2015-05-151-1/+3
* eth, eth/downloader, miner: use download events to check miner startobscuren2015-05-152-1/+21
* Merge pull request #974 from karalabe/downloader-fix-unknown-parent-attackJeffrey Wilcke2015-05-143-34/+82
|\
| * eth/downloader: add a small additional check to the testPéter Szilágyi2015-05-141-0/+3
| * eth/downloader: remove a previous leftoverPéter Szilágyi2015-05-141-1/+0
| * eth, eth/downloader: remove parent verification from the downlaoderPéter Szilágyi2015-05-143-37/+13
| * eth, eth/downloader: handle a potential unknown parent attackPéter Szilágyi2015-05-142-25/+95
* | Merge pull request #950 from karalabe/downloader-cancel-syncJeffrey Wilcke2015-05-141-32/+37
|\ \
| * | eth/downloader: remove a redundant sync progress checkPéter Szilágyi2015-05-131-4/+0
| * | eth/downloader: add a user sync notificatonPéter Szilágyi2015-05-131-0/+5
| * | eth/downloader: sync the cancel channel during cancel tooPéter Szilágyi2015-05-131-21/+4
| * | eth/downloader: fix deliveries to check for sync cancelsPéter Szilágyi2015-05-131-10/+31
| |/
* / eth/downloader: fix nil panic caused by wrong variable usePéter Szilágyi2015-05-131-1/+1
|/
* eth/downloader: fix active peer shadowing, polish func namesPéter Szilágyi2015-05-132-22/+14
* eth, eth/downloader: moved pending queue error message to debugobscuren2015-05-111-2/+2
* eth/downloader: use count instead of peers, clearerPéter Szilágyi2015-05-112-4/+4
* eth/downloader: revert to demotion, use harsher penaltyPéter Szilágyi2015-05-112-8/+19
* eth/downloader: fix #910, thread safe peers & polishesPéter Szilágyi2015-05-114-161/+210
* eth: added a cancel method for the downloaderobscuren2015-05-102-2/+103
* eth/downloader: fix leftover state between syncsPéter Szilágyi2015-05-081-1/+4
* eth, eth/downloader: handle sync errors a bit more gracefullyPéter Szilágyi2015-05-082-18/+16
* eth, eth/downloader: make synchronize thread safePéter Szilágyi2015-05-083-68/+16
* eth/downloader: fix priority queue reset, add throttling testPéter Szilágyi2015-05-071-0/+48
* eth/downloader: fix expiration not running while fetchingPéter Szilágyi2015-05-072-34/+32
* eth/downloader: prioritize block fetch based on chain position, cap memory usePéter Szilágyi2015-05-075-273/+369
* downloader: hash downloading recoveryobscuren2015-05-032-29/+71
* eth/downloader: put back hashes on block overflow errorobscuren2015-05-031-19/+14
* eth/downloader: changed has to blockHashes for chain linkingobscuren2015-05-031-1/+1
* eth/downloader: added additional testsobscuren2015-05-032-4/+73
* eth, eth/downloader: Moved block processing & graceful shutdownobscuren2015-05-013-173/+221
* eth/downloader: delete blocks from queueobscuren2015-04-301-2/+14
* eth, eth/downloader: remove bad peers from peer setobscuren2015-04-301-10/+8
* eth/downloader: drop blockobscuren2015-04-301-1/+1
* core: fixed tetst to reflect (int, error) return by insertChainobscuren2015-04-291-2/+2
* eth/downloader: ignore orphan blocks in the downloader.obscuren2015-04-291-5/+9
* core: return the index of the block that failed when inserting a chainobscuren2015-04-291-5/+4
* eth/downloader: reset the chain when parent is missing during processingobscuren2015-04-291-0/+2
* eth: check if downloader is busy before showing log messageobscuren2015-04-291-0/+4
* eth/downloader: removed update loop and synch channelobscuren2015-04-251-25/+0
* eth/downloader: fixed testsobscuren2015-04-241-12/+8
* eth, eth/downloader: simplified synchronisation processobscuren2015-04-241-24/+13
* eth/downloader: removed peer td management and best peer selectionobscuren2015-04-242-16/+2
* eth, eth/downloader: don't require td on downloader. Fixed testsobscuren2015-04-242-21/+18
* eth, eth/downloader: moved peer selection to protocol handlerobscuren2015-04-242-124/+50
* core: added chain head reset to known blockobscuren2015-04-201-0/+2
* geth: admin download statusobscuren2015-04-201-11/+15
* downloader: fixed tests with low ttlobscuren2015-04-192-2/+3
* movedobscuren2015-04-191-6/+6
* Removed debug printlnobscuren2015-04-191-3/+0
* downloader: moved chunk ignoring. Fixes issue with catching upobscuren2015-04-194-31/+44
* downloader: defer peer reset after downloadobscuren2015-04-192-4/+8
* downloader: reset hashTtl on receiveobscuren2015-04-191-0/+2
* downloader: don't remove peers. keep them aroundobscuren2015-04-191-2/+3
* typoobscuren2015-04-191-1/+1
* downloader: free up peers from work when the downloader resetsobscuren2015-04-193-5/+22
* downloader: throw an error if there are no peers available for downloadobscuren2015-04-191-6/+16
* downloader: fixed a race condition for download statusobscuren2015-04-191-1/+0
* eth: adapted to new synchronous api of downloader's AddBlockobscuren2015-04-192-2/+2
* downloader: improved downloading and synchronisationobscuren2015-04-194-110/+129
* downloader: make sure that hashes are only accepted from the active peerobscuren2015-04-181-18/+45
* downloader: reset the queue if a peer response with an empty hash setobscuren2015-04-182-14/+36
* downloader: all handlers check for isBusyobscuren2015-04-181-7/+7
* Merge branch 'develop' into downloader-protoobscuren2015-04-182-5/+117
|\
| * downloader: fixed a typoobscuren2015-04-171-1/+1
| * downloader: added demotion / promotion in prep. for rep. systemobscuren2015-04-162-0/+25
| * downloader: updated downloader and fixed issues with catch upobscuren2015-04-161-21/+47
* | downloader: updated downloader and fixed issues with catch upobscuren2015-04-161-22/+48
|/
* downloader: added missing blocks catchup functionalityobscuren2015-04-134-133/+303
* downloader: return an error for peer.fetch and return chunk to queueobscuren2015-04-122-3/+16
* downloader: renamed chunks to queueobscuren2015-04-121-0/+0
* downloader: implemented new downloaderobscuren2015-04-124-0/+602