ptarmigan

Lightning Network (BOLT)

View the Project on GitHub nayutaco/ptarmigan

eclair 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
eclair.bitcoind.rpcuser=bitcoinuser
eclair.bitcoind.rpcpassword=bitcoinpassword
eclair.api.enabled=true
eclair.api.password=xxxxx
  1. Running bitcoind
bitcoind -deprecatedrpc=addwitnessaddress -daemon
bitcoind -daemon
bitcoind -daemon
  1. Waiting for synchronization

  2. [ptarmigan] Running ptarmd

cd install
./new_nodedir.sh
cd node
../ptarmd --network=testnet&
  1. [eclair] Running eclair
rm ~/.eclair/eclair.log  ~/.eclair/eclair.sqlite  ~/.eclair/network.sqlite
java -jar eclair-node-0.2-alpha10-0beca13.jar
wget https://raw.githubusercontent.com/ACINQ/eclair/master/eclair-core/eclair-cli
chmod u+x eclair-cli
  1. [eclair] Getting node_id
./eclair-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 two blocks.

When status is established in a result of -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 –> eclair

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

eclair –> ptarmigan

  1. [ptarmigan] Cenerating an invoice
../ptarmcli -i 20000
  1. [eclair] Sending payment
./eclair-cli send <BOLT11 invoice>
  1. [eclair] Confirming the amount after running it
./eclair-cli channels
(getting channelId)

./eclair-cli channel <channelId>