ElementsProject / lightning

Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Other
2.79k stars 885 forks source link

pay: MPP fails over a single channel #5259

Open openoms opened 2 years ago

openoms commented 2 years ago

Issue and Steps to Reproduce

Experiencing a similar issue to #5250 trying to pay simple $5 invoice to a BTCPayServer of Lunanode. My CLN node has a single channel to a routing node currently still the pay plugin wants to send with MPP all the time. There is no other way, but to put disable-mpp in the config. It seems this will need to be done for all nodes with only one channel otherwise CLN cannot pay anything. The connected routing node can pay the invoice every time and also CLN can if disable-mpp is set.

Telegram entry: https://t.me/lightningd/12354

getinfo output

{
   "id": "020fc7e62c9956a34bcdba309a4809ccfd7adcae4b8b644cac81b4dc58d43a2479",
   "alias": "LNroadz",
   "color": "020fc7",
   "num_peers": 1,
   "num_pending_channels": 0,
   "num_active_channels": 1,
   "num_inactive_channels": 0,
   "address": [
      {
         "type": "torv3",
         "address": "dt2xgzg4wg5zksqlzxmtqx3yx4dnic7hlysvycfvunbrgoatfzsnosyd.onion",
         "port": 9736
      }
   ],
   "binding": [
      {
         "type": "ipv4",
         "address": "127.0.0.1",
         "port": 9736
      }
   ],
   "version": "v0.11.0.1",
   "blockheight": 736305,
   "network": "bitcoin",
   "msatoshi_fees_collected": 805680,
   "fees_collected_msat": "805680msat",
   "lightning-dir": "/home/bitcoin/.lightning/bitcoin",
   "our_features": {
      "init": "88282269a2",
      "node": "800088282269a2",
      "channel": "",
      "invoice": "02000020024100"
   }
}
openoms commented 2 years ago

Trying an other time after a successful payment without MPP, it went through from the same node with MPP in 3 parts as well. MIght have really just been a pathfinding issue.

lightning-cli pay REDACTED
{
   "destination": "02fe153690061fa27049bae0faa236ddb95df98c514416a350449c24a8018851dc",
   "payment_hash": "REDACTED",
   "created_at": REDACTED,
   "parts": 3,
   "msatoshi": 16960000,
   "amount_msat": "16960000msat",
   "msatoshi_sent": 16988102,
   "amount_sent_msat": "16988102msat",
   "payment_preimage": "REDACTED",
   "status": "complete"
}

Still an option in the command line to control the number and size of parts would be useful to not need a full restart to changing this setting for a payment. Zeus already has this (but not sure how it is achieved):

devastgh commented 1 year ago

Just like to say here, that i have this problem too. The max i can pay through my own channel directly to my peer is "spendable_msat": "4294967295msat" It takes me 25 invoices to move 1btc.

openoms commented 1 year ago

The max i can pay through my own channel directly to my peer is "spendable_msat": "4294967295msat"

That limit might be related to the large-channels setting. Is it the same after switching on large-channels / wumbo in the config?

devastgh commented 1 year ago

The max i can pay through my own channel directly to my peer is "spendable_msat": "4294967295msat"

That limit might be related to the large-channels setting. Is it the same after switching on large-channels / wumbo in the config?

I have large-channels enabled. The spendable_msat is capped at that value on all my channels.