mirror of https://github.com/status-im/go-waku.git
140 lines
4.0 KiB
Go
140 lines
4.0 KiB
Go
package peers
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
ic "github.com/libp2p/go-libp2p/core/crypto"
|
|
"github.com/libp2p/go-libp2p/core/peer"
|
|
"github.com/libp2p/go-libp2p/core/peerstore"
|
|
"github.com/libp2p/go-libp2p/core/protocol"
|
|
"github.com/libp2p/go-libp2p/core/record"
|
|
ma "github.com/multiformats/go-multiaddr"
|
|
)
|
|
|
|
// Contains all interface methods from a libp2p peerstore
|
|
|
|
func (ps *WakuPeerstoreImpl) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) {
|
|
ps.peerStore.AddAddr(p, addr, ttl)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) {
|
|
ps.peerStore.AddAddrs(p, addrs, ttl)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) {
|
|
ps.peerStore.SetAddr(p, addr, ttl)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) {
|
|
ps.peerStore.SetAddrs(p, addrs, ttl)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) {
|
|
ps.peerStore.UpdateAddrs(p, oldTTL, newTTL)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) Addrs(p peer.ID) []ma.Multiaddr {
|
|
return ps.peerStore.Addrs(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr {
|
|
return ps.peerStore.AddrStream(ctx, p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) ClearAddrs(p peer.ID) {
|
|
ps.peerStore.ClearAddrs(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) PeersWithAddrs() peer.IDSlice {
|
|
return ps.peerStore.PeersWithAddrs()
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) PeerInfo(peerID peer.ID) peer.AddrInfo {
|
|
return ps.peerStore.PeerInfo(peerID)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) Peers() peer.IDSlice {
|
|
return ps.peerStore.Peers()
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) Close() error {
|
|
return ps.peerStore.Close()
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) PubKey(p peer.ID) ic.PubKey {
|
|
return ps.peerStore.PubKey(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) AddPubKey(p peer.ID, pubk ic.PubKey) error {
|
|
return ps.peerStore.AddPubKey(p, pubk)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) PrivKey(p peer.ID) ic.PrivKey {
|
|
return ps.peerStore.PrivKey(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) AddPrivKey(p peer.ID, privk ic.PrivKey) error {
|
|
return ps.peerStore.AddPrivKey(p, privk)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) PeersWithKeys() peer.IDSlice {
|
|
return ps.peerStore.PeersWithKeys()
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) RemovePeer(p peer.ID) {
|
|
ps.peerStore.RemovePeer(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) Get(p peer.ID, key string) (interface{}, error) {
|
|
return ps.peerStore.Get(p, key)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) Put(p peer.ID, key string, val interface{}) error {
|
|
return ps.peerStore.Put(p, key, val)
|
|
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) RecordLatency(p peer.ID, t time.Duration) {
|
|
ps.peerStore.RecordLatency(p, t)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) LatencyEWMA(p peer.ID) time.Duration {
|
|
return ps.peerStore.LatencyEWMA(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) GetProtocols(p peer.ID) ([]protocol.ID, error) {
|
|
return ps.peerStore.GetProtocols(p)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) AddProtocols(p peer.ID, proto ...protocol.ID) error {
|
|
return ps.peerStore.AddProtocols(p, proto...)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) SetProtocols(p peer.ID, proto ...protocol.ID) error {
|
|
return ps.peerStore.SetProtocols(p, proto...)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) RemoveProtocols(p peer.ID, proto ...protocol.ID) error {
|
|
return ps.peerStore.RemoveProtocols(p, proto...)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) SupportsProtocols(p peer.ID, proto ...protocol.ID) ([]protocol.ID, error) {
|
|
return ps.peerStore.SupportsProtocols(p, proto...)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) FirstSupportedProtocol(p peer.ID, proto ...protocol.ID) (protocol.ID, error) {
|
|
return ps.peerStore.FirstSupportedProtocol(p, proto...)
|
|
}
|
|
|
|
func (ps *WakuPeerstoreImpl) ConsumePeerRecord(s *record.Envelope, ttl time.Duration) (accepted bool, err error) {
|
|
return ps.peerStore.(peerstore.CertifiedAddrBook).ConsumePeerRecord(s, ttl)
|
|
}
|
|
|
|
// GetPeerRecord returns a Envelope containing a PeerRecord for the
|
|
// given peer id, if one exists.
|
|
// Returns nil if no signed PeerRecord exists for the peer.
|
|
func (ps *WakuPeerstoreImpl) GetPeerRecord(p peer.ID) *record.Envelope {
|
|
return ps.peerStore.(peerstore.CertifiedAddrBook).GetPeerRecord(p)
|
|
}
|