[Lightning-dev] Simplified protocol for multiple in-flight updates.

Joseph Poon joseph at lightning.network
Tue Feb 9 01:08:20 UTC 2016

On Tue, Feb 09, 2016 at 06:47:07AM +1030, Rusty Russell wrote:
>         Eliminating all acknowledgements makes for a much simpler
> protocol.

For adding HTLCs, this may be an option, but there are some tradeoffs.
The downside of doing this is that it's uncertain whether the other
party has received the message. Essentially, the moment the packets are
sent over the wire, it should be assumed the other party can broadcast
(TCP SACKs cannot be relied upon, of course). To remove the HTLC
securely, it requires removing the HTLC, committing, and then the other
party revokes the prior commitment. If the ratio of success/failure is
high enough it can be worth it. This may have some disadvantages with
intermittently connected nodes, as requiring confirmation has a
significantly smaller time window for non-responsive payments. I'm
optimizing against payment failure on the ADD side, as failure may
require a re-route in the opposite direction to do a full cancel with a
non-responsive node in multi-hop payments (as an add request/accept
structure has lower time windows for going offline). However, I agree if
both nodes are well connected, then this is more optimal if latency is
the primary concern.

Joseph Poon

More information about the Lightning-dev mailing list