Running an LN Node involves a certain level of risk and there is a possibility to lose funds however by following some simple steps you could drastically reduce the possibility of losing funds.
Static Channel Backups (SCB)
LND can store a backup file of your channels using a method called Static Channel Backups (SCB). Instead of trying to maintain the latest channel state, the static channel backup package will attempt to notify remote peers to force close the channel. This will prevent users from accidentally broadcasting an old state and allow them to close out and receive their local balance. Note that when you use an SCB you will receive your funds fairly quickly as the time lock for force closures will only apply to the peers initiating the force closure and not the other peer.
An SCB file is updated when a channel is opened or closed. Channel information is added to the SCB when it's opened and is removed from the SCB when it's closed.
IMPORTANT NOTE: SCBs will not restore your node back to normal, they are only a way to recover all the funds in your on-chain wallet and the funds on the local side of your channels (off-chain).
How to obtain an SCB?
There are several ways to obtain an SCB.
- Using the BoS Telegram bot (recommended): Umbrel - Installing BoS
- Umbrel users: Can contact Umbrel for receiving your SCB if your node goes down.
- Non-Umbrel users: Using ThunderHub, there is an option to download the latest backup from the tools option.
- Using lncli: lncli exportchanbackup
BOS Telegram is a recommended way because it automatically sends you an SCB file every time a channel is opened/closed. The other methods are manual processes and there is a risk of not maintaining the latest backup.
Shit happens! If your node ever goes down and you can't bring it back up again:
You still have access to your node
You will need your 24-word cipher seed and the SCB. Follow these instructions (Use lncli restorechanbackup).
You don't have access to your node
In this scenario, for example, if your node has been destroyed in a nuclear attack, you will need to start a new node to recover funds.
You will need your 24-word cipher seed and the SCB. You can set up a new node in Neutrino mode to save time. Neutrino is a lightweight client that allows you to run an LN node without Bitcoin Core. You can create a new Neutrino node by following these instructions by Alex Bosworth. These instructions are for creating a node on AWS EC2, however, you can create one on your laptop/desktop or on a Raspberry Pi.
After you start a new node on Neutrino, you can follow the same recovery instructions. (Use lncli create -multi_file=channel.backup)
Note: Replace channel.backup with the name of your backup file.
ALL HOPE IS LOST (No SCB)
If you don't have an SCB and all you have is your 24-word cipher seed, there is a possibility to recover your funds (no promises).
First, contact all your peers and ask them to force close on you manually.
After the force closure is confirmed, follow these instructions.
Node goes down during an in-flight HTLC
If there was a payment that was in-flight that was being routed through your node or payment you were making and your node goes down and does not come back up, sorry, there is no way to recover funds that are stuck in the HTLC as of now but you can recover all the other on-chain and off-chain funds. This is probably a very extreme scenario.
You initiated a force closure, funds are still stuck in time-lock
If you initiate a force closure, the funds are locked for a certain number of blocks. If the node goes down during the time-lock period of a force closure initiated by you, unfortunately, LND has a bug today which removes the channel details from the latest SCB before the time-lock expires. The way to recover these funds would be to use an older SCB that you might have before the channel details were removed and use it start the recovery as shown in the previous steps and you will receive your funds back to your on-chain wallet after the time-lock expires. BOS Telegram bot can be a real savior in this scenario because the chat history with the bot will have older SCBs that you can use to recover funds. Lightning Labs say they will be fixing this in 0.14.0-beta.
If you don't have an older SCB, unfortunately, there is no other way as of today to recover those funds, this also is an extreme scenario.