-
Notifications
You must be signed in to change notification settings - Fork 125
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
[bug]: Asset Channel Payment Fails with "FAILURE_REASON_NO_ROUTE" #1378
Comments
The issue is that all asset channels are a sub type of Taproot channels. And because those look differently on chain than previous channel types, we need an update to the specification for those to be announced to the network. Since the idea is that asset channels are only used "at the edge of the network", that would mean that the "core" of the network would be made up of normal, non-asset public channels. So in your scenario, the channel between B and C should be a normal, BTC-only public channel (of the Then B and C would be so-called "edge nodes" that convert from/to assets for their end-user nodes A and D. |
Thank you, I understand now, but why was A able to successfully pay when I created an asset invoice using C? |
Because A knows about the channel AB and the invoice contains a "route hint" for the channel BC, which completes the route. But if you try to pay D, then the invoice route hint only contains CD and A is missing the information for the channel BC (it won't remember those channels that were previously in invoices). Closing the issue as "won't fix" as asset channels at the edge will likely remain private even in the future. But feel free to comment further if you have more questions. |
Thank you very much, I think I have a general understanding now. |
I encountered an issue with the asset channel. Every time Alice makes a payment to Bob, it always carries 354 satoshis. Is it possible to configure this amount to be reduced further? |
No, that's the minimum amount to be above the dust limit. See #888. So currently that's by design until a more custom solution is implemented. |
Why does this error occur? |
At first, the error was: Now, the error is: |
Now there is another change: |
Sounds like things just need to confirm? Not sure what you're doing that the number is going up. |
When we open the channel and set the fee rate to 3, how much transaction fee will be charged for a normal channel opening? Do you have the transaction hash for a successfully opened channel with the fee charged? Could you provide it as a reference? |
I am currently testing the opening of an asset channel on the mainnet, and the issue I'm encountering is with the transaction fee. I would like to understand how much transaction fee will be charged when I set the fee rate to 3 for a normal channel opening. |
It depends on how many inputs and outputs there will be, and of what type they are.
This is an example transaction with a P2WPKH funding input and a P2TR change output and an asset change output: 8234b4861d48506095618a6fe3df9427f5a6d6083160c6f6d621a7bc785d3946 When you say "fee rate of 3" I assume you mean sat/vByte (Satoshi per virtual byte)? |
"Thank you for your help. Now I’m encountering a new error, but I’m puzzled as to why this error occurs: On this node, I have already configured the following: lnd.protocol.option-scid-alias=true |
It means the node you're connecting to (027208d43d94fa830417a0e730d12cd11996d5cd62df2e210cdc48464feaafd3bc) does not support asset channels. |
"Why? I have configured the settings to enable asset channels, and the version is correct. I can also find the asset channel commands in the command line. Are there any specific requirements for the configuration in the mainnet? I really can't understand why this error is occurring." |
So you're saying both nodes are your nodes and using this config and version? And are both running with |
{ |
Sorry, it's my fault. The issue occurred because the channel.db file was previously replaced before opening the channel at this node. |
I received the following error when generating an asset channel invoice on mainnet:
However, I did not configure these options on mainnet. Can I simply set them on mainnet, or do I need to set up my own price oracle? If I need to set up my own price oracle, how should I go about doing that? |
You can use someone else's price oracle, for example: https://docs.ln.exchange/price-oracle |
If I want to change the asset channels between B and C from private to public, is there any way to achieve this? The specific scenario is as follows: I have four nodes, A - B - C - D. A is the seller and needs to sell the asset to D. B is the intermediary, and C (which could include multiple nodes like C1, C2, etc.) is the supplier. The process flow is A -> B -> C -> D. Now, we want to find the optimal channel between B and C, but the channel between B and C is private and not visible. We want to change the channel to be public and visible. Is there a way to implement this process? |
What I mean is that I want to change the asset channel between B and C to be publicly visible, instead of using a BTC channel. How should I go about doing this? Could you offer me some advice on how to achieve this? |
You cannot. Asset channels cannot be public at this point, as that requires a network-wide rollout of this protocol upgrade: lightning/bolts#1059 |
If my asset channel database file is mistakenly deleted and my local node can no longer find the asset, and in this case, the peer node that established the channel forcibly closes the asset channel, will the assets and satoshis in the channel be refunded to my node? |
Not automatically, no. The usual backup and restore procedures that exist for normal LN channels are not yet in place. There can be some manual actions to attempt to restore, but that is rather complicated and requires the cooperation of the peer. |
Does this mean that once the channel is closed by the peer node, the sats in my channel can no longer be returned to my node? |
It depends on what database file was deleted. But yes, with asset channels a database loss currently means high probability of loss of funds. See /~https://github.com/lightninglabs/taproot-assets?tab=readme-ov-file#mainnet |
I created four litd nodes named A, B, C, and D, and all of them hold the same asset. I established asset channels between A and B, between B and C, and between C and D using the same asset. Now, I generated an asset invoice on node D and attempted to pay it from node A, but the payment failed with the error: "Payment failed: FAILURE_REASON_NO_ROUTE"
The text was updated successfully, but these errors were encountered: