If you’re already deep down the bitcoin rabbit hole and looking to experiment with setting up your own personal lightning node, then this article is for you. This will be written for implementation with Windows 10, and will require your device or external drive to have over 200GB of storage space available.
What is the Lightning Network?
The lightning network is a “Layer 2” solution on top of the Bitcoin blockchain. It allows for p2p, near-instant, and unfairly cheap transactions. This is done by running a Lightning node which is funded with a smaller quantity of Bitcoin, that can open up payment channels to other nodes. This forms a large network of nodes that can route many payments between them ‘off-chain’, with no need to actually confirm the transactions on the Bitcoin blockchain. In the case of a dispute, or simply when a user closes his/her channel, the Bitcoin blockchain will act as the final ‘judge’ to verify all of the small transactions that occurred within the channel.
Essentially, it will allow Bitcoin to move beyond a store of value, and on to becoming a legitimate payment solution for your everyday cup of coffee. There are currently 3 major implementations of Lightning:
Lnd is very developer-friendly but it’s GUI is only in alpha release at the time of writing. C-Lightning has an API from Blockstram called Lightning Charge, and is geared towards developers who want to make business-centric apps on top of it (you can try c-lightning GUIs like Spark or Voltage although they are still very new and experimental). Eclair seems to be the most user-friendly, with good documentation and support, so I will be covering how to install and configure the Eclair GUI.
What are the benefits of setting up a Lightning Node?
- You are helping decentralize both the Bitcoin AND Lightning network
- Send and receive instant Bitcoin payments, from large quantities down to micropayments (smaller payments recommended)
- If you are a merchant, almost no fees compared to typical PoS processors
- You can earn (small amounts) of fees the more transactions pass through your node’s channels
Setting it up
Setting up a Lightning node, even with a GUI, is a challenge for even for the technically literate. Some basic technical experience and patience will be required, but it will be very rewarding in the end. The joke in the developer community is that you have to be #reckless to try it this early, but I think there are enough tools in place at this point to get started — at least with small amounts of money.
Step 1: Download and configure Bitcoin Core
You can find the latest download of the Bitcoin Core GUI here. Verify the signatures with gpg if you want to verify the signatures of the latest release. More info on this can be found at bitcoin.org. Once downloaded, click the .exe file to launch the program.
The entire blockchain will take a long time to download. In the meantime, you can edit it’s configuration file with the appropriate settings. The bitcoin.conf file can be opened in the GUI from Settings →Options → “Open Configuration File”, or in the file system at C:\Users\[user]\AppData\Roaming\Bitcoin
If there is no file in this folder, you will have to right click in the Bitcoin folder and create a new .txt file (which you will then save as bitcoin.conf). Make sure the file type ends up as a CONF tile and not a TXT file. Within bitcoin.conf, you need to paste the following settings:
The last line (depracatedrpc) is only needed when on bitcoin version 0.16 or higher. You should upgrade to the latest version if you haven’t already. The value for username and password should be changed to whatever you choose. Wait for the full blockchain to sync (can take a few hours to a few days), then restart the program to re-index with these settings.
Step 2: Download and Configure Eclair
Download the latest release of the Eclair node GUI here. You will need to open the eclair.conf file and enter the appropriate settings to link the program to Bitcoin Core mainnet. The .conf file can be found at C:\Users\[user]\.eclair. It is hidden so make sure to check “View Hidden Files” under the view tab of the file explorer. Open the file and add these settings:
eclair.server.public-ips = [“xxx.xxx.xx.x”]
The eclair.node-color value is not necessary, but it can be used to pick the hex code for the color that your note will display on various UIs. Emojis can also be pasted in node.alias-name, but if you use them make sure to encode the file in UTF-8 rather than the standard ANSI format. The rpc user and password should match what’s in bitcion.conf exactly. Bitcoin Core must be running simultaneously with Eclair for it to work. There are more settings that are not necessary for what we’re doing, but they can be found here.
You’ll know everything’s working if Eclair opens with the normal GUI and not an error message. The bottom row of the GUI will show you your personal lightning public key, and in the lower-right corner you can confirm you are connected tot he mainnet.
Step 3: Open a channel, send and receive payments
Now all we have to do is open some channels and begin sending/receiving instant lightning transactions! The site 1ML is a great resource for searching nodes and exploring the network. There you can find your node and others, along with the channels connected, stats an much more.
Some popular lightning node addresses are:
Eclair’s own ACINQ node
My own node :)
Once you find a node address you want to connect to, just click Channels →Open Channel and paste it in the “Target Node URI” field. addresses are formatted like emails, except with this format: [public_key]@[ip_address]:9735
The capacity you choose for your channel must be within the available balance of your Bitcoin wallet. The fee rate is the amount you charge for routing payments through your node. You can pick a lower amount to offer competitive rates, but Eclair’s default rate usually makes the most sense since it’s based on network factors. Click “Connect” an you will see your first channel! The “State” field will say WAITING_FOR_FUNDING _CONFIRMED until the transaction is fully confirmed on the blockchain. It will then switch to NORMAL.
Initially, your node will only be able to send payments in the lightning network. To open a receiving channel, you will have to send yourself a payment from another lightning wallet (Eclair also has an Android lightning wallet available), or have a freind/customer pay your node.
Test out your first lightning payments by buying some very cheap articles on yalls.org. Another fun option is to gamble satoshis at lightningspin.com. A comprehensive list of lightning-integrated sites can be found here.
Eclair won’t launch for various reasons
If you are getting errors around connectivity issues, make sure Bitcoin Core and Eclair are allowed though Windows Firewall settings. When installing the app the first time, you will get to a firewall screen, asking if you want to allow the app to run on private or public networks. Both boxes should be checked.
To allow apps through the firewall, go to Control Panel →System and Security →Windows Defender Firewall →Allowed Apps. More firewall configuration instructions can be found on the Bitcoin Core guide.
On the Bitcoin Core GUI, one way to check the firewall is by hovering over the network icon in the lower right corner. If it says 8 connections or lower, your node is not receiving inbound connections. 8 is the default number of outbound connections available, but you should have more.
If this doesn’t work, make make sure bitcoin (and eclair) are allowing inbound and outbound connections. You will need to allow ports 8333 (Bitcoin)and 9735 (Lightning) both inbound and outbound for your device through the router settings. Port forwarding guides for each specific router can be found here. Make sure you also have a static DCHP IP address assigned to your device, so your router doesn’t change your device’s IP Address if it loses connection. Static IP and Port Forwarding guides can be found here or on the Bitcoin Core installation guide.
Can’t find the configuration files
If you can’t find the .conf files, be sure to update your file explorer to show hidden files. Click “View” in the top nav bar of any file explorer and check the “Hidden Files” box.
You may also have to check the “File Name Extensions” box to show and rename the bitcoin.txt to bitcoin.conf manually.
How do I open a return channel to my node on Eclair?
One sure-fire way to bet a return channel to your lightning node is to open a channel to Lightning Conductor’s node. in return for your connection, he will open a .0025 BTC channel back to you.
<!-- Beginning of tippin.me Button -->
<div id="tippin-button" data-dest="TWITTER_NAME"></div>
<!-- End of tippin.me Button -->
Other methods include making an actual sale of an item, sending lighting payments from another self-owned wallet, or advertising your node out on public forums for tip. Tippin.me can give you your own mini-wallet for tips and can me easily ported around to various sites.
Starting a Bitcoin Lightning node clearly takes significant effort. If you made it though all this then congratulations! Feel free to ask questions below, and tips are always appreciated. And as always, stay #reckless.