lightclient
10dc5dce08
all: remove concept of public/private API definitions ( #25053 )
...
* internal/ethapi: rename PublicEthereumAPI to EthereumAPI
* eth: rename PublicEthereumAPI to EthereumAPI
* internal/ethapi: rename PublicTxPoolAPI to TxPoolAPI
* internal/ethapi: rename PublicAccountAPI to EthereumAccountAPI
* internal/ethapi: rename PrivateAccountAPI to PersonalAccountAPI
* internal/ethapi: rename PublicBlockChainAPI to BlockChainAPI
* internal/ethapi: rename PublicTransactionPoolAPI to TransactionAPI
* internal/ethapi: rename PublicDebugAPI to DebugAPI
* internal/ethapi: move PrivateDebugAPI methods to DebugAPI
* internal/ethapi: rename PublicNetAPI to NetAPI
* les: rename PrivateLightServerAPI to LightServerAPI
* les: rename PrivateLightAPI to LightAPI
* les: rename PrivateDebugAPI to DebugAPI
* les: rename PublicDownloaderAPI to DownloaderAPI
* eth,les: rename PublicFilterAPI to FilterAPI
* eth: rename PublicMinerAPI to MinerAPI
* eth: rename PublicDownloaderAPI to DownloaderAPI
* eth: move PrivateMinerAPI methods to MinerAPI
* eth: rename PrivateAdminAPI to AdminAPI
* eth: rename PublicDebugAPI to DebugAPI
* eth: move PrivateDebugAPI methods to DebugAPI
* node: rename publicAdminAPI to adminAPI
* node: move privateAdminAPI methods to adminAPI
* node: rename publicWeb3API to web3API
* eth,internal/ethapi: sync comments with previous renamings
2022-06-21 12:05:43 +03:00
Felföldi Zsolt
2d89fe0883
les: move client pool to les/vflux/server ( #22495 )
...
* les: move client pool to les/vflux/server
* les/vflux/server: un-expose NodeBalance, remove unused fn, fix bugs
* tests/fuzzers/vflux: add ClientPool fuzzer
* les/vflux/server: fixed balance tests
* les: rebase fix
* les/vflux/server: fixed more bugs
* les/vflux/server: unexported NodeStateMachine fields and flags
* les/vflux/server: unexport all internal components and functions
* les/vflux/server: fixed priorityPool test
* les/vflux/server: polish balance
* les/vflux/server: fixed mutex locking error
* les/vflux/server: priorityPool bug fixed
* common/prque: make Prque wrap-around priority handling optional
* les/vflux/server: rename funcs, small optimizations
* les/vflux/server: fixed timeUntil
* les/vflux/server: separated balance.posValue and negValue
* les/vflux/server: polish setup
* les/vflux/server: enforce capacity curve monotonicity
* les/vflux/server: simplified requestCapacity
* les/vflux/server: requestCapacity with target range, no iterations in SetCapacity
* les/vflux/server: minor changes
* les/vflux/server: moved default factors to balanceTracker
* les/vflux/server: set inactiveFlag in priorityPool
* les/vflux/server: moved related metrics to vfs package
* les/vflux/client: make priorityPool temp state logic cleaner
* les/vflux/server: changed log.Crit to log.Error
* add vflux fuzzer to oss-fuzz
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2021-04-06 20:42:50 +02:00
Felföldi Zsolt
91726e8aad
les: allow either full enode strings or raw hex ids in the API ( #22423 )
2021-03-16 12:55:43 +01:00
Felföldi Zsolt
c027507e03
les: renamed lespay to vflux ( #22347 )
2021-02-19 14:44:16 +01:00
Felföldi Zsolt
4996fce25a
les, les/lespay/server: refactor client pool ( #21236 )
...
* les, les/lespay/server: refactor client pool
* les: use ns.Operation and sub calls where needed
* les: fixed tests
* les: removed active/inactive logic from peerSet
* les: removed active/inactive peer logic
* les: fixed linter warnings
* les: fixed more linter errors and added missing metrics
* les: addressed comments
* cmd/geth: fixed TestPriorityClient
* les: simplified clientPool state machine
* les/lespay/server: do not use goroutine for balance callbacks
* internal/web3ext: fix addBalance required parameters
* les: removed freeCapacity, always connect at minCapacity initially
* les: only allow capacity change with priority status
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2020-09-14 22:44:20 +02:00
Binacs
4366c45e4e
les: make clientPool.connectedBias configurable ( #21305 )
2020-07-21 10:23:40 +02:00
gary rong
c6285e6437
les/checkpointoracle: move oracle into its own package ( #20508 )
...
* les: move the checkpoint oracle into its own package
It's first step of refactor LES package. LES package
basically can be divided into LES client and LES server.
However both sides will use checkpoint package for
status retrieval and verification. So this PR moves
checkpoint oracle into a separate package
* les: address comments
2020-01-07 11:24:21 +02:00
Felföldi Zsolt
878e35bfde
les: fix clientInfo deadlock ( #20395 )
2019-11-26 12:17:15 +02:00
Felföldi Zsolt
422604b438
les: rename UpdateBalance to AddBalance and simplify return format ( #20304 )
2019-11-18 12:42:49 +01:00
Felföldi Zsolt
bf5c6b29fa
les: implement server priority API ( #20070 )
...
This PR implements the LES server RPC API. Methods for server
capacity, client balance and client priority management are provided.
2019-11-13 23:47:03 +01:00
gary rong
2ed729d38e
les: handler separation ( #19639 )
...
les: handler separation
2019-08-21 11:29:34 +02:00
Péter Szilágyi
1a83114c74
all: update author list and licenses
2019-07-22 12:17:27 +03:00
gary rong
59a3198382
les: remove half-finished priority pool APIs ( #19780 )
...
* les: remove half-finish APIs
* les: remove half-finish APIs
2019-07-03 21:23:06 +03:00
gary rong
f7cdea2bdc
all: on-chain oracle checkpoint syncing ( #19543 )
...
* all: implement simple checkpoint syncing
cmd, les, node: remove callback mechanism
cmd, node: remove callback definition
les: simplify the registrar
les: expose checkpoint rpc services in the light client
les, light: don't store untrusted receipt
cmd, contracts, les: discard stale checkpoint
cmd, contracts/registrar: loose restriction of registeration
cmd, contracts: add replay-protection
all: off-chain multi-signature contract
params: deploy checkpoint contract for rinkeby
cmd/registrar: add raw signing mode for registrar
cmd/registrar, contracts/registrar, les: fixed messages
* cmd/registrar, contracts/registrar: fix lints
* accounts/abi/bind, les: address comments
* cmd, contracts, les, light, params: minor checkpoint sync cleanups
* cmd, eth, les, light: move checkpoint config to config file
* cmd, eth, les, params: address comments
* eth, les, params: address comments
* cmd: polish up the checkpoint admin CLI
* cmd, contracts, params: deploy new version contract
* cmd/checkpoint-admin: add another flag for clef mode signing
* cmd, contracts, les: rename and regen checkpoint oracle with abigen
2019-06-28 10:34:02 +03:00
Felföldi Zsolt
58497f46bd
les, les/flowcontrol: implement LES/3 ( #19329 )
...
les, les/flowcontrol: implement LES/3
2019-05-30 20:51:13 +02:00
Felföldi Zsolt
c2003ed63b
les, les/flowcontrol: improved request serving and flow control ( #18230 )
...
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.
2019-02-26 12:32:48 +01:00