Documentation ¶
Overview ¶
Deprecated: This package has moved into go-libp2p as a sub-package: github.com/libp2p/go-libp2p/core/peerstore.
Package peerstore provides types and interfaces for local storage of address information, metadata, and public key material about libp2p peers.
Index ¶
Constants ¶
const ( // PermanentAddrTTL is the ttl for a "permanent address" (e.g. bootstrap nodes). // Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.PermanentAddrTTL 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 github.com/libp2p/go-libp2p/core/peerstore.ConnectedAddrTTL instead ConnectedAddrTTL = peerstore.ConnectedAddrTTL )
Permanent TTLs (distinct so we can distinguish between them, constant as they are, in fact, permanent)
Variables ¶
var ( // AddressTTL is the expiration time of addresses. // Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.AddressTTL instead AddressTTL = peerstore.AddressTTL // TempAddrTTL is the ttl used for a short lived address. // Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.TempAddrTTL 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 github.com/libp2p/go-libp2p/core/peerstore.ProviderAddrTTL 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 github.com/libp2p/go-libp2p/core/peerstore.RecentlyConnectedAddrTTL instead RecentlyConnectedAddrTTL = peerstore.RecentlyConnectedAddrTTL // OwnObservedAddrTTL is used for our own external addresses observed by peers. // Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.OwnObservedAddrTTL instead OwnObservedAddrTTL = peerstore.OwnObservedAddrTTL )
var ErrNotFound = peerstore.ErrNotFound
Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.ErrNotFound instead
Functions ¶
Types ¶
type AddrBook ¶
AddrBook holds the multiaddrs of peers. Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.AddrBook 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 github.com/libp2p/go-libp2p/core/peerstore.CertifiedAddrBook 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 github.com/libp2p/go-libp2p/core/peerstore.GetCertifiedAddrBook instead
type KeyBook ¶
KeyBook tracks the keys of Peers. Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.KeyBook instead
type Metrics ¶
Metrics tracks metrics across a set of peers. Deprecated: use github.com/libp2p/go-libp2p/core/peerstore.Metrics 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 github.com/libp2p/go-libp2p/core/peerstore.PeerMetadata instead