-
Notifications
You must be signed in to change notification settings - Fork 901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
keysend only working with other c-lightning nodes #3968
Comments
Hmm looks like we need to know exactly what |
@ZmnSCPxj I know this peer is on LND v0.10.3 beta but that’s all I know right now. Will ask around to a few others. |
Another is on LND 0.10.4. |
Hmm. Keysend is undocumented, so perhaps we implemented it wrong? @cdecker |
As revealed by the failure of tests in ElementsProject#3936, where we ended up trying to send a partial payment using legacy style, we are not handling style properly. 1. BOLT9 has features, so we can *know* that the destination supports MPP. We may not have seen a node_announcement. 2. We can't assume that nodes inside routehints support TLV. 3. We can't assume direct peers support TLV. The keysend code tried to fix this up, so I'm not sure that this caused the issue in ElementsProject#3968, though. Signed-off-by: Rusty Russell <[email protected]>
As revealed by the failure of tests in ElementsProject#3936, where we ended up trying to send a partial payment using legacy style, we are not handling style properly. 1. BOLT9 has features, so we can *know* that the destination supports MPP. We may not have seen a node_announcement. 2. We can't assume that nodes inside routehints support TLV. 3. We can't assume direct peers support TLV. The keysend code tried to fix this up, so I'm not sure that this caused the issue in ElementsProject#3968, though. Signed-off-by: Rusty Russell <[email protected]> Changelog-Fixed: `pay` will now make reliable multi-part payments to nodes it doesn't have a node_announcement for.
As revealed by the failure of tests in ElementsProject#3936, where we ended up trying to send a partial payment using legacy style, we are not handling style properly. 1. BOLT9 has features, so we can *know* that the destination supports MPP. We may not have seen a node_announcement. 2. We can't assume that nodes inside routehints support TLV. 3. We can't assume direct peers support TLV. The keysend code tried to fix this up, so I'm not sure that this caused the issue in ElementsProject#3968, though. Signed-off-by: Rusty Russell <[email protected]> Changelog-Fixed: `pay` will now make reliable multi-part payments to nodes it doesn't have a node_announcement for.
Indeed there is no official specification for keysend, so I had to reverse engineer it. It was working for a while, but I can't guarantee it hasn't changed on the lnd side. I'll see what I can do 👍 |
As revealed by the failure of tests in #3936, where we ended up trying to send a partial payment using legacy style, we are not handling style properly. 1. BOLT9 has features, so we can *know* that the destination supports MPP. We may not have seen a node_announcement. 2. We can't assume that nodes inside routehints support TLV. 3. We can't assume direct peers support TLV. The keysend code tried to fix this up, so I'm not sure that this caused the issue in #3968, though. Signed-off-by: Rusty Russell <[email protected]> Changelog-Fixed: `pay` will now make reliable multi-part payments to nodes it doesn't have a node_announcement for.
Don't know if this is helpful, but I was trying to do a keysend to my Eclair Mobile wallet version 0.4.12 and it to is failing. |
From my experience it literally only works c-lightning to c-lightning although i haven’t tested since latest release. |
The error message got me thinking that the recipient might not support keysend at all, and checking with my local gossip (which might look different now), it doesn't seem the destination supports it: {
"nodeid": "02f7dcc28e15c0b55238a0f7db02b2082b1c2fa5adf66ff96e79db8f7ae17fe7d3",
"alias": "Satoshi Nakamoto",
"color": "000000",
"last_timestamp": 1606207493,
"features": "02a2a1",
"addresses": [
{
"type": "torv3",
"address": "p3hv5427zr3obj2edec4uva3jvcs37jus5adpxpxy2xw4jwivfm5hvad.onion",
"port": 9735
}
]
} (Notice that So adding the check before initiating a payment, and failing with a more informative error message, like we do in #4236 should address this issue. |
As revealed by the failure of tests in ElementsProject#3936, where we ended up trying to send a partial payment using legacy style, we are not handling style properly. 1. BOLT9 has features, so we can *know* that the destination supports MPP. We may not have seen a node_announcement. 2. We can't assume that nodes inside routehints support TLV. 3. We can't assume direct peers support TLV. The keysend code tried to fix this up, so I'm not sure that this caused the issue in ElementsProject#3968, though. Signed-off-by: Rusty Russell <[email protected]> Changelog-Fixed: `pay` will now make reliable multi-part payments to nodes it doesn't have a node_announcement for.
I have been testing
keysend
and it quite reliably only seems to work with other c-lightning nodes.This recipient for example has keysend enabled and is able to send me keysends but I am unable to return the favor and generally get an error:
The text was updated successfully, but these errors were encountered: