Versions in this module Expand all Collapse all v0 v0.1.11 Oct 3, 2023 v0.1.10 Oct 2, 2023 Changes in this version + var ErrNeedsPeeringService = errors.New("needs peering service") + func RecoverKeyFromSignedData(m SignedData) (ed25519.PublicKey, error) + type DB struct + func NewDB(store kvstore.KVStore) (*DB, error) + func (db *DB) Close() + func (db *DB) LastPing(id identity.ID, ip net.IP) time.Time + func (db *DB) LastPong(id identity.ID, ip net.IP) time.Time + func (db *DB) LocalPrivateKey() (privateKey ed25519.PrivateKey, err error) + func (db *DB) Peer(id identity.ID) (*Peer, error) + func (db *DB) SeedPeers() []*Peer + func (db *DB) UpdateLastPing(id identity.ID, ip net.IP, t time.Time) error + func (db *DB) UpdateLastPong(id identity.ID, ip net.IP, t time.Time) error + func (db *DB) UpdateLocalPrivateKey(key ed25519.PrivateKey) error + func (db *DB) UpdatePeer(p *Peer) error + type Local struct + func NewLocal(ip net.IP, serviceRecord *service.Record, db *DB, seed ...[]byte) (*Local, error) + func (l *Local) Database() *DB + func (l *Local) GetPrivateSalt() *salt.Salt + func (l *Local) GetPublicSalt() *salt.Salt + func (l *Local) LocalIdentity() *identity.LocalIdentity + func (l *Local) SetPrivateSalt(salt *salt.Salt) + func (l *Local) SetPublicSalt(salt *salt.Salt) + func (l *Local) Sign(message []byte) ed25519.Signature + func (l *Local) UpdateService(key service.Key, network string, port int) error + type Peer struct + func FromProto(in *pb.Peer) (*Peer, error) + func NewPeer(id *identity.Identity, ip net.IP, services service.Service) *Peer + func Unmarshal(data []byte) (*Peer, error) + func (p *Peer) Address() *net.UDPAddr + func (p *Peer) IP() net.IP + func (p *Peer) Marshal() ([]byte, error) + func (p *Peer) MarshalJSON() ([]byte, error) + func (p *Peer) Network() string + func (p *Peer) Services() service.Service + func (p *Peer) String() string + func (p *Peer) ToProto() *pb.Peer + func (p *Peer) UnmarshalJSON(b []byte) error + type PeerDistance struct + Distance uint32 + Remote *Peer + func NewPeerDistance(anchorID, salt []byte, remote *Peer) PeerDistance + func SortBySalt(anchor, salt []byte, remotePeers []*Peer) (result []PeerDistance) + type PublicKey ed25519.PublicKey + type SignedData interface + GetData func() []byte + GetPublicKey func() []byte + GetSignature func() []byte