p2p: set timeout on FairMix in Backend,reduce timeout

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2025-04-09 09:58:36 +02:00
parent 7e96294f17
commit 83b16c72f7
No known key found for this signature in database
GPG key ID: 0FE274EE8C95166E
2 changed files with 14 additions and 3 deletions

View file

@ -62,6 +62,16 @@ import (
gethversion "github.com/ethereum/go-ethereum/version" gethversion "github.com/ethereum/go-ethereum/version"
) )
const (
// This is the fairness knob for the discovery mixer. When looking for peers, we'll
// wait this long for a single source of candidates before moving on and trying other
// sources. If this timeout expires, the source will be skipped in this round, but it
// will continue to fetch in the background and will have a chance with a new timeout
// in the next rounds, giving it overall more time but a proportionally smaller share.
// We expect a normal source to produce ~10 candidates per second.
discmixTimeout = 100 * time.Millisecond
)
// Config contains the configuration options of the ETH protocol. // Config contains the configuration options of the ETH protocol.
// Deprecated: use ethconfig.Config instead. // Deprecated: use ethconfig.Config instead.
type Config = ethconfig.Config type Config = ethconfig.Config
@ -169,7 +179,7 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) {
networkID: networkID, networkID: networkID,
gasPrice: config.Miner.GasPrice, gasPrice: config.Miner.GasPrice,
p2pServer: stack.Server(), p2pServer: stack.Server(),
discmix: enode.NewFairMix(0), discmix: enode.NewFairMix(discmixTimeout),
shutdownTracker: shutdowncheck.NewShutdownTracker(chainDb), shutdownTracker: shutdowncheck.NewShutdownTracker(chainDb),
} }
bcVersion := rawdb.ReadDatabaseVersion(chainDb) bcVersion := rawdb.ReadDatabaseVersion(chainDb)

View file

@ -47,8 +47,9 @@ const (
// This is the fairness knob for the discovery mixer. When looking for peers, we'll // This is the fairness knob for the discovery mixer. When looking for peers, we'll
// wait this long for a single source of candidates before moving on and trying other // wait this long for a single source of candidates before moving on and trying other
// sources. // sources. Currently there is only one source at the Server level, so this has no effect.
discmixTimeout = 5 * time.Second // Check the fairMox tineout in the Backend for the actual timeout.
discmixTimeout = 100 * time.Millisecond
// Connectivity defaults. // Connectivity defaults.
defaultMaxPendingPeers = 50 defaultMaxPendingPeers = 50