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) ImportPeer(addr ma.Multiaddr, connect bool) error
- func (pm *Manager) ImportPeers(addrs []ma.Multiaddr, connect bool) error
- func (pm *Manager) ImportPeersFromPeerstore(connect bool) error
- func (pm *Manager) LoadPeerstore() (addrs []ma.Multiaddr)
- func (pm *Manager) PeersAddresses(peers []peer.ID) []ma.Multiaddr
- func (pm *Manager) RmPeer(pid peer.ID) error
- func (pm *Manager) SavePeerstore(addrs []ma.Multiaddr)
- func (pm *Manager) SavePeerstoreForPeers(peers []peer.ID)
Constants ¶
This section is empty.
Variables ¶
var ( DNSTimeout = 2 * time.Second ConnectTimeout = 10 * time.Second )
Timeouts for network operations triggered by the Manager
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) ImportPeer ¶
ImportPeer adds a new peer address to the host's peerstore, optionally dialing to it. It will resolve any DNS multiaddresses before adding them. The address is expected to include the /ipfs/<peerID> protocol part.
func (*Manager) ImportPeers ¶
ImportPeers calls ImportPeer for every address in the given slice, using the given connect parameter.
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) PeersAddresses ¶
PeersAddresses returns the list of multiaddresses (encapsulating the /ipfs/<peerID> part) for the given set of peers. For peers for which we know DNS multiaddresses, we only return those. Otherwise, we return all the multiaddresses known for that peer.
func (*Manager) SavePeerstore ¶
SavePeerstore stores a slice of multiaddresses in the peerstore file, one per line.
func (*Manager) SavePeerstoreForPeers ¶
SavePeerstoreForPeers calls PeersAddresses and then saves the peerstore file using the result.