Skip to content

Commit dd1c436

Browse files
committed
Don't persist commitment point/secret
Turns out we don't have to persist the point or secret if we just call `update_holder_per_commitment` after we read the channel.
1 parent d815b8b commit dd1c436

File tree

2 files changed

+5
-32
lines changed

2 files changed

+5
-32
lines changed

lightning/src/ln/channel.rs

+4-32
Original file line numberDiff line numberDiff line change
@@ -7592,8 +7592,6 @@ impl<SP: Deref> Writeable for Channel<SP> where SP::Target: SignerProvider {
75927592
(35, pending_outbound_skimmed_fees, optional_vec),
75937593
(37, holding_cell_skimmed_fees, optional_vec),
75947594
(38, self.context.is_batch_funding, option),
7595-
(39, self.context.cur_holder_commitment_point, option),
7596-
(41, self.context.prev_holder_commitment_secret, option),
75977595
});
75987596

75997597
Ok(())
@@ -7879,9 +7877,6 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
78797877

78807878
let mut is_batch_funding: Option<()> = None;
78817879

7882-
let mut cur_holder_commitment_point: Option<PublicKey> = None;
7883-
let mut prev_holder_commitment_secret: Option<[u8; 32]> = None;
7884-
78857880
read_tlv_fields!(reader, {
78867881
(0, announcement_sigs, option),
78877882
(1, minimum_depth, option),
@@ -7908,8 +7903,6 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
79087903
(35, pending_outbound_skimmed_fees_opt, optional_vec),
79097904
(37, holding_cell_skimmed_fees_opt, optional_vec),
79107905
(38, is_batch_funding, option),
7911-
(39, cur_holder_commitment_point, option),
7912-
(41, prev_holder_commitment_secret, option),
79137906
});
79147907

79157908
let (channel_keys_id, holder_signer) = if let Some(channel_keys_id) = channel_keys_id {
@@ -7961,27 +7954,6 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
79617954
let mut secp_ctx = Secp256k1::new();
79627955
secp_ctx.seeded_randomize(&entropy_source.get_secure_random_bytes());
79637956

7964-
// If we weren't able to load the cur_holder_commitment_point or prev_holder_commitment_secret,
7965-
// ask the signer for it now.
7966-
let mut signer_pending_commitment_point = false;
7967-
if cur_holder_commitment_point.is_none() {
7968-
cur_holder_commitment_point = holder_signer.get_per_commitment_point(
7969-
cur_holder_commitment_transaction_number, &secp_ctx
7970-
).ok();
7971-
7972-
signer_pending_commitment_point = cur_holder_commitment_point.is_none();
7973-
}
7974-
7975-
let mut signer_pending_released_secret = false;
7976-
if prev_holder_commitment_secret.is_none() {
7977-
let release_transaction_number = cur_holder_commitment_transaction_number + 2;
7978-
prev_holder_commitment_secret = if release_transaction_number <= INITIAL_COMMITMENT_NUMBER {
7979-
let secret = holder_signer.release_commitment_secret(release_transaction_number).ok();
7980-
signer_pending_released_secret = secret.is_none();
7981-
secret
7982-
} else { None };
7983-
}
7984-
79857957
// `user_id` used to be a single u64 value. In order to remain backwards
79867958
// compatible with versions prior to 0.0.113, the u128 is serialized as two
79877959
// separate u64 values.
@@ -8034,8 +8006,8 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
80348006
destination_script,
80358007

80368008
cur_holder_commitment_transaction_number,
8037-
cur_holder_commitment_point,
8038-
prev_holder_commitment_secret,
8009+
cur_holder_commitment_point: None,
8010+
prev_holder_commitment_secret: None,
80398011
cur_counterparty_commitment_transaction_number,
80408012
value_to_self_msat,
80418013

@@ -8057,8 +8029,8 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
80578029
signer_pending_revoke_and_ack: false,
80588030
signer_pending_funding: false,
80598031
signer_pending_channel_ready: false,
8060-
signer_pending_commitment_point,
8061-
signer_pending_released_secret,
8032+
signer_pending_commitment_point: true,
8033+
signer_pending_released_secret: true,
80628034

80638035
pending_update_fee,
80648036
holding_cell_update_fee,

lightning/src/ln/channelmanager.rs

+1
Original file line numberDiff line numberDiff line change
@@ -9450,6 +9450,7 @@ where
94509450
log_info!(args.logger, "Successfully loaded channel {} at update_id {} against monitor at update id {}",
94519451
&channel.context.channel_id(), channel.context.get_latest_monitor_update_id(),
94529452
monitor.get_latest_update_id());
9453+
channel.context.update_holder_per_commitment(&args.logger);
94539454
if let Some(short_channel_id) = channel.context.get_short_channel_id() {
94549455
short_to_chan_info.insert(short_channel_id, (channel.context.get_counterparty_node_id(), channel.context.channel_id()));
94559456
}

0 commit comments

Comments
 (0)