A noob’s guide to running Bitcoin Lightning
It’s easy to fall into the crypto is full of finance bros and tech genius camp. And fair enough, there is a lot of both in this industry, which can seem intimidating. But there are also increasingly others with skill sets like me.
I studied linguistics at University and dreamed of becoming a classical guitarist and later a Journalist. Neither worked out. Now I am working in Marketing for a blockchain startup — despite having had zero clue of blockchain until 2018. If you read this and think, “That’s me now,” and you need some nudge, it’s never too late. It’s a super-fascinating space, and we need lots of people with different backgrounds.
The easiest and most common entry point into crypto these days is probably buying something on exchange and trading. But that’s not really what crypto is about for me. It’s more than just a quick 10x. It’s about empowering people to transact whenever they want, without having to pay crazy fees to some intermediary, just because their family happens to live at the other end of the world.
If you have tried using the Bitcoin network, you might notice that transactions take time to go through. Block time, the time it takes to create new blocks is 10 minutes. Yet often, more than one confirmation is required for your funds to be truly yours. So you can end up waiting longer. Very fun if you want to buy a hot drink with Bitcoin.
On the bright side, if you use Ethereum to send money and then Bitcoin, you will get a moment of happiness when seeing the “low” fees. The main bitcoin network isn’t just slow but also doesn’t scale sufficiently to become a truly worldwide payment system. To solve that, smart devs created the Lightning network. Without going into depth, it’s a second layer to Bitcoin that allows individuals to send their payments directly off-chain without going through the slow mainchain. There’s lots of awesome tech and magic involved in making it happen, including something called Hashed Time-Locked Contracts. You can read my low-down of Lightning below:
Why did I decide to run it?
Short answer: I like to trial error and do things instead of just reading about them.
A bit longer: It’s pretty cool not to rely on another entity to run your blockchain node. If you leave it all to exchanges or some other person, that’s missing the point. We have this fantastic technology to take charge of our own funds and transactions. Why not use it. And unlike running a Bitcoin mining node, lightning nodes seem a lot more accessible (it’s not like I want to burn through my money and boil the Ocean 😏)
Run your own Bitcoin Lightning Node & channel — Noob Edition
In this first attempt, I have used very accessible tools that don’t require using the Command Line or accessing your Server using Linux.
What you need:
- Some amount of Bitcoin (because you need to fund your Lightning channel down the line).
- A bit of Fiat Money (or more Bitcoin) to pay for LunaNode
- Luna Node — a cloud provider. Don’t worry. It might sound intimidating, but it is straightforward.
- ZeusLN App
- Create an account on LunaNode
Register with an email address and password. Add credits to your account. I added $50, which should last for at least five months, as they charge roughly $8/monthly. Once your payment has gone through, you’re all set.
2. Create your API key
If you think wtf is an API key, no worries. I have been there too. API = Application Programmable Interface provides a way for other Services to interact with your Server. You can find that in the API section. Leave the page open you will need the information.
3. Go to https://launchbtcpay.lunanode.com/ and enter your API ID and API key.
Note that your ID will show up at the bottom, but your API key, when generated, is in a green box at the top. It confused me when first doing it.
So far, all is going well.
4. Pick a domain.
If you own a domain, you can use that. Alternatively, use the automatically generated one. I went with the generated option, as it seemed easier.
5. Pick Bitcoin as a currency, the Lightning Implementation, and choose your VM plan
You can, of course, also add all the others if you want to, but to run Lightning, just Bitcoin works.
Under Lightning implementation, chose “LND.” It’s the most common implementation and is widely supported. Why are there different ones? Well, this is the beauty of open source. Anyone can come up with one.
When choosing the VM plan, I went for 2GB RAM, sufficient to run a lightning node (probably not for running all the other currencies).
If you are not patient, you can check the box for “Accelerate initial blockchain synchronization.” It’ll cost another $3.
I like to think of myself as a patient person, so I didn’t bother with that.
6. Click “Deploy VM” and wait for a few minutes.
You’ll see your BTCPay Server URL on the next screen; it’s a good idea to copy it. The VM (Virtual Machine) takes a few minutes to load up. Once it is, you will be able to load up the following interface with the Domain you just copied.
7. It should look something like this:
8. Wait for 2–3 days if you didn’t pay for fast sync. Be amazed by how much data is used.
I knew that the Bitcoin Blockchain was immense, but I had never tried to sync it before. And synching doesn’t just mean loading up all transactions but also checking for consensus rules. My node was busy for over two days.
Here is an impression of the progress on the second day:
9. Congratulate yourself for your patience. (optional)
Also, you are now running a Bitcoin Lightning Node — not everyone can say that. 🙌
10. If you haven’t already, install ZeusLN App
11. Connect to your node
Initially, I tried getting set up with Zap. Still, unfortunately, I couldn’t connect with my node, and even extensive googling of the error message didn’t surface anything except for people posting the same issue in Github, but without a fix. Sometimes we have to just switch.
11.1 To connect your App with your node, go to your BTCPay Server, and click on Services. You can find them in the Server Settings.
11.2 Click on “See information” for the LDN (REST Server).
11.3. Click on the Green Button that says “Show QR code.”
11.4. Open the ZeusLN App and click the Get started button on the Homescreen (I forgot to take a screenshot 😭). It will guide you to the Node Configuration.
11.5 Instead of bothering with filling out all the fields manually, scroll down and chose the “Scan BTCPAY CONFIG” button.
11.6 Scan the QR Code and ✨ your node details will be populated and you can “Save Node Config.” Hooray, you’re now connected to your node.
12. Send funds to your ZEUSLN app.
To send Bitcoin to your ZeusLN App, open it and click on the on-chain button. When you do, you’re offered three options. Pick, receive and generate a Bitcoin address. (I assume that you do not yet have any Lightning Sats, since that’s kinda the point of this post. If you did, you could go for the lightning option and then transfer directly through Lightning from an exchange; or maybe a friend who already has Lightning).
Note, it might take a few minutes (by that, I mean more than 30) for your Bitcoin to arrive and be shown as confirmed. Luckily though, you can check where your transaction is at any time, thanks to Blockexplorers.
Once your Bitcoin arrives, move on to create a Lightning Channel.
13. Creating a Lightning Channel
Of course, there are always two people involved in creating a Lightning channel, so you’ll need a second person (node) to connect to.
If you have a friend already running Lightning (I could be that friend😜 ), you can create a channel with them. If not, you can use websites like Amboss Space to research nodes to connect with. I decided to go for WalletOfSatoshi because
a) they have a cool name — my dad is also called Satoshi
b) they have a lot of channels (well-connected)
c) they seem very legit and have been continuosuly growing.
In case you still find that questionable, check out this explanation for more context
In practice, on the ZeusLN app, you simply click on the icon at the top left (three lines) and then click the “+” symbol. Then you’re guided to the “Open Channel” screen. On it you’ll enter the details of the node you connect with.
Instead of entering them all manually, I used the QR code option and scanned the code as displayed on Amboss Space. Another website I found useful to investigate was 1ML.
When all information is filled in click open channel and wait for it to go live.
Btw, the first opening of the channel will cost a small transaction fee. Eventually after minutes or hours (for me it took a couple hours to be fully confirmed and live) you will have your first lightning channel.
14. Be amazed that suddenly you have Bitcoin on Lightning
You can check on your channels at any time, create invoices to get people to send you Sats and add other remote nodes.
I hope this is useful for anyone trying to set up Lightning, but without all those technical skills you’d traditionally associate with doing those things.
And don’t forget, if you want to open a lightning channel with me hit me up. The more the merrier 🙌