1

Can my LN channel for some amount "X" receive a LN payement larger than "X"..or receive multiple small payments that exceed "X"?

For example, say I have an online tea store and have one 100,000 satoshi channel opened with one of the big LN nodes out there (e.g., acinq, one of LNbig's nodes)...my thinking being, well I want to keep expenses down in opening up channels, and the big node I'm connected to will connect with a lot of people that want to buy from my online tea store.

However, say my store has one item that is 10,000 satoshi and one item that is 1,000,000 satoshi.

What happens if:

(1) I receive fifteen 10,000 satoshi order/payments routed via the 100k big LN node channel...or

(2) I receive one 1,000,000 payment routed to me via the 100k big node channel (a purchase of my one "expensive" 1,000,000 item).

I believe to run my store I would need to create multiple giant channels to accommodate any potential payments received...right? So in both cases above, the channel must have enough to receive the payments and cannot receive a payment larger than what is in the channel.

2 Answers 2

1

Can my LN channel for some amount "X" receive a LN payement larger than "X"

No, you can only receive payments until the entire channel capacity ("X") has been pushed to you side of the channel. At that point, you will no longer have incoming capacity.

..or receive multiple small payments that exceed "X"?

You could receive multiple payments that exceed "X", but you would also have to send payments out in between the receives (to push the channel balance back to your channel counterparty's node).

What happens if:

(1) I receive fifteen 10,000 satoshi order/payments routed via the 100k big LN node channel...or

Assuming your channel starts with 100% of the capacity on your counterparty's node, you would be able to receive 9-10 payments, and then there would be no route to complete the last 5-6 payments.

I say 9-10 instead of 10, because each node involved in a channel must keep a small amount of capacity in reserve, to initiate a channel closing in case of an uncooperative closure. So if the capacity was exact 100,000 sat, and the payments were exactly 10,000 sat, then you would most likely not be able to receive the full 100,000 sat in payments consecutively, due to this reserve requirement,

What happens if:

(2) I receive one 1,000,000 payment routed to me via the 100k big node channel (a purchase of my one "expensive" 1,000,000 item).

The same as above, you might be unable to receive that payment, due to the reserve requirements.

I believe to run my store I would need to create multiple giant channels to accommodate any potential payments received...right? So in both cases above, the channel must have enough to receive the payments and cannot receive a payment larger than what is in the channel.

Right, you cannot receive a payment larger than your current incoming capacity on that channel (the remote_balance). As a shop owner, you can actively maintain channels with incoming capacity, but you could also allow customers to open channels with you directly. There are also services forming that allow you to buy incoming capacity, etc.

1
  • That makes sense! Clarifies a lot of things. Thank you.
    – ijdh89
    Jul 13, 2019 at 0:49
0

I believe to run my store I would need to create multiple giant channels to accommodate any potential payments received...right? So in both cases above, the channel must have enough to receive the payments and cannot receive a payment larger than what is in the channel.

@chytrik touched most of your questions, but this is one I would like to expand on. There is currently a proposal of Base AMP that solves the above issue and is likely to be merged shortly into the specs. Instead of having giant channels to accommodate larger payments, that large payment can be broken down into smaller ones and routed across multiple channels that you might have with various participants.

In order to use this feature, you will have to indicate in the invoice that your node handles multi-path payments (MPP) by setting a feature flag. The payer can then find the appropriate routes across channels and route smaller payments through them. When you have received payment onions across channels that sums to (or greater than) the invoice amount, only then will you release the pre-image that matches the payment hash.

You can read more about implementation and future releases on multi-path payments in my answer here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.