node

package
v0.8.95 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	ErrPrivateKeyRequired warpnet.WarpError = "private key is required"
)
View Source
const ErrSelfRequest = warpnet.WarpError("self request is not allowed")

Variables

This section is empty.

Functions

func NewBlocklistOption added in v0.8.95

func NewBlocklistOption(blocklist Blocklister) warpnet.WarpOption

Types

type BackoffEnabler

type BackoffEnabler interface {
	IsBackoffEnabled(id warpnet.WarpPeerID) bool
	Reset(id warpnet.WarpPeerID)
}

type Blocklister added in v0.8.95

type Blocklister interface {
	IsBlocklisted(peerId string) bool
}

type OfflineOutbox added in v0.7.524

type OfflineOutbox interface {
	Enqueue(nodeIdStr string, route stream.WarpRoute, payload []byte) error
	NotifyOnline(nodeIdStr string)
	Close()
}

type PeersRatings added in v0.8.77

type PeersRatings interface {
	ConnTag(peerID warpnet.WarpPeerID) int
}

PeersRatings answers what a peer is worth to the connection manager, so that a node under pressure drops the peers it trusts least first.

type Prioritizer added in v0.6.154

type Prioritizer interface {
	SetPriority(pid warpnet.WarpPeerID, r warpnet.WarpReachability)
	SetRatingPriority(pid warpnet.WarpPeerID, tag int)
	SetMinPriority(pid warpnet.WarpPeerID)
	SetMaxPriority(pid warpnet.WarpPeerID)
}

type ReservationRefuser added in v0.8.95

type ReservationRefuser interface {
	RefuseReservation(dest, src warpnet.WarpPeerID) error
}

type StreamMiddleware added in v0.8.77

type StreamMiddleware func(next warpnet.WarpHandlerFunc) warpnet.WarpHandlerFunc

type Streamer

type Streamer interface {
	Send(peerAddr warpnet.WarpAddrInfo, r stream.WarpRoute, data []byte) ([]byte, error)
	SetStreamable(id warpnet.WarpPeerID)
	SetUnstreamable(id warpnet.WarpPeerID)
}

type WarpNode

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

func NewWarpNode

func NewWarpNode(
	ctx context.Context,
	ratings PeersRatings,
	limits ratelimit.Settings,
	opts ...warpnet.WarpOption,
) (*WarpNode, error)

func (*WarpNode) BaseNodeInfo

func (n *WarpNode) BaseNodeInfo() warpnet.NodeInfo

func (*WarpNode) Connect

func (n *WarpNode) Connect(p warpnet.WarpAddrInfo) error

func (*WarpNode) Event added in v0.8.77

func (n *WarpNode) Event() <-chan warpnet.PeerEvent

Event is what this node saw its peers do. The channel is never closed.

func (*WarpNode) Node

func (n *WarpNode) Node() warpnet.P2PNode

func (*WarpNode) Prioritizer added in v0.6.154

func (n *WarpNode) Prioritizer() Prioritizer

func (*WarpNode) RefuseReservation added in v0.8.95

func (n *WarpNode) RefuseReservation(dest, src warpnet.WarpPeerID) error

func (*WarpNode) SelfStream

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

func (*WarpNode) SetOutbox added in v0.7.524

func (n *WarpNode) SetOutbox(store stream.OutboxStore)

func (*WarpNode) SetStreamHandlers

func (n *WarpNode) SetStreamHandlers(handlers ...warpnet.WarpStreamHandler)

func (*WarpNode) SetStreamMiddlewares added in v0.8.77

func (n *WarpNode) SetStreamMiddlewares(mws ...StreamMiddleware)

func (*WarpNode) StopNode

func (n *WarpNode) StopNode()

func (*WarpNode) Stream

func (n *WarpNode) Stream(nodeId warpnet.WarpPeerID, path stream.WarpRoute, data any) (_ []byte, err error)

Jump to

Keyboard shortcuts

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