Good morning Lightning world,

https://github.com/lightningnetwork/lightning-rfc/pull/349

I propose in the above pull request a new `funding_cancelled` message intended 
to inform the fundee node that the funder node is definitely sure that the 
channel funding transaction can never confirm.

This thread is intended to open a discussion for this proposed message, to be 
added to v1.1 spec.

The reason for including this message is the below:

1.  Implementing this message should not be onerous, if the node software 
already implements code to forget the channel after a timeout. We simply 
trigger this code if the channel funding transaction times out or if this 
message is received.
2.  It allows replace-by-fee funding transactions. To replace an RBF funding 
transaction, the funder simply re-initiates the opening protocol from 
`open_channel` -> `acccept_channel` -> `funding_created` -> `funding_signed`, 
then broadcasts the replacement funding transaction.  Then both funder and 
fundee wait for either the old or the new funding transaction to confirm 
(miners might reject replacements, or the new funding transactions might simply 
not have propagated to the miner at the time of mining a new block), and once 
one of the transactions is confirmed deeply enough, the funder cancels the 
other funding transaction via `funding_cancelled`.
3.  It allows multi-channel funding transactions.  To fund multiple channels 
from a single transaction, the funder initiates the opening protocol to each 
node separately.  However, the funder must not boradcast the funding 
transaction until all fundees reply `funding_signed`.  If some fundees complete 
the protocol up to `funding_signed` but some fundees time out or fail/cannot 
contact, then the funder cannot safely broadcast the funding transaction at 
all. The funder node can then send `funding_cancelled` to each fundee that 
completed up to `funding_signed` to free resources of those nodes.

In principle the message is unnecessary if funding timeout is implemented by 
the fundee node. However, this message lets the funder node free up resources 
on the fundee node.

Admittedly, implementing RBF funding transactions and multi-channel funding 
transactions is more involved than implementing `funding_cancelled`,

Regards,
ZmnSCPxj
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to