Documentation ¶
Overview ¶
Package pstoremgr provides a Manager that simplifies handling addition, listing and removal of cluster peer multiaddresses from the libp2p Host. This includes resolving DNS addresses, decapsulating and encapsulating the /p2p/ (/ipfs/) protocol as needed, listing, saving and loading addresses.
Index ¶
- Variables
- type Manager
- func (pm *Manager) Bootstrap(count int) []peer.ID
- func (pm *Manager) HandlePeerFound(p peer.AddrInfo)
- func (pm *Manager) ImportPeer(addr ma.Multiaddr, connect bool, ttl time.Duration) (peer.ID, error)
- func (pm *Manager) ImportPeers(addrs []ma.Multiaddr, connect bool, ttl time.Duration) error
- func (pm *Manager) ImportPeersFromPeerstore(connect bool, ttl time.Duration) error
- func (pm *Manager) LoadPeerstore() (addrs []ma.Multiaddr)
- func (pm *Manager) PeerInfos(peers []peer.ID) []peer.AddrInfo
- func (pm *Manager) RmPeer(pid peer.ID) error
- func (pm *Manager) SavePeerstore(pinfos []peer.AddrInfo) error
- func (pm *Manager) SavePeerstoreForPeers(peers []peer.ID) error
- func (pm *Manager) SetPriority(pid peer.ID, prio int) error
Constants ¶
This section is empty.
Variables ¶
var ( DNSTimeout = 5 * time.Second ConnectTimeout = 5 * time.Second )
Timeouts for network operations triggered by the Manager.
var PriorityTag = "cluster"
PriorityTag is used to attach metadata to peers in the peerstore so they can be sorted.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager provides utilities for handling cluster peer addresses and storing them in a libp2p Host peerstore.
func New ¶
New creates a Manager with the given libp2p Host and peerstorePath. The path indicates the place to persist and read peer addresses from. If empty, these operations (LoadPeerstore, SavePeerstore) will no-op.
func (*Manager) Bootstrap ¶
Bootstrap attempts to get up to "count" connected peers by trying those in the peerstore in priority order. It returns the list of peers it managed to connect to.
func (*Manager) HandlePeerFound ¶
HandlePeerFound implements the Notifee interface for discovery (mdns).
func (*Manager) ImportPeer ¶
ImportPeer adds a new peer address to the host's peerstore, optionally dialing to it. The address is expected to include the /p2p/<peerID> protocol part or to be a /dnsaddr/multiaddress Peers are added with the given ttl.
func (*Manager) ImportPeers ¶
ImportPeers calls ImportPeer for every address in the given slice, using the given connect parameter. Peers are tagged with priority as given by their position in the list.
func (*Manager) ImportPeersFromPeerstore ¶
ImportPeersFromPeerstore reads the peerstore file and calls ImportPeers with the addresses obtained from it.
func (*Manager) LoadPeerstore ¶
LoadPeerstore parses the peerstore file and returns the list of addresses read from it.
func (*Manager) PeerInfos ¶
PeerInfos returns a slice of peerinfos for the given set of peers in order of priority. For peers for which we know DNS multiaddresses, we only include those. Otherwise, the AddrInfo includes all the multiaddresses known for that peer. Peers without addresses are not included.
func (*Manager) SavePeerstore ¶
SavePeerstore stores a slice of multiaddresses in the peerstore file, one per line.
func (*Manager) SavePeerstoreForPeers ¶
SavePeerstoreForPeers calls PeerInfos and then saves the peerstore file using the result.