From 774355c15999278a091883c6e3540a0662022324 Mon Sep 17 00:00:00 2001 From: Andezion <245122@edu.p.lodz.pl> Date: Wed, 16 Sep 2026 14:50:32 +0200 Subject: [PATCH] channeld: document that local funding pubkey is fixed for splices Changelog-None --- channeld/channeld.c | 4 ++++ channeld/splice.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/channeld/channeld.c b/channeld/channeld.c index 4ded3024f8c4..01a7df49d406 100644 --- a/channeld/channeld.c +++ b/channeld/channeld.c @@ -4377,6 +4377,7 @@ static void splice_accepter(struct peer *peer, const u8 *inmsg) peer->splicing->accepter_relative = 0; if (type == WIRE_SPLICE_INIT) { + /* Same fixed local funding_pubkey as splice_init - see the comment there */ msg = towire_splice_ack(NULL, &peer->channel_id, peer->splicing->accepter_relative, @@ -5031,6 +5032,9 @@ static void handle_splice_stfu_success(struct peer *peer) u8 *msg; struct tlv_tx_init_rbf_tlvs *init_rbf_tlvs; if (!last_inflight(peer)) { + /* We only support the peer rotating their funding pubkey + * (see remote_funding_pubkey) - our own funding_pubkey is + * fixed for the channel's lifetime and is never rederived here */ msg = towire_splice_init(tmpctx, &peer->channel_id, peer->splicing->opener_relative, diff --git a/channeld/splice.h b/channeld/splice.h index 47050aee041b..3a640443f731 100644 --- a/channeld/splice.h +++ b/channeld/splice.h @@ -31,7 +31,8 @@ struct splice_state *splice_state_new(const tal_t *ctx); /* An active splice negotiation. Born when splice beings and dies when a splice * negotation has finished */ struct splicing { - /* The remote side's rotated funding pubkey */ + /* The remote side's rotated funding pubkey. There is no local counterpart - we always reuse channel->funding_pubkey[LOCAL], + * which is fixed for the channel's lifetime. Local funding pubkey rotation is not implemented */ struct pubkey remote_funding_pubkey; /* The opener side's relative balance change */ s64 opener_relative;