discovery

package
v0.7.0-dev Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewBootstrapDiscoveryService

func NewBootstrapDiscoveryService(
	ctx context.Context, challenger DiscoveryChallenger, m MetricsOnlineDiscoverer) *discoveryService

func NewDiscoveryService

func NewDiscoveryService(
	ctx context.Context,
	userRepo UserStorer,
	nodeRepo NodeStorer,
	challenger DiscoveryChallenger,
	m MetricsOnlineDiscoverer,
) *discoveryService

Types

type DiscoveryChallenger added in v0.6.154

type DiscoveryChallenger interface {
	Challenge(pubKey ic.PubKey, level int, streamF challenge.StreamFunc) (bool, error)
}

type DiscoveryHandler

type DiscoveryHandler func(warpnet.WarpAddrInfo)

type DiscoveryInfoStorer

type DiscoveryInfoStorer interface {
	NodeInfo() warpnet.NodeInfo
	Peerstore() warpnet.WarpPeerstore
	SimpleConnect(warpnet.WarpAddrInfo) error
	GenericStream(nodeId string, path stream.WarpRoute, data any) ([]byte, error)
	SetNodePriority(pid warpnet.WarpPeerID, r warpnet.WarpReachability)
	SetMaxNodePriority(pid warpnet.WarpPeerID)
	SetMinNodePriority(pid warpnet.WarpPeerID)
}

type MetricsOnlineDiscoverer added in v0.6.127

type MetricsOnlineDiscoverer interface {
	PushStatusOnline(nodeId string)
	PushStatusOffline(nodeId string)
}

type NodeStorer

type NodeStorer interface {
	BlocklistRemove(peerId string) error
	IsBlocklisted(peerId string) bool
	BlocklistExponential(peerId string) error
	BlocklistTerm(peerId string) (*database.BlocklistTerm, error)
}

type UserStorer

type UserStorer interface {
	Create(user domain.User) (domain.User, error)
	Update(userId string, newUser domain.User) (domain.User, error)
	GetByNodeID(nodeID string) (user domain.User, err error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL