Pages:
Author

Topic: The Lightning Network FAQ - page 55. (Read 33235 times)

legendary
Activity: 2730
Merit: 7065
November 05, 2020, 12:19:20 PM
I am sorry if this has been discussed before. This thread is huge and has 27 pages, it's hard to keep track of everything.

Let's consider the following scenario.
I finally persuade my local grocery store to accept crypto payments. Because of the scalability constrains, we can't use regular on-chain transactions. I have no intentions to wait at the cashier's for 10+ minutes for the transaction to confirm. I am also not interested in paying $10-20 in fees for a fast next-block confirmation, and I need to go and put the damn beer in the fridge. The store on the other hand, won't take 0-confirmation transactions because they know about the dangers of double spending.

The solution - the lightning network.

We open up a payment channel, I do my weekly grocery shopping and make my way to the cashier. When I try to pay, I realize that I cannot do it because:

Why can't I receive coins?

In order to receive Lightning payments, some conditions must be met:

1. Nothing can be received immediately after creating a new payment channel, as ‘room’ for incoming funds has to be made by spending some funds first. A payment channel can be thought of as a full bottle of water: in order to pour something in one first has to pour something out.

1. How do I pay for my groceries if the store can't immediately accept LN payments?
2. Has this been changed and configured differently in the meantime?
3. Are the bottles full at both ends of the payment channel or whose bottle is empty as soon as the channel is created?

     
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
November 02, 2020, 07:28:02 AM
So I have a lightning node with 0 funds, I want to open a couple of channels but would 1st have to send funds to the node wallet.
Can I just run importprivkey in wallet that my node uses and then open channels with those funds? I don't see why it would not work but I'm not sure.

If you need to recharge a node I've got ~ $1,000 in a half dozen channels and would be willing to do a 1:1 swap for on-chain funds.

Quote
Since the mempool is still pretty full I figure it would save me some tx fees.

We could discuss a deferred "repayment" via the block-chain at a later date when the TX fees stop mooning.

Thanks for the offer but I need to open some channels between my own nodes not use other channels.
I should have enough funds in the wallet to open the channels to do the testing that I want at the moment.

-Dave

newbie
Activity: 26
Merit: 5
November 01, 2020, 02:26:46 PM
Thank you PrimeNumber7

That was a useful overview that gives some direction

Sounds like we all may want to keep one eye open for lightning scams on the horizon.......
copper member
Activity: 1652
Merit: 1901
Amazon Prime Member #7
November 01, 2020, 01:45:45 PM


Any recommended atomic swap services? 

Is swap.lightning-network.ro legit?
https://1ml.com/node/03c492f46d8e0a6256bb9c5c42f2aed24717f70a3f39e0961419dee511688e3110
From a technical perspective, it is difficult to tell if a btc <--> lighting btc exchange service is legitimate. You will have to do your own research and use your own good judgment before using one of these services. I understand these services are not closing/opening channels with you to exchange coin for lighting coin. Using them will require you to trust the business you are dealing with.

There are also services that will open a channel with you that has inbound capacity (so you can receive lighting coin) in exchange for a fee. Similarly, you will need to trust this service to follow through on their promises.
legendary
Activity: 3696
Merit: 2219
💲🏎️💨🚓
November 01, 2020, 03:00:34 AM
So I have a lightning node with 0 funds, I want to open a couple of channels but would 1st have to send funds to the node wallet.
Can I just run importprivkey in wallet that my node uses and then open channels with those funds? I don't see why it would not work but I'm not sure.

If you need to recharge a node I've got ~ $1,000 in a half dozen channels and would be willing to do a 1:1 swap for on-chain funds.

Quote
Since the mempool is still pretty full I figure it would save me some tx fees.

We could discuss a deferred "repayment" via the block-chain at a later date when the TX fees stop mooning.
newbie
Activity: 26
Merit: 5
October 31, 2020, 09:33:42 PM


Any recommended atomic swap services? 

Is swap.lightning-network.ro legit?
https://1ml.com/node/03c492f46d8e0a6256bb9c5c42f2aed24717f70a3f39e0961419dee511688e3110

how to use 1ml.com or any other Lightning Network Search and Analysis Engine to verify a channel is cooperating, not likely to shut down unexpectedly, "legit" ?

