This guide will take you through setting up a machine running ubuntu/debian as a lightning network node.
1. Install Bitcoind
$ sudo add-apt-repository -y ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install -y bitcoind
2. Install C-Lightning
c-lightning is blockstream’s lightning network daemon.
$ sudo apt-get install -y \
autoconf automake build-essential git libtool libgmp-dev \
libsqlite3-dev python python3 net-tools
$ cd /opt
$ git clone https://github.com/ElementsProject/lightning.git lightningd
$ cd lightningd
$ make
3. Configure Bitcoind and C-Lightning
Create a file at ~/.lightning/config
with the following contents.
# network=testnet # uncomment to run on testnet instead of mainnet
Create a file at ~/.bitcoin/bitcoin.conf
with the following contents.
# testnet=1 # uncomment to run on testnet instead of mainnet
printtoconsole=1
server=1
txindex=1
4. Sync with the blockchain
This step will take 1-4 hours depending upon the speed of your internet connection.
Run the bitcoin daemon.
$ bitcoind -daemon
In another terminal window run the lightning daemon.
$ lightningd
Check everything is running correctly.
$ lightning-cli -H getinfo
{
"id": "07798d536c58ede3d3a150ba89679e2dc78a3a0966074024ad4081367abda76719",
"port": 9735,
"address": [
{
"type": "ipv6",
"address": "edc7:c9f:dc33:5922:21b2:f0d0:2a02:4f40",
"port": 9735
}
],
"version": "v0.5.2-2016-11-21-2438-g1fe79df",
"blockheight": 1290015,
"network": "testnet"
}
Check the blockheight
of your target blockchain using an explorer to discover how far through the syncing process you are.
Conclusion
You’ll want to be running your node on machine that is permanently switched on and connected to the internet. Restarting the daemons even after they’ve downloaded the blockchain takes a long time as they have to reindex transactions in memory. Furthermore, you’ll want your node constantly available so it can accept and route payments, earning you BTC.
Personally I’ve used an old laptop which I leave switched on and connected to my router 24/7. For convenience I’ve set up ssh access to it so I can make payments using it. Check out my guide on how to make lightning payments to learn how to do this.