From bitcoin at c-otto.de Tue May 17 10:46:08 2022 From: bitcoin at c-otto.de (Carsten Otto) Date: Tue, 17 May 2022 12:46:08 +0200 Subject: [Lightning-dev] #PickhardtPayments implemented in lnd-manageJ In-Reply-To: References: Message-ID: Three small updates: 1) The most recent version of lnd-manageJ now also considers channels that charge a base fee. In order to make this work, the worst-case scenario is assumed (which is: a channel is used for the smallest possible amount) and the fee rate used for the route computation is adjusted accordingly. With the default settings (quantization 10,000sat), a channel charging a base fee of Xsat and a fee rate of Yppm is considered with a virtual fee rate of (Y+X*100)ppm. This penalty is linear in the quantization amount, i.e. if you use a quantization of 100,000sat, a base fee of Xsat only results in a penalty of X*10ppm. 2) I added a Dockerfile that should help with experiments. https://github.com/C-Otto/lnd-manageJ/blob/fix-5746/Dockerfile The only interesting requirement is that your lnd needs to be patched: https://github.com/lightningnetwork/lnd/pull/6545 You can tweak the lnd-manageJ.conf (as demonstrated in lines 10-12), see https://github.com/C-Otto/lnd-manageJ/blob/main/PickhardtPayments.md for the available options. As I was unable to figure out how to avoid TLS issues with gRPC, you need to use "--network host" if you run lnd on localhost. The docker image boots PostgreSQL on the default port 5432, so make sure it is available and not in use by your host. For your experiments please take into account that lnd-manageJ needs to request the LN graph from lnd, which takes a few seconds. This graph is cached for up to two minutes and, if used, refreshed before it times out. As such, please issue a test payment (to request the graph) before measuring the time it takes to send out any real payment. 3) Route/hop hints provided in the payment request are now considered so that private/virtual channels are used for the route computation. This only works for "route hints" which contain a single hop (which should be fine?). Each "hint" channel is added with a capacity of 50 BTC and the algorithm is made to believe that 100% of that is available. This "known liquidity" is not shown in the streaming NDJSON output you get via HTTP, though, which is just a display issue which doesn't affect the route computation. Happy hacking, Carsten -- Dr. Carsten Otto carsten at c-otto.de https://c-otto.de -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: