From: Matt Corallo Date: Sat, 15 Feb 2020 03:32:30 +0000 (-0500) Subject: Update pre-HTLC DataLossProtect to match new spec changes X-Git-Tag: v0.0.12~100^2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=4f06d7a83c04d3f99131175aec9a30ec0c55df5d;p=rust-lightning Update pre-HTLC DataLossProtect to match new spec changes This was the way DataLossProtect was originally written, however it didn't match other implementations at the time during testing. It turns out, other implementations didn't agree with each other anyway (depending on the exact timeline), so the spec was clarified somewhat in https://github.com/lightningnetwork/lightning-rfc/pull/550 . This updates us to be in line with the new guidance and appears to solve out-of-sync issues in testing. --- diff --git a/lightning/src/ln/channel.rs b/lightning/src/ln/channel.rs index f155a0bd2..64f7e4f0b 100644 --- a/lightning/src/ln/channel.rs +++ b/lightning/src/ln/channel.rs @@ -3444,10 +3444,10 @@ impl Channel { my_current_per_commitment_point: PublicKey::from_secret_key(&self.secp_ctx, &self.build_local_commitment_secret(self.cur_local_commitment_transaction_number + 1)) }) } else { - log_debug!(self, "We don't seen yet any revoked secret, if this channnel has already been updated it means we are fallen-behind, you should wait for other peer closing"); + log_info!(self, "Sending a data_loss_protect with no previous remote per_commitment_secret"); OptionalField::Present(DataLossProtect { your_last_per_commitment_secret: [0;32], - my_current_per_commitment_point: PublicKey::from_secret_key(&self.secp_ctx, &self.build_local_commitment_secret(self.cur_local_commitment_transaction_number)) + my_current_per_commitment_point: PublicKey::from_secret_key(&self.secp_ctx, &self.build_local_commitment_secret(self.cur_local_commitment_transaction_number + 1)) }) }; msgs::ChannelReestablish {