[Lightning-dev] [1.1] Proposed `funding_cancelled` message

ZmnSCPxj ZmnSCPxj at protonmail.com
Mon Jan 8 03:26:23 UTC 2018


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180107/1f052636/attachment.html>


More information about the Lightning-dev mailing list