could not post to Lightning Network Discussion Thread https://bitcointalksearch.org/topic/lightning-network-discussion-thread-4638321 so figured this was the next best place with many of the same contributors.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
October 31, 2020, 05:17:43 PM
I'm not sure what you mean by "gets the coins to the wallet". I'm also new to Lightning, but from my (superficial) understanding, the command I suggested just outputs a JSON object with the balance of that address (not wallet), the blockheight the transaction was included in and a few more fields. Basically is a blockchain explorer from the command line, using Bitcoin Core RPC calls.

In the early early days of LND I had an issue where I just moved the wallet.dat file from one machine to another and although I could spend from the wallet on the box with no issues I could not open a channel with the exact same funds. General consensus at the time was it was something odd in my setup. I never got around to trying it again and forgot about it till I had the idea of importing keys instead of sending funds.

-Dave
hero member
Activity: 1260
Merit: 675
I rather die on my feet than to live on my knees
October 31, 2020, 01:52:36 PM
...

...

Ok so that gets the coins to the wallet, I'm hoping that LND should have no issues with it.
I could just see it not accepting any coins that it did not see coming into the wallet if they were not part of the original HD wallet.
Will check when I get home, if not no big deal just trying to save some fees.

-Dave

I'm not sure what you mean by "gets the coins to the wallet". I'm also new to Lightning, but from my (superficial) understanding, the command I suggested just outputs a JSON object with the balance of that address (not wallet), the blockheight the transaction was included in and a few more fields. Basically is a blockchain explorer from the command line, using Bitcoin Core RPC calls.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
October 31, 2020, 11:43:55 AM
...

...

Ok so that gets the coins to the wallet, I'm hoping that LND should have no issues with it.
I could just see it not accepting any coins that it did not see coming into the wallet if they were not part of the original HD wallet.
Will check when I get home, if not no big deal just trying to save some fees.

-Dave
hero member
Activity: 1260
Merit: 675
I rather die on my feet than to live on my knees
October 31, 2020, 11:03:30 AM
Normally I would just do it and see what happens but the node is on a RPi and when you import a key and rescan the blockchain it takes a really long time.
You're going to like the start_height option I recently noticed:
First:
Code:
importprivkey "privkey" ( "label" ) ( rescan )
Use "false" for rescan.
Next:
Code:
rescanblockchain ("start_height") ("stop_height")
If you lookup the address on a block explorer, you'll know which blocks to rescan.

If you guys talking about bitcoind, then you can run scantxoutset command.

Code:
bitcoin-cli scantxoutset start "[\"addr(address_here)\"]"
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
October 31, 2020, 09:41:52 AM
Normally I would just do it and see what happens but the node is on a RPi and when you import a key and rescan the blockchain it takes a really long time.
You're going to like the start_height option I recently noticed:
First:
Code:
importprivkey "privkey" ( "label" ) ( rescan )
Use "false" for rescan.
Next:
Code:
rescanblockchain ("start_height") ("stop_height")
If you lookup the address on a block explorer, you'll know which blocks to rescan.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
October 31, 2020, 07:11:04 AM
Stupid question which is a follow up to my above post:

So I have a lightning node with 0 funds, I want to open a couple of channels but would 1st have to send funds to the node wallet.
Can I just run importprivkey in wallet that my node uses and then open channels with those funds? I don't see why it would not work but I'm not sure.
Since the mempool is still pretty full I figure it would save me some tx fees.

Normally I would just do it and see what happens but the node is on a RPi and when you import a key and rescan the blockchain it takes a really long time.

Thanks,
Dave
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
October 27, 2020, 09:06:05 AM
And as d5000 said you can manage fees by opening channels at certain times. But if I do keep a bunch of channels open AND fees stay high at some point I am going to empty the smaller channels and only deal with larger liquidity providers. That is going to be the issue.
Because, yeah I can say open this with 1 or 2 sat fee because I know it will open overnight on a weekend. But at some point who wants to plat that game.
-Dave

Quoting myself here because the last few days have proved this true at least for me.
I have a few new channels that I want to open but with the fees what they are since at least Friday it's not going to happen soon.
No, I am not going to send it at a very low fee and "possibly" they will confirm. Just going to sit here and wait for now.

How many other people are doing the exact same thing?

