ptarmigan

Lightning Network (BOLT)

View the Project on GitHub nayutaco/ptarmigan

c-lightning testnet

version


Set up nodes in separate computers

Steps

Let’s create a channel

  1. [btc] Edit ~/.bitcoin/bitcoin.conf
rpcuser=bitcoinuser
rpcpassword=bitcoinpassword
server=1
txindex=1
testnet=1
  1. [btc] Running bitcoind
bitcoind -daemon
  1. [btc] Waiting for synchronization

  2. [ptarmigan] Running ptarmd

cd install
./new_nodedir.sh
cd node
../ptarmd --network=testnet&
  1. [c-lightning] Running c-lightning
rm -rf ~/.lightning
./lightningd/lightningd --network=testnet
  1. [c-lightning] Getting node_id
./cli/lightning-cli 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 one block.

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 –> c-lightning

  1. [c-lightning] Generating an invoice
./cli/lightning-cli invoice 100000000 abc def
  1. [ptarmigan] Sending payment
../ptarmcli -r <BOLT11 invoice>
  1. [ptarmigan] Confirming the amount after running it
../showdb -w | jq

c-lightning –> ptarmigan

  1. [ptarmigan] Cenerating an invoice
../ptarmcli -i 20000
  1. [c-lightning] Sending payment
./cli/lightning-cli pay <BOLT11 invoice>
  1. [c-lightning] Confirming the amount after running it
./cli/lightning-cli listpeers | jq