Péter Szilágyi
bf1798e04e
common/prque: generic priority queue ( #26290 )
...
* common, core, eth, les, trie: make prque generic
* les/vflux/server: fixed issues in priorityPool
* common, core, eth, les, trie: make priority also generic in prque
* les/flowcontrol: add test case for priority accumulator overflow
* les/flowcontrol: avoid priority value overflow
* common/prque: use int priority in some tests
No need to convert to int64 when we can just change the type used by the
queue.
* common/prque: remove comment about int64 range
---------
Co-authored-by: Zsolt Felfoldi <zsfelfoldi@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2 years ago
rjl493456442
088bc34194
les/vflux/server: fix metrics ( #22946 )
...
* les/vflux/server: fix metrics
* les/vflux/server: fix metrics
3 years ago
gary rong
854f068ed6
les: polish code ( #22625 )
...
* les: polish code
* les/vflus/server: fixes
* les: fix lint
4 years ago
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
d96870428f
les: UDP pre-negotiation of available server capacity ( #22183 )
...
This PR implements the first one of the "lespay" UDP queries which
is already useful in itself: the capacity query. The server pool is making
use of this query by doing a cheap UDP query to determine whether it is
worth starting the more expensive TCP connection process.
4 years ago
Felföldi Zsolt
c027507e03
les: renamed lespay to vflux ( #22347 )
4 years ago
Alex Prut
c92faee66e
all: simplify nested complexity and if blocks ending with a return statement ( #21854 )
...
Changes:
Simplify nested complexity
If an if blocks ends with a return statement then remove the else nesting.
Most of the changes has also been reported in golint https://goreportcard.com/report/github.com/ethereum/go-ethereum#golint
4 years ago
Felföldi Zsolt
85d81b2cdd
les: remove clientPeerSet and serverSet ( #21566 )
...
* les: move NodeStateMachine from clientPool to LesServer
* les: new header broadcaster
* les: peerCommons.headInfo always contains last announced head
* les: remove clientPeerSet and serverSet
* les: fixed panic
* les: fixed --nodiscover option
* les: disconnect all peers at ns.Stop()
* les: added comments and fixed signed broadcasts
* les: removed unused parameter, fixed tests
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