]> git.bitcoin.ninja Git - rust-lightning/commit
Use CLOSED_CHANNEL_UPDATE_ID in force closing ChannelMonitorUpdates
authorWilmer Paulino <wilmer@wilmerpaulino.com>
Tue, 28 Feb 2023 18:45:44 +0000 (10:45 -0800)
committerWilmer Paulino <wilmer@wilmerpaulino.com>
Tue, 21 Mar 2023 23:25:45 +0000 (16:25 -0700)
commit5a90f014f283f20e783c5db32ffb63c019a8dbe6
treef5c00ff6c019bf2690f47b32cb25eba43ccf39f1
parent14ee173593e6ee5501e10767ffa6ce1533a9bb2e
Use CLOSED_CHANNEL_UPDATE_ID in force closing ChannelMonitorUpdates

Currently, all that is required to force close a channel is to broadcast
either of the available commitment transactions, but this changes with
anchor outputs – commitment transactions may need to have
additional fees attached in order to confirm in a timely manner. While
we may be able to just queue a new update using the channel's next
available update ID, this may result in a violation of the
`ChannelMonitor` API (each update ID must strictly increase by 1) if the
channel had updates that were persisted by its `ChannelMonitor`, but not
the `ChannelManager`. Therefore, we choose to re-purpose the existing
`CLOSED_CHANNEL_UPDATE_ID` update ID to also apply to
`ChannelMonitorUpdate`s that will force close their respective channel
by broadcasting the holder's latest commitment transaction.
lightning-persister/src/lib.rs
lightning/src/chain/channelmonitor.rs
lightning/src/ln/channel.rs