Versions in this module Expand all Collapse all v0 v0.12.2 Mar 18, 2021 Changes in this version + const DefaultForceQuitDelay + const DefaultReadTimeout + const DefaultStatInterval + const DefaultWriteTimeout + var ErrClientExiting = errors.New("watchtower client shutting down") + var ErrFailedNegotiation = errors.New("session negotiation unsuccessful") + var ErrNegotiatorExiting = errors.New("negotiator exiting") + var ErrNoTowerAddrs = errors.New("no tower addresses") + var ErrPermanentTowerFailure = errors.New("permanent tower failure") + var ErrTowerCandidatesExhausted = errors.New(...) + var ErrUnregisteredChannel = errors.New("channel is not registered") + func DisableLog() + func UseLogger(logger btclog.Logger) + type AuthDialer func(localKey keychain.SingleKeyECDH, netAddr *lnwire.NetAddress, ...) (wtserver.Peer, error) + type Client interface + AddTower func(*lnwire.NetAddress) error + BackupState func(*lnwire.ChannelID, *lnwallet.BreachRetribution, channeldb.ChannelType) error + ForceQuit func() + LookupTower func(*btcec.PublicKey) (*RegisteredTower, error) + Policy func() wtpolicy.Policy + RegisterChannel func(lnwire.ChannelID) error + RegisteredTowers func() ([]*RegisteredTower, error) + RemoveTower func(*btcec.PublicKey, net.Addr) error + Start func() error + Stats func() ClientStats + Stop func() error + type ClientStats struct + NumSessionsAcquired int + NumSessionsExhausted int + NumTasksAccepted int + NumTasksIneligible int + NumTasksReceived int + func (s *ClientStats) Copy() ClientStats + func (s *ClientStats) String() string + type Config struct + AuthDial AuthDialer + ChainHash chainhash.Hash + DB DB + Dial tor.DialFunc + ForceQuitDelay time.Duration + MaxBackoff time.Duration + MinBackoff time.Duration + NewAddress func() ([]byte, error) + Policy wtpolicy.Policy + ReadTimeout time.Duration + SecretKeyRing ECDHKeyRing + Signer input.Signer + WriteTimeout time.Duration + type DB interface + AckUpdate func(id *wtdb.SessionID, seqNum, lastApplied uint16) error + CommitUpdate func(id *wtdb.SessionID, update *wtdb.CommittedUpdate) (uint16, error) + CreateClientSession func(*wtdb.ClientSession) error + CreateTower func(*lnwire.NetAddress) (*wtdb.Tower, error) + FetchChanSummaries func() (wtdb.ChannelSummaries, error) + ListClientSessions func(*wtdb.TowerID) (map[wtdb.SessionID]*wtdb.ClientSession, error) + ListTowers func() ([]*wtdb.Tower, error) + LoadTower func(*btcec.PublicKey) (*wtdb.Tower, error) + LoadTowerByID func(wtdb.TowerID) (*wtdb.Tower, error) + MarkBackupIneligible func(chanID lnwire.ChannelID, commitHeight uint64) error + NextSessionKeyIndex func(wtdb.TowerID, blob.Type) (uint32, error) + RegisterChannel func(lnwire.ChannelID, []byte) error + RemoveTower func(*btcec.PublicKey, net.Addr) error + type ECDHKeyRing interface + DeriveKey func(keyLoc keychain.KeyLocator) (keychain.KeyDescriptor, error) + type NegotiatorConfig struct + Candidates TowerCandidateIterator + ChainHash chainhash.Hash + DB DB + Dial func(keychain.SingleKeyECDH, *lnwire.NetAddress) (wtserver.Peer, error) + Log btclog.Logger + MaxBackoff time.Duration + MinBackoff time.Duration + Policy wtpolicy.Policy + ReadMessage func(wtserver.Peer) (wtwire.Message, error) + SecretKeyRing ECDHKeyRing + SendMessage func(wtserver.Peer, wtwire.Message) error + type RegisteredTower struct + ActiveSessionCandidate bool + Sessions map[wtdb.SessionID]*wtdb.ClientSession + type SessionNegotiator interface + NewSessions func() <-chan *wtdb.ClientSession + RequestSession func() + Start func() error + Stop func() error + type TowerCandidateIterator interface + AddCandidate func(*wtdb.Tower) + IsActive func(wtdb.TowerID) bool + Next func() (*wtdb.Tower, error) + RemoveCandidate func(wtdb.TowerID, net.Addr) error + Reset func() error + type TowerClient struct + func New(config *Config) (*TowerClient, error) + func (c *TowerClient) AddTower(addr *lnwire.NetAddress) error + func (c *TowerClient) BackupState(chanID *lnwire.ChannelID, breachInfo *lnwallet.BreachRetribution, ...) error + func (c *TowerClient) ForceQuit() + func (c *TowerClient) LookupTower(pubKey *btcec.PublicKey) (*RegisteredTower, error) + func (c *TowerClient) Policy() wtpolicy.Policy + func (c *TowerClient) RegisterChannel(chanID lnwire.ChannelID) error + func (c *TowerClient) RegisteredTowers() ([]*RegisteredTower, error) + func (c *TowerClient) RemoveTower(pubKey *btcec.PublicKey, addr net.Addr) error + func (c *TowerClient) Start() error + func (c *TowerClient) Stats() ClientStats + func (c *TowerClient) Stop() error