A lnd client for the suredbits api
⚡ radically low fees ⚡ nano payments ⚡ instant confirmations ⚡
You need to install Node.js and npm.
$ sudo apt update
$ sudo apt install nodejs npm
$ curl -sL https://deb.nodesource.com/setup_8.x -o - | sudo bash
$ sudo apt install nodejs
This guide assumes you have Xcode and Homebrew installed.
$ brew install node # installs npm as well
We need bitcoind
, for downloading and interacting with the Bitcoin blockchain.
As of the time of this writing, the bitcoin testnet will take ~25GB of space on your computer's hard drive.
$ sudo add-apt-repository ppa:bitcoin/bitcoin
$ sudo apt update
$ sudo apt install bitcoind
$ brew install bitcoin
Downloading and verifying the Bitcoin blockchain is going to take a while, so you should start that right away.
First, edit your bitcoind
configuration file called bitcoin.conf
. Here is a table to show you where this file should be located based on your OS. If there isn't a file that exists there already, create one.
Operating System Default bitcoin datadir Typical path to configuration file
Windows %APPDATA%\Bitcoin\ C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf
Linux $HOME/.bitcoin/ /home/username/.bitcoin/bitcoin.conf
Mac OSX $HOME/Library/Application Support/Bitcoin/ /Users/username/Library/Application Support/Bitcoin/bitcoin.conf
You need to create a rpc username and password inside of your bitcoin.conf file
daemon=1
testnet=1
txindex=1
rpcuser=REPLACEME
rpcpassword=REPLACEME
For more information on configuring bitcoind please see this page
Start bitcoind
:
$ bitcoind
bitcoind
will now sync the blockhain. This will take a while, typically several hours. You can inspect the log to ensure that progress is made. Depending on where your bitcoin.conf
file is, you can watch your node sync by using tail
. For example, on macOS you can do:
$ tail -f $HOME/Library/Application Support/Bitcoin/testnet3/debug.log
Please see the installation instructions on the lnd repo
To get some free testnet coins, generate a new address and paste it in at the [TestNet Bitcoin Sandbox](https://testnet.manu.backend.hamburg/faucet):
$ cd $GOPATH/src/github.com/lightningnetwork/lnd/
# fund your lnd wallet
$ ./lncli-debug --network=testnet newaddress np2wk
{
"address": "2MzWbX7y124pVWUbZXqbBYfBww9WbLEbPfx"
}
you need to deposit money into the address returned above (it will be different than the one in this README)
# connect to our LN node
$ ./lncli-debug --network=testnet connect 0338f57e4e20abf4d5c86b71b59e995ce4378e373b021a7b6f41dabb42d3aad069@ln.test.suredbits.com
# open channel
$ ./lncli-debug --network=testnet openchannel 0338f57e4e20abf4d5c86b71b59e995ce4378e373b021a7b6f41dabb42d3aad069 1000000
This uses ln-service as the bindings to lnd
There is two important environment variables that need to be set to use this API
LND_CERT
LND_MACAROON
Alex has information on how to get access to these, copying from his README
Run base64 on the tls.cert and admin.macaroon files to get the encoded
authentication data to create the LND connection. You can find these files in
the LND directory. (~/.lnd
or ~/Library/Application Support/Lnd
)
$ base64 tls.cert
$ base64 data/chain/bitcoin/mainnet/admin.macaroon
Copy those values and add them to your ~/.bashrc
file or ~/.bash_profile
on MacOS. Your file should look something like this
#needed for gRPC
export GRPC_SSL_CIPHER_SUITES='HIGH+ECDSA'
#certificate, MAKE SURE NO EXTRA WHITE SPACE ADDED
export LND_CERT=$(tr -d '[:space:]' <<< "PASTE YOUR CERT HERE")
#macaroon, MAKE SURE NO EXTRA WHITE SPACE ADDED
export LND_MACAROON=$(tr -d '[:space:]' <<< "PASTE YOUR MACAROON HERE")
You should be able to start the server with
$ git clone git@github.com:SuredBits/sb-api-lnd.git
$ cd sb-api-lnd
$ npm install
$ npm start