Open kn0wmad opened 11 months ago
Here's how I migrated a CLN node from my Raspiblitz to StartOS, keeping the channels alive:
On StartOS, set up SSH key for the root user:
# Switch to root
sudo su -
# Generate key
ssh-keygen -t ed25519 -C "root@startOS"
# Add the key to the SSH agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Show the public key
cat /root/.ssh/id_ed25519.pub
Copy the public key and switch to the Raspiblitz:
# Add StartOS public key to root's authorized_keys - edit the file and insert the copied key
sudo vim /root/.ssh/authorized_keys
# Stop Core Lightning on Raspiblitz
./config.scripts/cl.install.sh off
The last step, stopping Core Lightning on Raspiblitz, is very important. Ensure it is stopped using sudo systemctl status lightningd.service
!
Before migrating, I brought up a fresh install of CLN on StartOS, so that I knew where to copy stuff. Not sure if this is necessary, but I did it like this to ensure the directories are setup correctly and I'd advise you to do the same.
Once CLN starts up correctly, stop it on StartOS as well.
/mnt/hdd/app-data/.lightning/bitcoin/
/embassy-data/package-data/volumes/c-lightning/data/main/bitcoin/
On StartOS CLI:
# Switch to root
sudo su -
# Enter the CLN main directory
cd /embassy-data/package-data/volumes/c-lightning/data/main/
# Just in case, backup the original files
cp -r bitcoin bitcoin-backup-original
# copy files over
scp -r root@YOUR_RASPIBLITZ_IP:/mnt/hdd/app-data/.lightning/bitcoin/* bitcoin
You might not need to copy all the files, these are the ones you'll want at least though:
accounts.sqlite3
emergency.recover
gossip_store
hsm_secret
lightningd.sqlite3
keys.clboss
(in case you've used clboss on Raspiblitz)You might want to also adapt the config file to fit what you had before on Raspiblitz. Compare these files and adjust them, e.g. by replacing the StartOS alias with the one you had on Raspiblitz:
/mnt/hdd/app-data/.lightning/config
/embassy-data/package-data/volumes/c-lightning/data/main/config
Afterwards I simply restarted CLN on StartOS and kept an eye on the Core Lightning Service Logs.
Amazing steps! Was able to migrate following the instructions.
The only hiccup I encountered, was that my hsm_secret file was encrypted, and Start9 seems to not support that? CLN would just keep restarting in loop, and when I looked at the logs, it said the hsm_secret file was encrypted. I tried to modify the config file by adding:
# wallet
encrypted-hsm
That didn't work. As soon as CLN restarted, it would wipe that addition from the config file. In the end, I had to basically recreate my hsm_secret using the hex backup, so it was unencrypted, then it worked. The steps to do that are: https://youtu.be/fvB1SmY-y98?si=UEUc-oXRpAty-iMU&t=499
If you don't have the hex backup, then it would be a problem.
@50egtftz were you coming from a Raspiblitz as well?
If the hsm_secret is encrypted the password would need to be passed to lightningd at startup, however this is not currently possible with cln-startos as startup flags in the docker_entrypoint.sh
cannot be intercepted to add the password. As you found, saving a decrypted hsm_secret is probably the best workaround at present.
https://docs.corelightning.org/docs/recovery