Good morning Stefan, > > A reason why I suggest this is that the cost function in actual > > implementation is *already* IMO overloaded. > > > > In particular, actual implementations will have some kind of conversion > > between cltv-delta and fees-at-node. > > That's an interesting aspect. Would this lead to a constant per edge if > incorporated in the cost function? If so, this would lead to another > generally hard problem, which, again, needs to be explored more in the > concrete cases we have here to see if we can still solve/approximate it.
No, because each edge defines its own cltv-delta. > > > However, I think that in practice, most users cannot intuitively understand > > `riskfactor`. > > I don't think they have to. Only people like you who write actual software > probably need to. ***I*** do not intuitively understand it either. (^^;) I understand it with system 2 (expected return on investment if you were investing the money instead of having it locked due to node failure along a path) but my system 1 just goes "hmmm whut" and I just use the default, which I *hope* cdecker chose rationally. > > Similarly, I think it is easier for users to think in terms of "fee budget" > > instead. > > > > Of course, algorithms should try to keep costs as low as possible, if there > > are two alternate payment plans that are both below the fee budget, the one > > with lower actual fee is still preferred. > > But perhaps we should focus more on payment success *within some fee and > > timelock budget*. > > > > Indeed, as you point out, your real-world experiments you have done have > > involved only probability as cost. > > However, by the paper you claim to have sent 40,000,000,000msat for a cost > > of 814,000msat, or 0.002035% fee percentage, far below the 0.5% default > > `maxfeepercent` we have, which I think is fairly reasonable argument for > > "let us ignore fees and timelocks unless it hits the budget". > > (on the other hand, those numbers come from a section labelled > > "Simulation", so that may not reflect the real world experiments you had > > --- what numbers did you get for those?) > > René is going to publish those results very soon. > > Regarding payment success *within some fee and timelock budget*: the > situation is a little more complex than it appears. As you have pointed out, > at the moment, most of the routes are very cheap (too cheap, IMHO), so you > have to be very unlucky to hit an expensive flow. So in the current > environment, your approach seems to work pretty well, which is also why we > first thought about it. > > Unfortunately, as you know, we have to think adversarially in this domain. > And it is clear that if we simply disregarded fees in routing, people would > try to take advantage of this. If we just set a fee budget, and try again if > it is missed, then I see some problems arise: First, what edges do you > exclude in the next try? Where is that boundary? Second, I am pretty sure an > adversary could design a DOS vector in this way by forcing people to go > through exponentially many min-cost flow rounds (which are not cheap anyway) > excluding only few edges per round. > > Indeed, if you read the paper closely you will have seen that this kind of > problem (optimizing for some cost while staying under a budget for a second > cost) is (weakly) np-hard even for the single path case. So there is some > intuition that this is not as simple as you might imagine it. I personally > think that the Lagrangian style of combining the costs in a linear fashion is > very promising, but you might be successful with more direct methods as well. > > > Is my suggestion not reasonable in practice? > > Is the algorithm runtime too high? > > See above. I don't know, but I believe it would be hard to make safe against > adversaries. Including the fees in the cost function appears to be the more > holistic approach to me, since min-cost flow algorithms always give you a > globally optimized answer. Hah, yes, adversarial. I may have a route towards a unified cost function, will clean up a write up and post in a little while on a new thread. Regards, ZmnSCPxj _______________________________________________ Lightning-dev mailing list Lightning-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev