Version: v0.20.1 Latest Latest

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

Go to latest
Published: Sep 6, 2022 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 2 Imported by: 374



Deprecated: This package has moved into go-libp2p as a sub-package:

Package peerstore provides types and interfaces for local storage of address information, metadata, and public key material about libp2p peers.



View Source
const (
	// PermanentAddrTTL is the ttl for a "permanent address" (e.g. bootstrap nodes).
	// Deprecated: use instead
	PermanentAddrTTL = peerstore.PermanentAddrTTL

	// ConnectedAddrTTL is the ttl used for the addresses of a peer to whom
	// we're connected directly. This is basically permanent, as we will
	// clear them + re-add under a TempAddrTTL after disconnecting.
	// Deprecated: use instead
	ConnectedAddrTTL = peerstore.ConnectedAddrTTL

Permanent TTLs (distinct so we can distinguish between them, constant as they are, in fact, permanent)


View Source
var (
	// AddressTTL is the expiration time of addresses.
	// Deprecated: use instead
	AddressTTL = peerstore.AddressTTL

	// TempAddrTTL is the ttl used for a short lived address.
	// Deprecated: use instead
	TempAddrTTL = peerstore.TempAddrTTL

	// ProviderAddrTTL is the TTL of an address we've received from a provider.
	// This is also a temporary address, but lasts longer. After this expires,
	// the records we return will require an extra lookup.
	// Deprecated: use instead
	ProviderAddrTTL = peerstore.ProviderAddrTTL

	// RecentlyConnectedAddrTTL is used when we recently connected to a peer.
	// It means that we are reasonably certain of the peer's address.
	// Deprecated: use instead
	RecentlyConnectedAddrTTL = peerstore.RecentlyConnectedAddrTTL

	// OwnObservedAddrTTL is used for our own external addresses observed by peers.
	// Deprecated: use instead
	OwnObservedAddrTTL = peerstore.OwnObservedAddrTTL
View Source
var ErrNotFound = peerstore.ErrNotFound

Deprecated: use instead


func AddrInfos added in v0.9.0

func AddrInfos(ps Peerstore, peers []peer.ID) []peer.AddrInfo

AddrInfos returns an AddrInfo for each specified peer ID, in-order. Deprecated: use instead


type AddrBook

type AddrBook = peerstore.AddrBook

AddrBook holds the multiaddrs of peers. Deprecated: use instead

type CertifiedAddrBook deprecated added in v0.4.0

type CertifiedAddrBook = peerstore.CertifiedAddrBook

CertifiedAddrBook manages "self-certified" addresses for remote peers. Self-certified addresses are contained in peer.PeerRecords which are wrapped in a record.Envelope and signed by the peer to whom they belong.

Certified addresses (CA) are generally more secure than uncertified addresses (UA). Consequently, CAs beat and displace UAs. When the peerstore learns CAs for a peer, it will reject UAs for the same peer (as long as the former haven't expired). Furthermore, peer records act like sequenced snapshots of CAs. Therefore, processing a peer record that's newer than the last one seen overwrites all addresses with the incoming ones.

This interface is most useful when combined with AddrBook. To test whether a given AddrBook / Peerstore implementation supports certified addresses, callers should use the GetCertifiedAddrBook helper or type-assert on the CertifiedAddrBook interface:

if cab, ok := aPeerstore.(CertifiedAddrBook); ok {
    cab.ConsumePeerRecord(signedPeerRecord, aTTL)

Deprecated: use instead

func GetCertifiedAddrBook added in v0.4.0

func GetCertifiedAddrBook(ab AddrBook) (cab CertifiedAddrBook, ok bool)

GetCertifiedAddrBook is a helper to "upcast" an AddrBook to a CertifiedAddrBook by using type assertion. If the given AddrBook is also a CertifiedAddrBook, it will be returned, and the ok return value will be true. Returns (nil, false) if the AddrBook is not a CertifiedAddrBook.

Note that since Peerstore embeds the AddrBook interface, you can also call GetCertifiedAddrBook(myPeerstore). Deprecated: use instead

type KeyBook

type KeyBook = peerstore.KeyBook

KeyBook tracks the keys of Peers. Deprecated: use instead

type Metrics

type Metrics = peerstore.Metrics

Metrics tracks metrics across a set of peers. Deprecated: use instead

type PeerMetadata

type PeerMetadata = peerstore.PeerMetadata

PeerMetadata can handle values of any type. Serializing values is up to the implementation. Dynamic type introspection may not be supported, in which case explicitly enlisting types in the serializer may be required.

Refer to the docs of the underlying implementation for more information. Deprecated: use instead

type Peerstore

type Peerstore = peerstore.Peerstore

Peerstore provides a threadsafe store of Peer related information. Deprecated: use instead

type ProtoBook

type ProtoBook = peerstore.ProtoBook

ProtoBook tracks the protocols supported by peers. Deprecated: use instead

Jump to

Keyboard shortcuts

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