-Dave
legendary
Activity: 3430
Merit: 3080
October 23, 2020, 05:51:03 AM
I believe when Taproot is activated, helping obfuscate the opening of channels, a Lightning privacy-app might be THE killer-app the community is waiting for in my opinion.

that would involve unannounced channels too, Lightning network channels are announced to other nodes by default. Sometimes unannounced channels enable types of attack, but at least in the case of spamming, they help mitigate against attacks.

With good routing algorithms (i.e. involving multipath routes) and effective anti-spam, I would imagine there would fewer benefits to unannounced channels. But this of course means that LN nodes with a complete network-wide routing table still know the channel balances, and so privacy is harmed. IIUC, it's not possible to run the LN effectively if all channels are unannounced, and realistically it's impossible to have entirely private channels (as your channel counterparty always knows the channel exists)

this does not preclude the possibility of having 2 or more Lightning nodes, of course (I would suggest that most people running their own nodes will end up opening a 2nd, if only temporarily to improve anonymization of funds).
legendary
Activity: 2898
Merit: 1823
October 23, 2020, 12:57:03 AM

Once a 2nd major exchange enables LN deposits & withdrawals, all of them will be essentially forced to do it so as not to lose out in the arbitrage battle.

Arbitrage is actually really an excellent point - this could perhaps even be Lightning's killer app, as payments in BTC (be it per LN or not) are still not too popular, but the speculation business with BTC is thriving as never. And it would offer real added value for arbitrageurs.


I believe when Taproot is activated, helping obfuscate the opening of channels, a Lightning privacy-app might be THE killer-app the community is waiting for in my opinion.
hero member
Activity: 1260
Merit: 675
I rather die on my feet than to live on my knees
October 22, 2020, 02:36:05 PM
Hi again...

I was expecting to understand the values on my post above but I think that can wait. I have other questions I need to see if my reasoning is correct.

Is it correct to assume that command fundchannel, is a combination of commands fundchannel_start and fundchannel_complete ??

Also, what would be the options to use in argument announce of command fundchannel_start? I can't see nothing about the options available in the docs (lightning-cli help fundchannel_start)?
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
October 22, 2020, 12:06:10 AM
Once a 2nd major exchange enables LN deposits & withdrawals, all of them will be essentially forced to do it so as not to lose out in the arbitrage battle.
Arbitrage is actually really an excellent point - this could perhaps even be Lightning's killer app, as payments in BTC (be it per LN or not) are still not too popular, but the speculation business with BTC is thriving as never. And it would offer real added value for arbitrageurs.

So maybe Bitstamp customers should spam them with feature requests to try to get it added ASAP? If they already operate a node (and have already more than a year of experience with it), it should not be too difficult for them.

However questionable Tether is as a concept, that would be a pretty remarkable facility for Bitfinex traders to have at their disposal. I thought that Tether had changed into an Ethereum based token though?
Tether currently operates on several blockchains. Bitcoin (via Omni and also on the Liquid sidechain) continues to be one of them, but they added Ethereum, EOS and also some minor altcoins like Tron, SLP, OMG, Algorand and Nano. See https://tether.to/faqs/ .

Tether could also be huge for LN, because once it's possible to transfer an "USD token" around without high delays, the arbitrage business would get a new thing to play with. And it would also perhaps mean that the "minor altcoin" incarnations of Tether would slowly die because they wouldn't offer more transaction speed than the Bitcoin-based TUSD.

