24 lines
599 B
Go
24 lines
599 B
Go
package discovery
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/ethereum/go-ethereum/p2p/discv5"
|
|
)
|
|
|
|
const (
|
|
// EthereumV5 is kademlia-based discovery from go-ethereum repository.
|
|
EthereumV5 = "ethv5"
|
|
// RendezvousV1 is req/rep based discovery that uses ENR for records.
|
|
RendezvousV1 = "ethvousv1"
|
|
)
|
|
|
|
// Discovery is an abstract interface for using different discovery providers.
|
|
type Discovery interface {
|
|
Running() bool
|
|
Start() error
|
|
Stop() error
|
|
Register(topic string, stop chan struct{}) error
|
|
Discover(topic string, period <-chan time.Duration, found chan<- *discv5.Node, lookup chan<- bool) error
|
|
}
|