Péter Szilágyi
4f1d92b332
eth/downloader, trie: pull head state concurrently with chain
9 years ago
Péter Szilágyi
8906b2fe09
eth/downloader: fix reviewer comments
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
Felix Lange
6fdd0893c3
all: fix go vet warnings
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
Ricardo Catalinas Jiménez
436fc8d76a
all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
...
As we aren't really using the standarized SHA-3
9 years ago
Péter Szilágyi
f1ec226d80
eth/downloader: raise pending state limit that prevented concurrency
9 years ago
Péter Szilágyi
b6f5523bdc
eth/downloader: fetch data proportionally to peer capacity
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
b658a73ed5
eth/downloader: fix dysfunctional ignore list hidden by generic set
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
aa0538db0b
eth: clean out light node notions from eth
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
f186b39018
eth/downloader: add fast and light sync strategies
9 years ago
Péter Szilágyi
99b62f36b6
eth/downloader: header-chain order and ancestry check
9 years ago
Péter Szilágyi
17f65cd1e5
eth: update metrics collection to handle eth/62 algos
9 years ago
Péter Szilágyi
47a7fe5d22
eth: port the synchronisation algo to eth/62
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
Felix Lange
ea54283b30
all: update license information
10 years ago
Péter Szilágyi
f43c07cb3c
eth, eth/downloader: transition to eth 61
10 years ago
Péter Szilágyi
66d3dc8690
eth, eth/downloader: move peer removal into downloader
10 years ago
Péter Szilágyi
63c6cedb14
eth/downloader: cap the hash ban set, add test for it
10 years ago
Péter Szilágyi
2d627995cf
eth/downloader: fix another rebase error
10 years ago
Péter Szilágyi
b40c796ff7
eth/downloader: preallocate the block cache
10 years ago
Péter Szilágyi
328ef60b85
eth/downloader: differentiate stale and nonexistent deliveries
10 years ago
Péter Szilágyi
28c32d1b1b
eth/downloader: fix #1178 , don't request blocks beyond the cache bounds
10 years ago
Péter Szilágyi
c9a546c310
eth/downloader: add a basic block download congestion control
10 years ago
Péter Szilágyi
eafdc1f8e3
eth, eth/downloader: surface downloaded block origin, drop on error
10 years ago
Péter Szilágyi
06a041589f
eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K
10 years ago
Péter Szilágyi
83226762c2
eth, eth/downloader: detect and handle madeup hash attacks
10 years ago
Péter Szilágyi
72411eb24c
eth/downloader: circumvent hash reordering attacks
10 years ago
Péter Szilágyi
cd2fb09051
eth, eth/downloader: prevent hash repeater attack
10 years ago
Péter Szilágyi
3eda70c64c
eth, eth/downloader: remove parent verification from the downlaoder
10 years ago
Péter Szilágyi
70c65835f4
eth/downloader: fix #910 , thread safe peers & polishes
10 years ago
Péter Szilágyi
685862d2ce
eth/downloader: fix #910 , thread safe peers & polishes
10 years ago
Péter Szilágyi
9d188f73b5
eth, eth/downloader: make synchronize thread safe
10 years ago
Péter Szilágyi
45f8304f3c
eth/downloader: fix expiration not running while fetching
10 years ago
Péter Szilágyi
4800c94392
eth/downloader: prioritize block fetch based on chain position, cap memory use
10 years ago
obscuren
f2a2b2ac70
eth/downloader: put back hashes on block overflow error
10 years ago
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
10 years ago
obscuren
bd9c76097d
eth/downloader: removed peer td management and best peer selection
10 years ago
obscuren
c58918c84a
downloader: moved chunk ignoring. Fixes issue with catching up
10 years ago
obscuren
6830ddb659
downloader: free up peers from work when the downloader resets
10 years ago
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
10 years ago
obscuren
8244825bbf
downloader: reset the queue if a peer response with an empty hash set
10 years ago
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.
10 years ago