p2p: restore default discovery

This commit is contained in:
Felix Lange 2025-06-05 11:15:22 +02:00
parent 2da18aaeae
commit 0b529e583d

View file

@ -45,12 +45,6 @@ import (
const (
defaultDialTimeout = 15 * time.Second
// 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. Currently there is only one source at the Server level, so this has no effect.
// Check the fairMox tineout in the Backend for the actual timeout.
discmixTimeout = 100 * time.Millisecond
// Connectivity defaults.
defaultMaxPendingPeers = 50
defaultDialRatio = 3
@ -448,7 +442,9 @@ func (srv *Server) setupLocalNode() error {
}
func (srv *Server) setupDiscovery() error {
srv.discmix = enode.NewFairMix(discmixTimeout)
// Set up the discovery source mixer. Here, we don't care about the
// fairness of the mix, it's just for putting the
srv.discmix = enode.NewFairMix(0)
// Don't listen on UDP endpoint if DHT is disabled.
if srv.NoDiscovery {
@ -506,6 +502,19 @@ func (srv *Server) setupDiscovery() error {
added[proto.Name] = true
}
}
// Set up default non-protocol-specific discovery feeds if no protocol
// has configured discovery.
if len(added) == 0 {
if srv.discv4 != nil {
it := srv.discv4.RandomNodes()
srv.discmix.AddSource(enode.WithSourceName("discv4-default", it))
}
if srv.discv5 != nil {
it := srv.discv5.RandomNodes()
srv.discmix.AddSource(enode.WithSourceName("discv5-default", it))
}
}
return nil
}