identify

package
v0.37.0 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2024 License: MIT Imports: 29 Imported by: 107

Documentation

Index

Constants

View Source
const (
	// ID is the protocol.ID of version 1.0.0 of the identify service.
	ID = "/ipfs/id/1.0.0"
	// IDPush is the protocol.ID of the Identify push protocol.
	// It sends full identify messages containing the current state of the peer.
	IDPush = "/ipfs/id/push/1.0.0"

	ServiceName = "libp2p.identify"
)

Variables

View Source
var ActivationThresh = 4

ActivationThresh sets how many times an address must be seen as "activated" and therefore advertised to other peers as an address that the local peer can be contacted on. The "seen" events expire by default after 40 minutes (OwnObservedAddressTTL * ActivationThreshold). The are cleaned up during the GC rounds set by GCInterval.

View Source
var Timeout = 30 * time.Second // timeout on all incoming Identify interactions

Functions

func HasConsistentTransport

func HasConsistentTransport(a ma.Multiaddr, green []ma.Multiaddr) bool

HasConsistentTransport returns true if the address 'a' shares a protocol set with any address in the green set. This is used to check if a given address might be one of the addresses a peer is listening on.

func NewIDService

func NewIDService(h host.Host, opts ...Option) (*idService, error)

NewIDService constructs a new *idService and activates it by attaching its stream handler to the given host.Host.

Types

type IDService

type IDService interface {
	// IdentifyConn synchronously triggers an identify request on the connection and
	// waits for it to complete. If the connection is being identified by another
	// caller, this call will wait. If the connection has already been identified,
	// it will return immediately.
	IdentifyConn(network.Conn)
	// IdentifyWait triggers an identify (if the connection has not already been
	// identified) and returns a channel that is closed when the identify protocol
	// completes.
	IdentifyWait(network.Conn) <-chan struct{}
	// OwnObservedAddrs returns the addresses peers have reported we've dialed from
	OwnObservedAddrs() []ma.Multiaddr
	// ObservedAddrsFor returns the addresses peers have reported we've dialed from,
	// for a specific local address.
	ObservedAddrsFor(local ma.Multiaddr) []ma.Multiaddr
	Start()
	io.Closer
}

type MetricsTracer added in v0.25.0

type MetricsTracer interface {
	// TriggeredPushes counts IdentifyPushes triggered by event
	TriggeredPushes(event any)

	// ConnPushSupport counts peers by Push Support
	ConnPushSupport(identifyPushSupport)

	// IdentifyReceived tracks metrics on receiving an identify response
	IdentifyReceived(isPush bool, numProtocols int, numAddrs int)

	// IdentifySent tracks metrics on sending an identify response
	IdentifySent(isPush bool, numProtocols int, numAddrs int)
}

func NewMetricsTracer added in v0.25.0

func NewMetricsTracer(opts ...MetricsTracerOption) MetricsTracer

type MetricsTracerOption added in v0.26.0

type MetricsTracerOption func(*metricsTracerSetting)

func WithRegisterer added in v0.26.0

func WithRegisterer(reg prometheus.Registerer) MetricsTracerOption

type ObservedAddrManager added in v0.8.2

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

ObservedAddrManager maps connection's local multiaddrs to their externally observable multiaddress

func NewObservedAddrManager added in v0.8.2

func NewObservedAddrManager(listenAddrs, hostAddrs func() []ma.Multiaddr,
	interfaceListenAddrs func() ([]ma.Multiaddr, error), normalize func(ma.Multiaddr) ma.Multiaddr) (*ObservedAddrManager, error)

NewObservedAddrManager returns a new address manager using peerstore.OwnObservedAddressTTL as the TTL.

func (*ObservedAddrManager) Addrs added in v0.8.2

func (o *ObservedAddrManager) Addrs() []ma.Multiaddr

Addrs return all activated observed addresses

func (*ObservedAddrManager) AddrsFor added in v0.8.2

func (o *ObservedAddrManager) AddrsFor(addr ma.Multiaddr) (addrs []ma.Multiaddr)

AddrsFor return all activated observed addresses associated with the given (resolved) listen address.

func (*ObservedAddrManager) Close added in v0.16.0

func (o *ObservedAddrManager) Close() error

func (*ObservedAddrManager) Record added in v0.8.2

func (o *ObservedAddrManager) Record(conn connMultiaddrs, observed ma.Multiaddr)

Record enqueues an observation for recording

type Option added in v0.4.0

type Option func(*config)

Option is an option function for identify.

func DisableObservedAddrManager added in v0.34.0

func DisableObservedAddrManager() Option

DisableObservedAddrManager disables the observed address manager. It also effectively disables the nat emitter and EvtNATDeviceTypeChanged

func DisableSignedPeerRecord added in v0.9.0

func DisableSignedPeerRecord() Option

DisableSignedPeerRecord disables populating signed peer records on the outgoing Identify response and ONLY sends the unsigned addresses.

func ProtocolVersion added in v0.23.0

func ProtocolVersion(s string) Option

ProtocolVersion sets the protocol version string that will be used to identify the family of protocols used by the peer.

func UserAgent added in v0.4.0

func UserAgent(ua string) Option

UserAgent sets the user agent this node will identify itself with to peers.

func WithMetricsTracer added in v0.25.0

func WithMetricsTracer(tr MetricsTracer) Option

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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