How to use 3 types of nodes for public and private liquidity
Posted almost 3 years ago by DarthCoin
Many new users are running LN nodes now. But they get into this fascinating world without having a base knowledge about how Lightning Network works and what you should take in consideration as a node operator.
I wrote many guides about using specific apps, nodes, tools etc, you can look into all my Substack page for them.
In this one I will try to explain how I did for my node and how I see it from my point of view. Maybe I am wrong, maybe not. But at least will give a bit more guidance to all those new users that are now jumping into running a node.
This guide will not enter into deep details, is just a bit on the surface to give you as a new user a hint about the direction where to look. Each one later can do his own scenario, taking in consideration some aspects explained here.
Why I run a node?
- to have a personal node, private, in my hands
- to be able to route my own txs (transactions) when I spend sats using LN and not depend on other nodes liquidity
- to be able to help also the network, with liquidity where is needed (merchants, in special small ones running their own nodes and in need for inbound liquidity).
- not interested into "getting rich" from routing fees, actually I lower my channels fees to a certain point that are ridiculous cheap
- help noobs with other nodes and also testing other apps with my node
I consider that we are not yet there where this fee market is enough mature to be taken as a priority. First we need to create a strong network for payments. By suffocating it with high fees and greed will do more damage than good. Some noobs are taking too serious this game of earning sats from routing and sometimes they don't know to use well the scripts and tools for managing fees and that will affect all the rest of the network, sometimes are even disabling channels for routing because they consider them "not profitable". That's just stupid, is totally against the whole concept of LN.
So, as some of you already know, I run an Umbrel node, not on a RaspPi, but on a NUC Brix, DebianOS. This is my "public node". But I run also another node, private, that nobody knows which is. Used for really private stuff. Apart from that I use also Blixt, another type of node, in a mobile wallet. Is a great companion for my Umbrel node!
A combination of a private nodes in triangle
A combination of a private nodes in triangle
So let's dive in into how to manage liquidity for these nodes. This scenario is a proposal, not really need you do it exactly. Is just as a reference for things you can do with LN nodes.
A. Umbrel LN node
Characteristics
This one will be your own "public commercial bank".
This one will be your own "public commercial bank".
- Here will be most of the routing and liquidity. Is your main HUB for liquidity.
- Could be used also for payments (onchain or LN).
- Can be used as base for your own LNDHUB wallets (uncle Jim, with BW LNDHub or LNBits LNDHub.
- Is your own payments public processor. But can be used as "front-processor" for your other payments from Blixt and Private Node.
Liquidity
What really is liquidity? Is practically liquid, water flow and your LN channels are water recipients, pipes. so in order to have a healthy water system, you need to have healthy pipes and clean water. If is dirty and with bottlenecks, your water system will be broken and can end up in bad situations. Keep in mind this aspect.
How do we achieve this healthy liquidity? Choose wisely your peers, the nodes to where you will connect your node and open channels with them.
Not all players in this network are good. Some of them play fair, some not, some are maintaining their nodes in a good status, some don't care too much. But all these aspects will affect you and the whole networks in the same way. If you are connected only to bad nodes/peers, you will get down with them and you will not able not even to do your own txs.
For a home node, is good to have a balance between your total inbound and total outbound liquidity.
No need to have each channel perfectly balanced. That is a myth circulating around. I was testing with perfectly balanced channels and it didn't help at all, just wasting sats in fees paid to re-balance. Some users use scripts for rebalancing. I don't. They use them to earn some sats from arbitraging between peers. I consider this wasting time and sats.
What comes in from a channel, will go out through another one. Keep your channels always online, good fees, good peers and you will never have problems with non-balanced channels.
If you have a good number of channels / connections with many peers and a good ratio between total remote and local balance, you will never have issues with routing payments and txs from other peers. But with just 2-3-5 channels you will find that some of your payments will not be well routed, sometimes you will pay high fees or worse, your txs will never go through.
So, start opening channels with:
- those merchants/LN services that need inbound liquidity. You will get a good peer with good connections that can route your txs but you can also use it to direct payments for his products/services, through that direct channel. Helping small merchants with nodes is helping the whole network, not just you.
- Rings of Fire / LN+ can be a good way to start having some peers, usually they do first balanced channels, for a quick opportunity to be able to send and receive txs. See my list of them here: Awesome things you can do on LN
- Some good BOS score nodes, but use a larger amount of sats for those, like 5-10-20M sats/channel. Then you can loop out half of the funds to have it balanced and also re-use those sats for opening more channels.
- Here I put up a selection list with interesting nodes to have them as peers.
Then just play around with channel fees. I use Thunderhub app because is easy to understand.
Lower your fees per channel when you have most of the funds on your side and increase the fees when you lose more than 50%, keeping a fair balance ratio with your peer fees. Each one is free to use its own fees level. Is a free market, but those acting in greed will always be "punished" and the protocol will skip their route by being too expensive.
- what peers they have, on 2nd and 3rd level
- what fees they use, how often they change them
- how many channels they have
- how many channels they close in a certain period of time. Closing too many means are not so reliable to keep a contract. Opening a channel is a contract. If your peer close it only because after a while it wasn't routing too much (for his calculations) means that is not interested in making LN a payments system, is only looking for quick profits.
Keep your channels open as much is possible. Your node history is very important in a long run. Each of your actions will have a result in time. Close only those channels that are long time offline or the peer is "dead". Those, indeed, are useless channels.
Channels use to start moving sats around after some time and only if that node is in a good shape. If you see that the peer is not opening more channels, is in a stagnation mode, yes, you could close the channel with that "sleepy" peer. A channel that do not have other routes connected, is a dead channel and will not serve you at all. yes you will punish that peer, that's why try to contact it first and ask what are his plans. If is not responsive... kill the channel.
We are still in early phase of Lightning Network, users still do not make so many payments through LN, but is good to be prepared from now, building your own node, make it known, strong, stable, respected. Your node is your own bank, is your own prestige, is not just a game.
B. Blixt LN node (mobile)
Characteristics
- This one will be our "spending bank"
- Pocket bank, most of your small spending payments, on the go.
- Private channels with our own Umbrel / home node
- Private channels using Dunder LSP / Blixt node
- Private channels with other nodes
Liquidity
No need to keep large amounts of funds in it, but enough to have for regular spending.
But keep in mind that opening tiny small channels, you will spend more on fees and reserves. I would recommend this scenario of use:
- First time you use it, open a Dunder LSP channel. See here the guide. This is a great way to start, you get inbound liquidity for a certain amount of deposit into a Dunder channel. So from the beginning you can send and receive sats on LN. You can have more than one Dunder channel, but is better to not abuse with many small ones, you will pay more in fees. better a bigger one or two that you periodically refill.
- Then open a channel towards your own Umbrel / home node. See the guide. This will give you another way to move funds in between, using keysend but also making payments in a more private way, through your own public node, used as first hop.
- Then open channels other LN services as you need. But keep in mind that most of your traffic will be through your own home node, so no need of many channels, just enough to have as backup liquidity.
So keep in mind some aspects of using Blixt node wallet app on your mobile:
- Blixt is a mobile app so will not be always online connected, depends of your OS
- Opening channels from your Blixt towards other nodes will be private channels, will NOT be public (routing channels). So if you want to do normal routing, as you do with a desktop node, Blixt is NOT suitable for this. Blixt is your "private node". You open channels with those services you are using for example, or just your own home node.
- Any LN node in order to be functional need to have its peer channels online/active
- So, before doing any txs with Blixt, be sure your channel are active/online. Once you open Blixt, don't jump directly into making txs. Be patient, let it to sync and connect first. It doesn't take too long. Go to Lightning channels and check them, in special if you are using Tor connection. These steps are explained in this guide.
C. "Secret LN Node" (optional)
Characteristics
- This one can be your "hidden bank"
- Never published and linked to your identity
- Working in background as a normal unknown Tor node.
- You can do many things with it. Things that you can't do with previous nodes or you do not want to be public at all.
- Can be a simple LN node, no special machine. See here a list of nodes software. For example if your main node is not Umbrel, is RaspiBlitz, you can run two LN instances on same machine (LND and C-Lightning). Soon also Umbrel will allow it.
Liquidity
You can have also public channels for some routing, but mainly will be with private channels. Is up to you how you want it. But keep in mind: never promote it in public spaces and link it to your identity, to any identity (real of false).
This node you will use it mostly for private swaps, private transfers, moving funds around or even small routing in "unknown mode".
No need to have a lot of funds in this node, all are transitory here.
You can choose some of the mentioned nodes in this list, as peers, but mainly this node will be connected to your other nodes Umbrel and Blixt, with private channels.
Use your imagination about how to use this node. Is very useful if is used in the right way.
HAPPY LIGHTNING !
2 Comments
μbolt|lnd wrote almost 3 years ago
Is running two nodes on local network generally okay, given bandwidth is enough. Like:
lnd node over tor (on one machine)
lnd node over tor (on another machine)
?
lnd node over tor (on one machine)
lnd node over tor (on another machine)
?
rkfg wrote almost 3 years ago
Remember, you should never receive any money to your private node from anyone you can't trust with this information. Invoices encode the node ID in them, and if the target node is only available through private channels, the invoice will contain the last hop before it (your public node in this setup) as a routing hint. The channel ID (that's included in the invoice) will also deanonymize your on-chain TX for the private channel. This ID isn't in the public channel graph so it can't be looked up on public LN explorers but it's absolutely possible to decode it manually as block number 00 tx index 00 tx output and then find the corresponding tx and analyze the chain further.
Unfortunately, until rendezvous routing is implemented and widely used this can't be fixed. Payers are always anonymous, payees are always not. However, I can't find any recent information about this issue. I remember it was linked to PTLCs that are best implemented with Schnorr signatures that Taproot now has enabled. So maybe in the future it will become a reality but for now always remember that whenever you receive money via LN you disclose some details about your nodes and on-chain transactions.
Unfortunately, until rendezvous routing is implemented and widely used this can't be fixed. Payers are always anonymous, payees are always not. However, I can't find any recent information about this issue. I remember it was linked to PTLCs that are best implemented with Schnorr signatures that Taproot now has enabled. So maybe in the future it will become a reality but for now always remember that whenever you receive money via LN you disclose some details about your nodes and on-chain transactions.
Please login to post comments.
Latest news
Let's have some fun with Lightning Network!
Posted about 3 years ago
Lightning Network is awesome!
Posted about 3 years ago
A great companion for your public node - Blixt BTC ⚡️ LN Node & Wallet
Posted about 3 years ago