- Jul 28, 2020
-
-
Gary Rong authored
* cmd, consensus, eth, les: implement light fetcher * les: address comment * les: address comment * les: address comments * les: check td after delivery * les: add linearExpiredValue for error counter * les: fix import * les: fix dead lock * les: order announces by td * les: encapsulate invalid counter * les: address comment * les: add more checks during the delivery * les: fix log * eth, les: fix lint * eth/fetcher: address comment
-
- May 22, 2020
-
-
Zsolt Felföldi authored
This PR reimplements the light client server pool. It is also a first step to move certain logic into a new lespay package. This package will contain the implementation of the lespay token sale functions, the token buying and selling logic and other components related to peer selection/prioritization and service quality evaluation. Over the long term this package will be reusable for incentivizing future protocols. Since the LES peer logic is now based on enode.Iterator, it can now use DNS-based fallback discovery to find servers. This document describes the function of the new components: https://gist.github.com/zsfelfoldi/3c7ace895234b7b345ab4f71dab102d4
-
- Feb 26, 2020
-
-
Gary Rong authored
* les: separate peer into clientPeer and serverPeer * les: address comments
-
- Aug 21, 2019
-
-
Gary Rong authored
les: handler separation
-
- Jul 09, 2019
-
-
Péter Szilágyi authored
-
- May 17, 2019
-
-
Zsolt Felföldi authored
* les: avoid fetcher deadlock on requestChn
-
- Feb 26, 2019
-
-
Zsolt Felföldi authored
This change - implements concurrent LES request serving even for a single peer. - replaces the request cost estimation method with a cost table based on benchmarks which gives much more consistent results. Until now the allowed number of light peers was just a guess which probably contributed a lot to the fluctuating quality of available service. Everything related to request cost is implemented in a single object, the 'cost tracker'. It uses a fixed cost table with a global 'correction factor'. Benchmark code is included and can be run at any time to adapt costs to low-level implementation changes. - reimplements flowcontrol.ClientManager in a cleaner and more efficient way, with added capabilities: There is now control over bandwidth, which allows using the flow control parameters for client prioritization. Target utilization over 100 percent is now supported to model concurrent request processing. Total serving bandwidth is reduced during block processing to prevent database contention. - implements an RPC API for the LES servers allowing server operators to assign priority bandwidth to certain clients and change prioritized status even while the client is connected. The new API is meant for cases where server operators charge for LES using an off-protocol mechanism. - adds a unit test for the new client manager. - adds an end-to-end test using the network simulator that tests bandwidth control functions through the new API.
-
- Jan 24, 2019
-
-
b00ris authored
For more information about this light client mode, read https://hackmd.io/s/HJy7jjZpm
-
- Nov 26, 2018
-
-
Zsolt Felföldi authored
-
- Oct 01, 2018
-
-
Zsolt Felföldi authored
-
- Jul 04, 2018
-
-
Zsolt Felföldi authored
-
- May 07, 2018
-
-
Péter Szilágyi authored
-
- Feb 19, 2018
-
-
Zsolt Felföldi authored
* les: fix light fetcher database race * les: lightFetcher comments
-
- Feb 14, 2018
-
-
Péter Szilágyi authored
-
- Nov 09, 2017
-
-
Evgeny Danilenko authored
-
- Jun 21, 2017
-
-
Zsolt Felföldi authored
This commit does various code refactorings: - generalizes and moves the request retrieval/timeout/resend logic out of LesOdr (will be used by a subsequent PR) - reworks the peer management logic so that all services can register with peerSet to get notified about added/dropped peers (also gets rid of the ugly getAllPeers callback in requestDistributor) - moves peerSet, LesOdr, requestDistributor and retrieveManager initialization out of ProtocolManager because I believe they do not really belong there and the whole init process was ugly and ad-hoc
-
- Apr 06, 2017
-
-
Péter Szilágyi authored
-
- Mar 22, 2017
-
-
Zsolt Felföldi authored
* les: implement request distributor, fix blocking issues * core: moved header validation before chain mutex lock
-
- Mar 03, 2017
-
-
Péter Szilágyi authored
-
- Feb 23, 2017
-
-
Péter Szilágyi authored
-
- Jan 06, 2017
-
-
Felix Lange authored
-
Zsolt Felföldi authored
les/flowcontrol: using proper types for relative and absolute times
-
- Dec 10, 2016
-
-
Zsolt Felföldi authored
-
Zsolt Felföldi authored
-
Zsolt Felföldi authored
-
- Dec 08, 2016
-
-
Zsolt Felföldi authored
-
- Nov 09, 2016
-
-
Felix Lange authored
-
Felix Lange authored
These accessors were introduced by light client changes, but the only method that is actually used is GetNumberU64. This commit replaces all uses of .GetNumberU64 with .Number.Uint64.
-
Zsolt Felföldi authored
-