Skip to content

Commit 1ce2beb

Browse files
committed
Move Channel's blocked monitor updates vec to an even TLV
In 9dfe42c, `ChannelMonitorUpdate`s were stored in `Channel` while they were being processed. Because it was possible (though highly unlikely, due to various locking likely blocking persistence) an update was in-flight (even synchronously) when a `ChannelManager` was persisted, the new updates were persisted via an odd TLV. However, in 4041f08 these pending monitor updates were moved to `ChannelManager`, with appropriate handling there. Now the only `ChannelMonitorUpdate`s which are stored in `Channel` are those which are explicitly blocked, which requires the async pipeline. Because we don't support async monitor update users downgrading to 0.0.115 or lower, we move to persisting them via an even TLV. As the odd TLV storage has not yet been released, we can do so trivially. Fixes #2317.
1 parent 86fd9e7 commit 1ce2beb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lightning/src/ln/channel.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6781,6 +6781,7 @@ impl<Signer: WriteableEcdsaChannelSigner> Writeable for Channel<Signer> {
67816781
(5, self.context.config, required),
67826782
(6, serialized_holder_htlc_max_in_flight, option),
67836783
(7, self.context.shutdown_scriptpubkey, option),
6784+
(8, self.context.blocked_monitor_updates, vec_type),
67846785
(9, self.context.target_closing_feerate_sats_per_kw, option),
67856786
(11, self.context.monitor_pending_finalized_fulfills, vec_type),
67866787
(13, self.context.channel_creation_height, required),
@@ -6794,7 +6795,6 @@ impl<Signer: WriteableEcdsaChannelSigner> Writeable for Channel<Signer> {
67946795
(28, holder_max_accepted_htlcs, option),
67956796
(29, self.context.temporary_channel_id, option),
67966797
(31, channel_pending_event_emitted, option),
6797-
(33, self.context.blocked_monitor_updates, vec_type),
67986798
(35, pending_outbound_skimmed_fees, optional_vec),
67996799
(37, holding_cell_skimmed_fees, optional_vec),
68006800
});
@@ -7089,6 +7089,7 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
70897089
(5, config, option), // Note that if none is provided we will *not* overwrite the existing one.
70907090
(6, holder_max_htlc_value_in_flight_msat, option),
70917091
(7, shutdown_scriptpubkey, option),
7092+
(8, blocked_monitor_updates, vec_type),
70927093
(9, target_closing_feerate_sats_per_kw, option),
70937094
(11, monitor_pending_finalized_fulfills, vec_type),
70947095
(13, channel_creation_height, option),
@@ -7102,7 +7103,6 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
71027103
(28, holder_max_accepted_htlcs, option),
71037104
(29, temporary_channel_id, option),
71047105
(31, channel_pending_event_emitted, option),
7105-
(33, blocked_monitor_updates, vec_type),
71067106
(35, pending_outbound_skimmed_fees_opt, optional_vec),
71077107
(37, holding_cell_skimmed_fees_opt, optional_vec),
71087108
});

0 commit comments

Comments
 (0)