node

package
v0.8.97 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2026 License: AGPL-3.0, AGPL-3.0-or-later, Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DiscoveryHandler

type DiscoveryHandler interface {
	DiscoveryHandlerStream(pi warpnet.WarpAddrInfo)
	Run(n discovery.DiscoveryInfoStorer) error
	Event() <-chan warpnet.PeerEvent
	Close()
}

type DistributedHashTableCloser

type DistributedHashTableCloser interface {
	FindProvidersAsync(ctx context.Context, key warpnet.WarpCID, count int) (ch <-chan warpnet.WarpAddrInfo)
	Close()
}

type PeerRater added in v0.8.77

type PeerRater interface {
	Listen(sources ...<-chan warpnet.PeerEvent)
	View(peerID warpnet.WarpPeerID) (domain.NodeRating, error)
	Own() (domain.NodeRating, error)
	Close() error
}

PeerRater listens to what the modules saw the peers do and rates them.

type PeersRatings added in v0.8.77

type PeersRatings interface {
	Rate(peerID warpnet.WarpPeerID, tier rating.Tier)
	ConnTag(peerID warpnet.WarpPeerID) int
	GossipScore(peerID warpnet.WarpPeerID) float64
	RateMultiplier(peerID warpnet.WarpPeerID) float64
	IsAllowedInDHT(peerID warpnet.WarpPeerID) bool
}

PeersRatings is how this node rates its peers: the engine writes it, and this node's modules read what follows from it.

type PubSubProvider

type PubSubProvider interface {
	Run(m pubsub.PubsubServerNodeConnector)
	Gossip() *corePubsub.Gossip
	Close() error
	OwnerID() string
}

type RatingProvider added in v0.8.77

type RatingProvider interface {
	Get(ctx context.Context, key ds.Key) ([]byte, error)
	Has(ctx context.Context, key ds.Key) (bool, error)
	GetSize(ctx context.Context, key ds.Key) (int, error)
	Query(ctx context.Context, q ds.Query) (ds.Results, error)
	Put(ctx context.Context, key ds.Key, value []byte) error
	Delete(ctx context.Context, key ds.Key) error
	Sync(ctx context.Context, prefix ds.Key) error
	Close() error
}

RatingProvider is the local storage the rating replica is built on.

type RatingStorer added in v0.8.77

type RatingStorer interface {
	Put(rec domain.RatingRecord) error
	List(peerID string) ([]domain.RatingRecord, error)
	PeerIDs() ([]string, error)
	DeleteExpired(dimension string, beforeBucket int64) error
	OnPut(hook func(domain.RatingRecord))
	OnDelete(hook func(domain.RatingRecord))
	Close() error
}

RatingStorer is the replicated record store the rating engine writes to.

type RelayNode

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

func NewRelayNode

func NewRelayNode(
	ctx context.Context,
	privKey ed25519.PrivateKey,
	psk security.PSK,
	ownNodeId warpnet.WarpPeerID,
) (_ *RelayNode, err error)

func (*RelayNode) GenericStream

func (rn *RelayNode) GenericStream(nodeIdStr string, path stream.WarpRoute, data any) (_ []byte, err error)

func (*RelayNode) Network

func (rn *RelayNode) Network() warpnet.WarpNetwork

func (*RelayNode) Node

func (rn *RelayNode) Node() warpnet.P2PNode

func (*RelayNode) NodeInfo

func (rn *RelayNode) NodeInfo() warpnet.NodeInfo

func (*RelayNode) Peerstore

func (rn *RelayNode) Peerstore() warpnet.WarpPeerstore

func (*RelayNode) SelfStream

func (rn *RelayNode) SelfStream(
	from, to warpnet.WarpPeerID, path stream.WarpRoute, data any,
) (_ []byte, err error)

func (*RelayNode) SetMaxNodePriority

func (rn *RelayNode) SetMaxNodePriority(pid warpnet.WarpPeerID)

func (*RelayNode) SetMinNodePriority

func (rn *RelayNode) SetMinNodePriority(pid warpnet.WarpPeerID)

func (*RelayNode) SetNodePriority

func (rn *RelayNode) SetNodePriority(pid warpnet.WarpPeerID, r warpnet.WarpReachability)

func (*RelayNode) SimpleConnect

func (rn *RelayNode) SimpleConnect(info warpnet.WarpAddrInfo) error

func (*RelayNode) Start

func (rn *RelayNode) Start() (err error)

func (*RelayNode) Stop

func (rn *RelayNode) Stop()

Jump to

Keyboard shortcuts

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