Skip to content

Commit f240cc2

Browse files
committed
Send commitment_signed batch for splicing
A FundedChannel may have more than one pending FundingScope during splicing, one for the splice attempt and one or more for any RBF attempts. When this is the case, send a commitment_signed message for each FundingScope and include the necessary batch information (i.e., batch_size and funding_txid) to the counterparty.
1 parent 21a3de3 commit f240cc2

17 files changed

+279
-233
lines changed

lightning/src/chain/chainmonitor.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,20 +1008,20 @@ mod tests {
10081008
let updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
10091009
nodes[0].node.handle_update_fulfill_htlc(nodes[1].node.get_our_node_id(), &updates.update_fulfill_htlcs[0]);
10101010
expect_payment_sent(&nodes[0], payment_preimage_1, None, false, false);
1011-
nodes[0].node.handle_commitment_signed(nodes[1].node.get_our_node_id(), &updates.commitment_signed);
1011+
nodes[0].node.handle_commitment_signed_batch(nodes[1].node.get_our_node_id(), &updates.commitment_signed);
10121012
check_added_monitors!(nodes[0], 1);
10131013
let (as_first_raa, as_first_update) = get_revoke_commit_msgs!(nodes[0], nodes[1].node.get_our_node_id());
10141014

10151015
nodes[1].node.handle_revoke_and_ack(nodes[0].node.get_our_node_id(), &as_first_raa);
10161016
check_added_monitors!(nodes[1], 1);
10171017
let bs_second_updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
1018-
nodes[1].node.handle_commitment_signed(nodes[0].node.get_our_node_id(), &as_first_update);
1018+
nodes[1].node.handle_commitment_signed_batch(nodes[0].node.get_our_node_id(), &as_first_update);
10191019
check_added_monitors!(nodes[1], 1);
10201020
let bs_first_raa = get_event_msg!(nodes[1], MessageSendEvent::SendRevokeAndACK, nodes[0].node.get_our_node_id());
10211021

10221022
nodes[0].node.handle_update_fulfill_htlc(nodes[1].node.get_our_node_id(), &bs_second_updates.update_fulfill_htlcs[0]);
10231023
expect_payment_sent(&nodes[0], payment_preimage_2, None, false, false);
1024-
nodes[0].node.handle_commitment_signed(nodes[1].node.get_our_node_id(), &bs_second_updates.commitment_signed);
1024+
nodes[0].node.handle_commitment_signed_batch(nodes[1].node.get_our_node_id(), &bs_second_updates.commitment_signed);
10251025
check_added_monitors!(nodes[0], 1);
10261026
nodes[0].node.handle_revoke_and_ack(nodes[1].node.get_our_node_id(), &bs_first_raa);
10271027
expect_payment_path_successful!(nodes[0]);
@@ -1030,7 +1030,7 @@ mod tests {
10301030

10311031
nodes[1].node.handle_revoke_and_ack(nodes[0].node.get_our_node_id(), &as_second_raa);
10321032
check_added_monitors!(nodes[1], 1);
1033-
nodes[1].node.handle_commitment_signed(nodes[0].node.get_our_node_id(), &as_second_update);
1033+
nodes[1].node.handle_commitment_signed_batch(nodes[0].node.get_our_node_id(), &as_second_update);
10341034
check_added_monitors!(nodes[1], 1);
10351035
let bs_second_raa = get_event_msg!(nodes[1], MessageSendEvent::SendRevokeAndACK, nodes[0].node.get_our_node_id());
10361036

lightning/src/ln/async_signer_tests.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ fn do_test_async_commitment_signature_for_commitment_signed_revoke_and_ack(enabl
262262
dst.disable_channel_signer_op(&src.node.get_our_node_id(), &chan_id, SignerOp::GetPerCommitmentPoint);
263263
dst.disable_channel_signer_op(&src.node.get_our_node_id(), &chan_id, SignerOp::ReleaseCommitmentSecret);
264264
dst.disable_channel_signer_op(&src.node.get_our_node_id(), &chan_id, SignerOp::SignCounterpartyCommitment);
265-
dst.node.handle_commitment_signed(src.node.get_our_node_id(), &payment_event.commitment_msg);
265+
dst.node.handle_commitment_signed_batch(src.node.get_our_node_id(), &payment_event.commitment_msg);
266266
check_added_monitors(dst, 1);
267267

268268
let mut enabled_signer_ops = new_hash_set();
@@ -456,7 +456,7 @@ fn do_test_async_raa_peer_disconnect(test_case: UnblockSignerAcrossDisconnectCas
456456
// Mark dst's signer as unavailable and handle src's commitment_signed: while dst won't yet have a
457457
// `commitment_signed` of its own to offer, it should publish a `revoke_and_ack`.
458458
dst.disable_channel_signer_op(&src.node.get_our_node_id(), &chan_id, block_raa_signer_op);
459-
dst.node.handle_commitment_signed(src.node.get_our_node_id(), &payment_event.commitment_msg);
459+
dst.node.handle_commitment_signed_batch(src.node.get_our_node_id(), &payment_event.commitment_msg);
460460
check_added_monitors(dst, 1);
461461

462462
let events = dst.node.get_and_clear_pending_msg_events();
@@ -580,7 +580,7 @@ fn do_test_async_commitment_signature_peer_disconnect(test_case: UnblockSignerAc
580580
// Mark dst's signer as unavailable and handle src's commitment_signed: while dst won't yet have a
581581
// `commitment_signed` of its own to offer, it should publish a `revoke_and_ack`.
582582
dst.disable_channel_signer_op(&src.node.get_our_node_id(), &chan_id, SignerOp::SignCounterpartyCommitment);
583-
dst.node.handle_commitment_signed(src.node.get_our_node_id(), &payment_event.commitment_msg);
583+
dst.node.handle_commitment_signed_batch(src.node.get_our_node_id(), &payment_event.commitment_msg);
584584
check_added_monitors(dst, 1);
585585

586586
if test_case != UnblockSignerAcrossDisconnectCase::BeforeMonitorRestored {
@@ -696,7 +696,7 @@ fn do_test_async_commitment_signature_ordering(monitor_update_failure: bool) {
696696
if monitor_update_failure {
697697
chanmon_cfgs[0].persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
698698
}
699-
nodes[0].node.handle_commitment_signed(nodes[1].node.get_our_node_id(), commitment_signed);
699+
nodes[0].node.handle_commitment_signed_batch(nodes[1].node.get_our_node_id(), commitment_signed);
700700
if monitor_update_failure {
701701
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
702702
} else {
@@ -766,7 +766,7 @@ fn do_test_async_commitment_signature_ordering(monitor_update_failure: bool) {
766766

767767
// Now that everything is restored, get the CS + RAA and handle them.
768768
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &as_resp.2.as_ref().unwrap().update_add_htlcs[0]);
769-
nodes[1].node.handle_commitment_signed(nodes[0].node.get_our_node_id(), &as_resp.2.as_ref().unwrap().commitment_signed);
769+
nodes[1].node.handle_commitment_signed_batch(nodes[0].node.get_our_node_id(), &as_resp.2.as_ref().unwrap().commitment_signed);
770770
nodes[1].node.handle_revoke_and_ack(nodes[0].node.get_our_node_id(), as_resp.1.as_ref().unwrap());
771771
let (bs_revoke_and_ack, bs_second_commitment_signed) = get_revoke_commit_msgs(&nodes[1], &nodes[0].node.get_our_node_id());
772772
check_added_monitors!(nodes[1], 2);
@@ -777,12 +777,12 @@ fn do_test_async_commitment_signature_ordering(monitor_update_failure: bool) {
777777
let as_commitment_signed = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
778778
check_added_monitors!(nodes[0], 1);
779779

780-
nodes[0].node.handle_commitment_signed(nodes[1].node.get_our_node_id(), &bs_second_commitment_signed);
780+
nodes[0].node.handle_commitment_signed_batch(nodes[1].node.get_our_node_id(), &bs_second_commitment_signed);
781781
let as_revoke_and_ack = get_event_msg!(nodes[0], MessageSendEvent::SendRevokeAndACK, nodes[1].node.get_our_node_id());
782782
// No commitment_signed so get_event_msg's assert(len == 1) passes
783783
check_added_monitors!(nodes[0], 1);
784784

785-
nodes[1].node.handle_commitment_signed(nodes[0].node.get_our_node_id(), &as_commitment_signed.commitment_signed);
785+
nodes[1].node.handle_commitment_signed_batch(nodes[0].node.get_our_node_id(), &as_commitment_signed.commitment_signed);
786786
let bs_second_revoke_and_ack = get_event_msg!(nodes[1], MessageSendEvent::SendRevokeAndACK, nodes[0].node.get_our_node_id());
787787
// No commitment_signed so get_event_msg's assert(len == 1) passes
788788
check_added_monitors!(nodes[1], 1);

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,7 @@ fn do_multi_hop_receiver_fail(check: ReceiveCheckFail) {
10081008
let node_1_shutdown = get_event_msg!(nodes[1], MessageSendEvent::SendShutdown, nodes[2].node.get_our_node_id());
10091009

10101010
nodes[2].node.handle_update_add_htlc(nodes[1].node.get_our_node_id(), &payment_event_1_2.msgs[0]);
1011-
nodes[2].node.handle_commitment_signed(nodes[1].node.get_our_node_id(), &payment_event_1_2.commitment_msg);
1011+
nodes[2].node.handle_commitment_signed_batch(nodes[1].node.get_our_node_id(), &payment_event_1_2.commitment_msg);
10121012
check_added_monitors!(nodes[2], 1);
10131013

10141014
nodes[2].node.handle_shutdown(nodes[1].node.get_our_node_id(), &node_1_shutdown);

0 commit comments

Comments
 (0)