How to Operate a Profitable Lightning Node? (or at least not go broke)

After just a few weeks I think I’ve come to the conclusion that running a Lightning Node at this point in time cannot be done profitably. If I’m wrong, please reply.

I have read all of the articles and watched all of the videos I can find. Some ones I’ve found most useful are:

The basic steps I have followed based on my learnings go something like this:

  1. First, study node information available from Amboss and Lightning Terminal to identify peers to connect to. I aim for a mix of channels (both sinks and sources) with
    A. relatively low outgoing fees
    B. lots of good connections & growth
    C. relatively high rank for Betweenness / Hopness / Hubness

  2. I’ve opened 15 balanced channels either using Liquidity Swaps or rebalancing unilaterally after opening, with a capacity of at least 2-5M sats each

  3. I set fees fairly high at first (ie. >500ppm and >10 base fee)

  4. I set MAX HTLC at no more than 500,000 sats (I do this to take advantage of my base fee by allowing the channel to be used multiple times instead of one or two large transactions depleting the liquidity)

  5. Wait and watch for a few hours to see if any movement occurs…

  • If movement occurs, I either leave fees alone or raise them incrementally until activity slows (being careful not to squash it completely)

  • If no movement occurs after a few hours, I begin reducing fees incrementally until liquidity starts to move (I generally use the same fees for all channels but may set certain channel fees higher if they get much higher usage)

  1. When liquidity moves to one side of the channels routing activity stops. At this point I have two choices:

    A. If I have enough funds on-chain I can open new channels that I think might complement my existing channels by pulling or pushing liquidity – essentially rebalancing my unbalanced channels for me.

    B. Alternatively, I can rebalance my existing channels to feed the movement of liquidity and get things moving again.

I currently have 15 channels with 50M sats total capacity.

Finding the right mix of channels that might rebalance themselves has been elusive. I have not figured out how to do this, or if it can even be done at all.

Therefore I’m forced to manually rebalance. However, rebalancing is very tedious/time-consuming – failures happen frequently using RTL, Thunderhub and Lightning Terminal. I know there are scripts to help automate this process, but as a newbie with only minimal command line experience, I haven’t worked up the courage to try to implement this yet.

More importantly, rebalancing is costing me more than the fees I am able to collect – often by a factor of 10-15x.

For example, this week I spent 5,287 sats to rebalance 5,896,030 sats and to open a new 5,000,000 channel. I now have 10,896,030 sats ready to flow. I just need to calculate what fees I should charge. Just to break even I would need to set my rate at 485 ppm, OR limit the MAX HTLC to 200,000 sats (for example) and set fees to 436 ppm + 10 base fee, or 385 ppm + 20 base fee, etc. etc. But I think these rates may be unworkable since I’m not seeing any movement at these levels.

So my questions are:

  1. What could I be doing that I’m not already?

  2. Is there something obvious that I’m doing wrong?

  3. Is it perhaps too early in Lightning Network’s life cycle, or wrong time in the macro market cycle to expect to earn profits from routing? I did some back-of-the-napkin math and figure it will be easier to turn a profit (or at least break even) as the price of BTC increases since we’ll be able to facilitate a higher number of Lightning transactions with fewer Sats. But until then?

I have found some good tutorials, articles, and guides on this forum and others, but I think for Lightning Network to succeed we need many more that dive into the details of how to route profitably; to help newcomers understand best practices around how to choose complimentary peers to channels with, calculate fee rates, etc. That, in addition to vast improvements to the UX/UI of many of the tools currently available. Otherwise I foresee many would-be node operators will get frustrated losing money and simply quit. I want to keep trying, but I also can’t continue to operate at a loss.

Thoughts?


UPDATE:
As noted above, I spent 5,287 sats to put 10,896,030 sats into position – a spend rate of 0.048522%.

After setting my fees as described, today I earned 2,466 sats from 4,987,055 sats forwarded – an earn rate of 0.049448%.

0.049448% - 0.048522% = 0.000926%

Perhaps this means I am heading the right direction.
Hey, it’s slim, but it’s something :wink:


