discovery.go 743 Bytes
Newer Older
1 2 3 4 5 6 7
// Package discovery provides service advertisement and peer discovery interfaces for libp2p.
package discovery

import (
	"context"
	"time"

tavit ohanian's avatar
tavit ohanian committed
8
	"gitlab.dms3.io/p2p/go-p2p-core/peer"
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
)

// Advertiser is an interface for advertising services
type Advertiser interface {
	// Advertise advertises a service
	Advertise(ctx context.Context, ns string, opts ...Option) (time.Duration, error)
}

// Discoverer is an interface for peer discovery
type Discoverer interface {
	// FindPeers discovers peers providing a service
	FindPeers(ctx context.Context, ns string, opts ...Option) (<-chan peer.AddrInfo, error)
}

// Discovery is an interface that combines service advertisement and peer discovery
type Discovery interface {
	Advertiser
	Discoverer
}