The Lightning Development Kit (LDK) provides the tools to build a node on the Lightning Network. One practical reality of the network is that a payment requires a degree of coordination: for a payment to settle, the sender and recipient need to be online at roughly the same time. A BOLT 11 invoice partially addresses this by requiring the recipient to hand the sender fresh, interactive data, which assumes the recipient is online and their device is unlocked at the moment of payment.
That assumption breaks down for one of the most common things people want to do with Lightning: accept tips or payments on a phone without keeping an app open and in the foreground. Modern mobile operating systems compound the problem. On both Android and iOS, an application is generally not guaranteed any CPU time in response to a push notification unless it falls into a privileged category such as VoIP. In practice, this means a mobile node often cannot wake up to claim an incoming HTLC on its own.
This post describes the async payments protocol, which LDK implements to allow an often-offline node to receive payments without trusting a third party to custody funds, and without anyone encumbering network capacity with long-lived HTLCs.
...read more at lightningdevkit.org
pull down to refresh
related posts
The stupidity devs will engage in to fake async Lightning payments to phones, that shouldn't run lightning nodes in the first place, knows no bounds.
So again, the solution is trust... you trust the LSP to hand out special invoice instead of a normal one... or even just one to themselves.
I found your conversation with @supertestnet on X was helpful.
Super:
Justin:
Super:
Justin:
Super:
Justin:
Super:
https://twiiit.com/SuperTestnet/status/2070734888085377233
I had been putting off learning about async payments so this was helpful. They are like keysend with an LSP protocol for holding. Cool.
If LN works without the node being online, then it sounds to me, like a decoy effect: #1514942