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>
4 years ago
Felföldi Zsolt
62d8022b51
les: fix UDP connection query ( #22451 )
...
This PR fixes multiple issues with the UDP connection pre-negotiation feature:
- the enable condition was wrong (it checked the existence of the DiscV5 struct where it wasn't initialized yet, disabling the feature even if discv5 was enabled)
- the server pool queried already connected nodes when the discovery iterators returned them again
- servers responded positively before they were synced and really willing to accept connections
Metrics are also added on the server side that count the positive and negative replies to served connection queries.
4 years ago
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>
4 years ago
Felföldi Zsolt
b4a2681120
les, les/lespay: implement new server pool ( #20758 )
...
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
5 years ago
Felföldi Zsolt
0ac9bbba6c
les: multiple server bugfixes ( #20079 )
...
* les: detailed relative cost metrics
* les: filter txpool relative request statistic
* les: initialize price factors
* les: increased connected bias to lower churn rate
* les: fixed clientPool.setLimits
* core: do not use mutex in GetAncestor
* les: bump factor db version again
* les: add metrics
* les, light: minor fixes
5 years ago
gary rong
2ed729d38e
les: handler separation ( #19639 )
...
les: handler separation
5 years ago
Felföldi Zsolt
a7de796840
les: implement new client pool ( #19745 )
5 years ago
gary rong
59a3198382
les: remove half-finished priority pool APIs ( #19780 )
...
* les: remove half-finish APIs
* les: remove half-finish APIs
5 years ago
Anton Evangelatov
ae9f97221a
metrics: pull library and introduce ResettingTimer and InfluxDB reporter ( #15910 )
...
* go-metrics: fork library and introduce ResettingTimer and InfluxDB reporter.
* vendor: change nonsense/go-metrics to ethersphere/go-metrics
* go-metrics: add tests. move ResettingTimer logic from reporter to type.
* all, metrics: pull in metrics package in go-ethereum
* metrics/test: make sure metrics are enabled for tests
* metrics: apply gosimple rules
* metrics/exp, internal/debug: init expvar endpoint when starting pprof server
* internal/debug: tiny comment formatting fix
7 years ago
Péter Szilágyi
18c77744ff
all: fix spelling errors
8 years ago
Felix Lange
b8bd9a71c8
all: update license information
8 years ago
Zsolt Felfoldi
9f8d192991
les: light client protocol and API
8 years ago