routing

package
v1.1.2-rc2 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrNodeNotFound added in v1.0.4

type ErrNodeNotFound struct {
	// contains filtered or unexported fields
}

ErrNodeNotFound is returned when nodeInfo was not found for a requested peer id

func NewErrNodeNotFound added in v1.0.4

func NewErrNodeNotFound(peerID peer.ID) ErrNodeNotFound

func (ErrNodeNotFound) Error added in v1.0.4

func (e ErrNodeNotFound) Error() string

type NodeInfoProvider

type NodeInfoProvider struct {
	// contains filtered or unexported fields
}

func NewNodeInfoProvider

func NewNodeInfoProvider(params NodeInfoProviderParams) *NodeInfoProvider

func (*NodeInfoProvider) GetNodeInfo

func (n *NodeInfoProvider) GetNodeInfo(ctx context.Context) models.NodeInfo

func (*NodeInfoProvider) RegisterComputeInfoProvider

func (n *NodeInfoProvider) RegisterComputeInfoProvider(provider models.ComputeNodeInfoProvider)

RegisterComputeInfoProvider registers a compute info provider with the node info provider.

type NodeInfoProviderParams

type NodeInfoProviderParams struct {
	Host                host.Host
	IdentityService     identify.IDService
	Labels              map[string]string
	ComputeInfoProvider models.ComputeNodeInfoProvider
	BacalhauVersion     models.BuildVersionInfo
}

type NodeInfoPublisher

type NodeInfoPublisher struct {
	// contains filtered or unexported fields
}

func NewNodeInfoPublisher

func NewNodeInfoPublisher(params NodeInfoPublisherParams) *NodeInfoPublisher

func (*NodeInfoPublisher) Publish

func (n *NodeInfoPublisher) Publish(ctx context.Context) error

Publish publishes the node info to the pubsub topic manually and won't wait for the background task to do it.

func (*NodeInfoPublisher) Stop

func (n *NodeInfoPublisher) Stop(ctx context.Context)

Stop stops the background task that publishes the node info periodically

type NodeInfoPublisherIntervalConfig added in v1.0.4

type NodeInfoPublisherIntervalConfig struct {
	// Interval is the interval between publishing node info
	Interval time.Duration

	// During node startup, we can publish node info more frequently to speed up the discovery process.
	// EagerPublishInterval is the interval between publishing node info during startup.
	EagerPublishInterval time.Duration
	// EagerPublishDuration is the duration of the eager publish period. After this period, the node will publish node info
	// with the standard interval.
	EagerPublishDuration time.Duration
}

func (NodeInfoPublisherIntervalConfig) IsEagerPublishEnabled added in v1.0.4

func (n NodeInfoPublisherIntervalConfig) IsEagerPublishEnabled() bool

IsEagerPublishEnabled returns true if eager publish is enabled

func (NodeInfoPublisherIntervalConfig) IsZero added in v1.0.4

IsZero returns true if the interval config is zero

type NodeInfoPublisherParams

type NodeInfoPublisherParams struct {
	PubSub           pubsub.Publisher[models.NodeInfo]
	NodeInfoProvider models.NodeInfoProvider
	IntervalConfig   NodeInfoPublisherIntervalConfig
}

type NodeInfoStore

type NodeInfoStore interface {
	libp2p_routing.PeerRouting
	// Add adds a node info to the repo.
	Add(ctx context.Context, nodeInfo models.NodeInfo) error
	// Get returns the node info for the given peer ID.
	Get(ctx context.Context, peerID peer.ID) (models.NodeInfo, error)
	// List returns a list of nodes
	List(ctx context.Context) ([]models.NodeInfo, error)
	// ListForEngine returns a list of nodes that support the given engine.
	ListForEngine(ctx context.Context, engine string) ([]models.NodeInfo, error)
	// Delete deletes a node info from the repo.
	Delete(ctx context.Context, peerID peer.ID) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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