UPDATE:
After 1 month of operation my Lightning node lost 142,315 sats. This includes fees earned from forwards minus my rebalancing fees, loops, and all of the on-chain fees to open 17 channels and to close a few that I shouldn’t have opened.

Perhaps over time I can make up for this initial loss, but I don’t see it. Collected fees from forwards only amounts to 10,018 sats, and to make that happen I had to do a lot of rebalancing. Need to reevaluate.

Would love it if others would share their results and tips for what works / doesn’t work.

3 Likes

Thanks for list of useful links and for sharing your experience !

I am not sure there is a reliable way to operate a node at an operating profit (not including cost of capital you are committing). There may be a few big nodes that have achieved that but even for those I think there would be easier ways to earn a meaningful return than running a routing node.

My experiences are similar to yours but my goal is not to make a profit but to help setup an efficient 2nd layer network that may eventually be able to support large volume/value payments and be a viable alternative to current Fiat-based payments networks.

I see this stage as building the infrastructure (knowledge, nodes, channel volume/size, robustness, redundancy, features, usability) to be able to support broader adoption once market sentiment turns and investments in crypto currencies (especially BTC) increases.

The future is still very much uncertain but for now I am happy to learn, cherish the experience and enjoy seeing the ‘payments routed’ counter going up.

1 Like

Thanks @swizly12. I 100% agree. I too am in it to learn and to help LN grow. To that end I have considered setting all my fees to zero – I did actually try that for a few days but found all liquidity got pulled to one side and then all activity stopped. So I believe active rebalancing is necessary for payments to keep flowing through the network—at least at this early stage—otherwise I’m just running a dead-end node. Since rebalancing costs money, I would think profitability would ultimately need to be the primary motivator for node operators longer term. I was just wondering if others are having a similar experience, or if there are things I can do operate more efficiently. Good to know I’m not alone.

I think that your first mistake was to create channels with very low liquidity. The ideal would be 10M sats or at least 6M.
With only 10M you can open several channels.
Open a 10M one, loop it, and with the one you receive onchain, open another, and another…

1 Like

Why use “Liquidity Swaps” when you can use the existing “Lightning Terminal” App on your Umbrel node?

Thank you @Redin. You’re probably correct about channel size. About half of my channels are 5M and I have one 10M. The others are smaller. The reason I’ve been hesitant to open larger ones is because I have had difficulty rebalancing large channels. Using Thunderhub and RTL I often have to run several smaller circular rebalances of 250,000 or less. Anything larger seems to always fail due to trouble finding a route. Do you have this issue too? If not, what tools do you use to rebalance?

When I say “Lightning Swaps” I’m referring to https://lightningnetwork.plus/swaps. I do this to open channels with other peers who contribute an equal amount of liquidity. That way I don’t have to put up 100% of the liquidity. Does Lightning Terminal also have this feature? Is that what the “Pool” feature is? I thought that was different.

I am also new to this LN adventure but have learned from the best in the area in the group where I get information. I will not use rebalancing now. Right now I’ll open a 10M channel and then use the Loop. This way the liquidity is all on the other side of the channel and I get the return of what I sent, which comes to me onchain.
I go back and repeat everything. I open another one, loop it, get onchain.
So, with the same 10M I open several 10M channels.
(Of course, we will have to discount the onchain fees).
After all the desired channels, I will measure over time the behavior and adjust with rebalancing.

Yes, i suppose is the same.

Thanks @Redin. That’s a good point. I didn’t mention that in my original post but I have also done loop outs so I can reuse the funds to open new channels. This doesn’t solve my lack of profitability though. As you said, you need to account for the on-chain fees. But also, most of my channels tend to move in one direction, so eventually all the liquidity has moved to one side and the only way to get it moving again is to rebalance.

Let me know what you find once you have rebalanced.

I was thinking maybe there is some way to rebalance only when a payment route is required or maybe make the source pay for rebalance. So for example if I want to pay 100K sats and the routes require rebalance it may be an option to pay 0.1-1% 100-1K sats for fees including rebalance. WDYT about it Dr. @c-otto maybe Rene has other ideas to research this :slight_smile:

1 Like