But as far as I understand the concept of "tokens on LN", Tether channels would not work for Bitcoin and vice versa. (There could actually exist some magic tech I am not aware of, but how should the HTLC concept work for different tokens with different values if the tokens aren't locked each one separately?) Anyway, it would bring increased publicity for LN. I also do not really like Tether but if it helps ...
hero member
Activity: 1260
Merit: 675
I rather die on my feet than to live on my knees
October 21, 2020, 02:01:02 PM
So, I was supposed to be able to receive sats, at least, up to the amount of outbound liquidity the other node has to me, right?

Correct. That would be the maximum you could receive through that channel.

And if someone else, other than the person who opened the channel with me, tries to send sats to me, it's never granted that the route can be done. That might happen if, for some reason, between the sender and me, there is some break in the routing, yes? Is this accurate?

There could be no route at all between your nodes or some node in the path might suddenly stop responding or the payment could be too large for a single channel to handle. The last one can be mitigated using multipart payments, but most wallets don't support them.

What if there is a route but it needs to go through many many nodes, does that has any influence in the time the sats takes to be available on my side?

Yes, it does. Most of my Lightning payments were instant while others took under 10-15 seconds. Some payments took even longer time, but it didn't happen too often.

Thank you once more.

Ok, I have now tried to make a transaction (once again) from my Bluewallet (installed on my phone) to my Spark-Wallet (installed on my laptop and connected to my node). The first attempt, I got a message saying "In transit" but I received nothing in my Spark-Wallet. After a while, I tried again, got the same message, but this time the payment got in!

Edited:

I would like to understand the numbers stated by the command 'listfunds' and what my Spark-Wallet shows me:

When I run the command 'listfunds' I get this output (I shorted it for convenience and to make the post shorter but everything related to the funds is here, the rest are the open channels):

Code:
"outputs": [
{
"txid": "e86ff22728601036a5e21e08b4fd4322f21d6780fb6cc7d70e947c80118f6b45",
"output": 1,
"value": 14891,
"amount_msat": "14891000msat",
"scriptpubkey": "0014f60c8a2573b4a0379c0b434d4bfe6301fddea9e3",
"address": "bc1q7cxg5ftnkjsr08qtgdx5hlnrq87aa20rclzguk",
"status": "confirmed",
"blockheight": 653341,
"reserved": false
},
{
"txid": "8fe796e151d55aa28736baaf31c14edce933fe1ec322e87e446670e871acd0c8",
"output": 1,
"value": 99546,
"amount_msat": "99546000msat",
"scriptpubkey": "00143f8c1100399cf127db8077ae12e6e4657f59b695",
"address": "bc1q87xpzqpenncj0kuqw7hp9ehyv4l4nd54uzthdm",
"status": "confirmed",
"blockheight": 653617,
"reserved": false
}
],

and my Spark-Wallet shows this:


So, how those these values relate to each other?
legendary
Activity: 1876
Merit: 3132
October 21, 2020, 11:41:45 AM
So, I was supposed to be able to receive sats, at least, up to the amount of outbound liquidity the other node has to me, right?

Correct. That would be the maximum you could receive through that channel.

And if someone else, other than the person who opened the channel with me, tries to send sats to me, it's never granted that the route can be done. That might happen if, for some reason, between the sender and me, there is some break in the routing, yes? Is this accurate?

There could be no route at all between your nodes or some node in the path might suddenly stop responding or the payment could be too large for a single channel to handle. The last one can be mitigated using multipart payments, but most wallets don't support them.

What if there is a route but it needs to go through many many nodes, does that has any influence in the time the sats takes to be available on my side?

Yes, it does. Most of my Lightning payments were instant while others took under 10-15 seconds. Some payments took even longer time, but it didn't happen too often.
hero member
Activity: 1260
Merit: 675
I rather die on my feet than to live on my knees
October 21, 2020, 11:13:05 AM
First of all, is the term liquiddity the same as capacity?

You can use them interchangeably in this context (inbound/outbound liquidity/capacity).

1 - Do I get inbound capacity/liquidity when someone simply opens a channel with me?

Yes, but it's also more complicated. See the last answer.

And an extra question is if this work exactly the same way for outbound capacity. If so, the above 2 questions also answer to the case of outbound capacity/liquidity.

You get outbound capacity when: 1) you open a channel with someone 2) someone opens a channel to you and sends you some coins or routes a payment through you.

I have someone that opened a channel of 100k sats with me (his reserve is 1k sats) but he didn't send any sats to me neither I did to him and I can't send sats from my wallet in my phone into the wallet I have on my laptop connected to my node. The error is always the same: "Does the destination has inbound capacity??"...

While your channel has some inbound capacity now, all incoming payments have to go through the node which opened the channel to you. You are also limited by the liquidity of other nodes in the route.

Thanks a lot for answering all questions clearly. Going to ask a couple more questions that arises as a consequence of previous replies.

So, I was supposed to be able to receive sats, at least, up to the amount of outbound liquidity the other node has to me, right?

And if someone else, other than the person who opened the channel with me, tries to send sats to me, it's never granted that the route can be done. That might happen if, for some reason, between the sender and me, there is some break in the routing, yes? Is this accurate?

What if there is a route but it needs to go through many many nodes, does that has any influence in the time the sats takes to be available on my side?
Pages:
Jump to: