Transaction negotiation during splicing (Splicing, Channel Funding, Transaction Negotiation)

https://github.com/lightningdevkit/rust-lightning/pull/3736

Host: vincenzopalazzo  -  PR author: optout21

Notes

Splicing is a process that allows users to change the funding transaction of a channel without closing it. This PR introduces the concept of “Transaction Negotiation” for splicing, which is a way to construct transactions interactively between peers using INTERACTIVE TRANSACTION CONSTRUCTION.

Questions

  1. Have you reviewed ldk/3736? If so, is it a Concept ACK, Approach ACK, Tested ACK, or NACK?
  2. Define “Transaction Negotiation” in the context of splicing. What is its purpose and how it differs from regular “Interactive Transaction Construction”?
  3. When does “Transaction Negotiation” start and when does it end? What are the key steps involved?
  4. ldk/3736 introduces FundedChannel::as_renegotiating_channel and PendingV2Channel::as_negotiating_channel methods. What is the purpose of these methods, and how do they relate to the transaction negotiation process?
  5. How is a splice tracked in FundedChannel throughout its lifetime?
  6. Bonus: What are the differences and similarities between Dual Funding and Splicing?