ptarmigan

Lightning Network (BOLT)

View the Project on GitHub nayutaco/ptarmigan

lnd testnet

version


Set up nodes in separate computers

Steps

Let’s create a channel.

  1. Running bitcoin node
rpcuser=bitcoinuser
rpcpassword=bitcoinpassword
server=1
txindex=1
testnet=1
testnet=1
txindex=1
rpcuser=nayuta
rpcpass=nayuta
rpcuser=nayuta
rpcpass=nayuta
[Application Options]
debughtlc=true
maxpendingchannels=10
no-macaroons=true
debuglevel=trace
nobootstrap=1

[Bitcoin]
bitcoin.active=1
bitcoin.testnet=1
bitcoin.node=btcd
  1. Running bitcoind/btcd
bitcoind -daemon
btcd&
  1. Waiting for synchronization

  2. [ptarmigan] Running ptarmd

cd install
./new_nodedir.sh
cd node
../ptarmd --network=testnet&
  1. [lnd] Running lnd
rm -rf ~/.lnd/data
lnd --no-macaroons
lncli --no-macaroons create
  1. [lnd] Getting node_id
lncli --no-macaroons getinfo
  1. [ptarmigan] Creating fund-in transaction
../pay_fundin.py 1000000 0
  1. [ptarmigan] Starting Channel Establishment
../ptarmcli -c [PEER NODE_ID]@[IPv4 ADDR]:[PORT]
../ptarmcli -c [PEER NODE_ID] -f fund_yyyymmddhhmmss.conf
  1. [btc] Waiting for generating a block

The channel is gererated after reaching three blocks.

When status is established in a result of ptarmcli -l, we can confirm that if the channel is generated.
Combining watch and jq is also available for observing it.

watch -n 10 "../ptarmcli -l | jq '.result.client[].status'"

Now we will move on how to send payment.

ptarmigan –> lnd

  1. [lnd] Generating an invoice
lncli --no-macaroons addinvoice --amt 100000
  1. [ptarmigan] Sending payment
../ptarmcli -r <BOLT11 invoice>
  1. [ptarmigan] Confirming the amount after running it
../showdb -w | jq

lnd –> ptarmigan

  1. [ptarmigan] Cenerating an invoice
../ptarmcli -i 20000
  1. [lnd] Sending payment
lncli --no-macaroons payinvoice <BOLT11 invoice>
  1. [lnd] Confirming the amount after running it
lncli --no-macaroons listchannels