mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-22 14:22:37 +01:00
channeldb: add method to sync revocation state to disk
This commit is contained in:
parent
e1d5878df4
commit
56fb414767
1 changed files with 28 additions and 0 deletions
|
@ -204,6 +204,34 @@ func (c *OpenChannel) FullSync() error {
|
|||
})
|
||||
}
|
||||
|
||||
// SyncRevocation writes to disk the current revocation state of the channel.
|
||||
// The revocation state is defined as the current elkrem receiver, and the
|
||||
// latest unrevoked key+hash for the remote party.
|
||||
func (c *OpenChannel) SyncRevocation() error {
|
||||
return c.Db.store.Update(func(tx *bolt.Tx) error {
|
||||
// First fetch the top level bucket which stores all data related to
|
||||
// current, active channels.
|
||||
chanBucket, err := tx.CreateBucketIfNotExists(openChannelBucket)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Within this top level bucket, fetch the bucket dedicated to storing
|
||||
// open channel data specific to the remote node.
|
||||
nodeChanBucket, err := chanBucket.CreateBucketIfNotExists(c.TheirLNID[:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Sync the current elkrem state to disk.
|
||||
if err := putChanEklremState(nodeChanBucket, c); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
// CloseChannel closes a previously active lightning channel. Closing a channel
|
||||
// entails deleting all saved state within the database concerning this
|
||||
// channel, as well as created a small channel summary for record keeping
|
||||
|
|
Loading…
Add table
Reference in a new issue