Why Nostr? What is Njump?
2023-06-09 12:52:43
in reply to

ZmnSCPxj [ARCHIVE] on Nostr: šŸ“… Original date posted:2018-11-15 šŸ“ Original message: Good morning Christian, ...

šŸ“… Original date posted:2018-11-15
šŸ“ Original message:
Good morning Christian,

The improvement is in a reduction in `fee_base_msat` in the C->D path.
If C is the merge point, then the C->D `fee_base_msat` is only paid once, not twice.
In effect, A is rationally choosing between a lower fee and better payment reliability.

Granted, current `fee_base_msat` across the network is very low currently.
So I do not object to restricting merge points to ultimate payees.
If fees rise later, we can revisit this.

Regards,
ZmnSCPxj


Sent with ProtonMail Secure Email.

ā€ā€ā€ā€ā€ā€ā€ Original Message ā€ā€ā€ā€ā€ā€ā€
On Friday, November 16, 2018 3:46 AM, Christian Decker <decker.christian at gmail.com> wrote:

> I'm not sure this is an improvement at all over just allowing a single
> merge-point, i.e., the destination. You see as long as we don't attempt
> intermediate merges the routes are independent and failures of one HTLC
> do not impact any other parts. Take for example the network below:
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> / \
> A----B-----C-----D
> \ /
> -------E-------
>
> For simplicity let's assume unit capacities on all channels except C-D
> and a total payment of 2 from A to D.
>
> If we use C as a merge point for the two partial payments A-C-D and
> A-B-C-D, then C can only forward if both partial payment succeed, i.e.,
> if for example A-C fails then we'll need to tear down the HTLCs for both
> paths because it'll no longer be possible to find an alternative route
> to fulfill the forwarding of 2 over C-D.
>
> If however we have two independent routes A-B-C-D and A-C-D, then A-C-D
> can fail independently and we can recover by attempting A-E-D, no need
> to touch A-B-C-D at all.
>
> Overall it seems we get very little benefit (we save some HTLC setups
> and teardown) for a lot of added complexity. In the above case we would
> have saved on a single C-D HTLC, and the cost of doing so is many times
> larger (2 HTLCs needed to be torn down because we could no longer pass
> enough capacity to C in order for it to reach the forward threshold).
>
> Let's please stick with the simple mechanism of having the recipient be
> the only merge point.
>
> Cheers,
> Christian
>
> ZmnSCPxj via Lightning-dev lightning-dev at lists.linuxfoundation.org
> writes:
>
> > Good morning list,
> > I propose the below to support Base AMP.
> > The below would allow arbitrary merges of paths, but not arbitrary splits. I am uncertain about the safety of arbitrary splits.
> >
> > ### The `multipath_merge_per_hop` type (`option_base_amp`)
> >
> > This indicates that payment has been split by the sender using Base AMP, and that the receiver should wait for the total intended payment before forwarding or claiming the payment.
> > In case the receiving node is not the last node in the path, then succeeding hops MUST be the same across all splits.
> >
> > 1. type: 1 (`termination_per_hop`)
> > 2. data:
> >
> > - [`8` : `short_channel_id`]
> > - [`8` : `amt_to_forward`]
> > - [`4` : `outgoing_cltv_value`]
> > - [`8` : `intended_total_payment`]
> > - [`4` : `zeros`]
> >
> > The contents of this hop will be the same across all paths of the Base AMP.
> > The `payment_hash` of the incoming HTLCs will also be the same across all paths of the Base AMP.
> > `intended_total_payment` is the total amount of money that this node should expect to receive in all incoming paths to the same `payment_hash`.
> > This may be the last hop of a payment onion, in which case the `HMAC` for this hop will be `0` (the same rule as for `per_hop_type` 0).
> > The receiver:
> >
> > - MUST impose a reasonable timeout for waiting to receive all component paths, and fail all incoming HTLC offers for the `payment_hash` if they have not totalled equal to `intended_total_payment`.
> > - MUST NOT forward (if an intermediate node) or claim (if the final node) unless it has received a total greater or equal to `intended_total_payment` in all incoming HTLCs for the same `payment_hash`.
> >
> > The sender:
> >
> > - MUST use the same `payment_hash` for all paths of a single multipath payment.
> >
> > Regards,
> > ZmnSCPxj
> >
> > Lightning-dev mailing list
> > Lightning-dev at lists.linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev
Author Public Key
npub1g5zswf6y48f7fy90jf3tlcuwdmjn8znhzaa4vkmtxaeskca8hpss23ms3l