現(xiàn)在我們可以在本機上建立第二個節(jié)點粒竖,第二個節(jié)點的建立有一些不同氧骤,我們一步一步來呻疹。
將第一個節(jié)點的比特幣同步目錄復制一份作為第二個節(jié)點的同步目錄
在我這里是將f:\temp\btctestnet
復制為f:\temp\btctestnet2
,復制同步目錄可以免于再次同步區(qū)塊鏈语淘。新開一個
ubuntu
窗口滓侍,并新建一個用戶
a.sudo adduser nu
新建一個nu
用戶
b.su - nu
切換到這個用戶-
開啟
bitcoind
广鳍,并同步區(qū)塊鏈bitcoind -daemon -testnet -port=17195 -rpcport=17495 -datadir=/mnt/f/temp/btctestnet2
注意這里為了避免端口沖突术羔,重新設置了兩個綁定的端口膝蜈。
-
等待區(qū)塊鏈同步完成
因為區(qū)塊鏈目錄是被復制的,所以同步過程會很快完成吕粗,同樣可以用getblockchaininfo
可以看到同步進度bitcoin-cli -testnet -rpcport=17495 -datadir=/mnt/f/temp/btctestnet2 getblockchaininfo
注意這里的rpc
端口需要指定纺荧,datadir
指向新的目錄
- 安裝
c-lightning
這一步的過程與第一個節(jié)點相同
注:如果你遇到
user is not in sudoer list
錯誤,可以用sudo -i
切換到root
用戶颅筋,并將nu
用戶添加到/etc/sudoers
中宙暇。
-
啟動
c-lightning
,并連接bitcoind
lightningd/lightningd --testnet --bitcoin-datadir=/mnt/f/temp/btctestnet2 --log-level=debug --bitcoin-rpcport=17495
注意這里的端口和目錄
新建地址
這一步也與第一個節(jié)點相同-
獲取測試比特幣
之前那個faucet
再次轉賬需要12小時议泵,但是我們可以從第一個節(jié)點直接轉賬到第二個節(jié)點占贫。
在第一個節(jié)點的ubuntu
窗口中輸入:cli/lightning-cli withdraw 第二個節(jié)點中某個比特幣地址 50000
這里轉賬50000
,單位也是聰(satoshis
)
命令會輸出一個txid
先口,這個是交易id
型奥,可以在這里查到,等待交易確認就可以用listfunds
來查看
sky@willw:~/lightning$ cli/lightning-cli withdraw tb1qh7r74r4mck729arzs36ua070p7v0w9dlfqp5tl 50000
{
"tx": "02000000000101ddcde054e19e805b711ba1adc2914f66f884bd0d72dc666d8365518ba8e606ca0100000000ffffffff0250c3000000000000160014bf87ea8ebbc5bca2f4628475cebfcf0f98f715bfba11fe00000000001600144e4cf8601882533d6b227a5454498c5d6b7a90d9024730440220120b850487bbe944e1311d52e9b96e8033eb08bc8a81b461cfe2ac66b137bc6b02206726c473fb79fb75f10638fcc5f2f5c30d607cf379a5d801291586acb72dd6460121020e974fa6300b34cc1b3039358456a141db8284d8feb81171ebef9a61231d603d00000000",
"txid": "0fda9d772cd6b8c391f3663643502a6428f014dcaaed69b3bcd60e00b8c6a32a"
}
-
連接第一個節(jié)點
在第二個節(jié)點的窗口中輸入:cli/lightning-cli connect 第一個節(jié)點id 127.0.0.1
還記得第一個節(jié)點的id
怎么得到嗎碉京?這里就能用上了厢汹。
nu@willw:~/lightning$ cli/lightning-cli connect 03707f3ba87336a4571750f7d1f17d7261843ccf1310c122afbf70c01f0e22fe89 127.0.0.1
{
"id": "03707f3ba87336a4571750f7d1f17d7261843ccf1310c122afbf70c01f0e22fe89"
}
-
為
channel
充值
在第二個節(jié)點的窗口中用fundchannel
命令充值cli/lightning-cli fundchannel 第一個節(jié)點id 10000
這里為這個channel
充值了10000聰(satoshis
)。
這個命令也會輸出一個txid
谐宙,需要等待交易確認以后才能繼續(xù)烫葬。
nu@willw:~/lightning$ cli/lightning-cli fundchannel 03707f3ba87336a4571750f7d1f17d7261843ccf1310c122afbf70c01f0e22fe89 10000
{
"tx": "020000000001012aa3c6b8000ed6bcb369edaadc14f028642a50433666f391c3b8d62c779dda0f0000000000ffffffff0210270000000000002200209199e26614f58b9321d077dc42f3c2aad8bbacb0133be81907abde8c650226d8a69b000000000000160014b70812f7bd6bedfa30da060c4a968cbb2882f6a602483045022100e687d9748798dced679a40313e5b35bb2aecc60e904e235a307a3470188ecca10220707dfd4c195c9c25e0f380df1b0f49a567b6adc48ddaab1fdba7553423fe10a10121036e97de798004bf2fc8ff32da429cbde9684f8842b1bab30dcb2db207457c288100000000",
"txid": "43b71852606ae1571f183285d380680352e560b6896d940ffd4d764cbdcbf1ce",
"channel_id": "cef1cbbd4c764dfd0f946d89b660e552036880d38532181f57e16a605218b743"
}
交易確認后可以用listpeers
命令來確認channel
是否已經建立。
nu@willw:~/lightning$ cli/lightning-cli listpeers
{
"peers": [
{
"id": "03707f3ba87336a4571750f7d1f17d7261843ccf1310c122afbf70c01f0e22fe89",
"connected": true,
"netaddr": [
"127.0.0.1:9735"
],
"global_features": "",
"local_features": "88",
"globalfeatures": "",
"localfeatures": "88",
"channels": [
{
"state": "CHANNELD_NORMAL",
"scratch_txid": "5e5807030d060842332100980d0bcddd23ffdca4f4fed8a2f04cd894e28b03e7",
"owner": "lightning_channeld",
"short_channel_id": "1452473:32:0",
"channel_id": "cef1cbbd4c764dfd0f946d89b660e552036880d38532181f57e16a605218b743",
"funding_txid": "43b71852606ae1571f183285d380680352e560b6896d940ffd4d764cbdcbf1ce",
"private": false,
"msatoshi_to_us": 10000000,
"msatoshi_to_us_min": 10000000,
"msatoshi_to_us_max": 10000000,
"msatoshi_total": 10000000,
"dust_limit_satoshis": 546,
"max_htlc_value_in_flight_msat": 18446744073709551615,
"their_channel_reserve_satoshis": 546,
"our_channel_reserve_satoshis": 546,
"spendable_msatoshi": 9454000,
"htlc_minimum_msat": 0,
"their_to_self_delay": 6,
"our_to_self_delay": 6,
"max_accepted_htlcs": 483,
"status": [
"CHANNELD_NORMAL:Funding transaction locked."
],
"in_payments_offered": 0,
"in_msatoshi_offered": 0,
"in_payments_fulfilled": 0,
"in_msatoshi_fulfilled": 0,
"out_payments_offered": 0,
"out_msatoshi_offered": 0,
"out_payments_fulfilled": 0,
"out_msatoshi_fulfilled": 0,
"htlcs": [
]
}
]
}
]
}
這是從第二個節(jié)點窗口看到的凡蜻,如果是第一個節(jié)點窗口輸出會稍有不同搭综。注意這里的參數(shù),另外有一個msatoshi
單位咽瓷,表示聰?shù)那Х种弧?/p>
-
在第一個節(jié)點窗口中生成
invoice
sky@willw:~/lightning$ cli/lightning-cli invoice 10000 mypay6 mypay6 { "payment_hash": "69d53d2fff8dfddc6ba98e92a6ad5d2989af9c69cc517a8c4f0035550bb00616", "expires_at": 1547534361, "bolt11": "lntb100n1pwr6usfpp5d82n6tll3h7ac6af36f2dt2a9xy6l8rfe3gh4rz0qq642zasqctqdq2d4uhqctexccqp2rzjqf6n68zzwwktgqjqf320msfm8a5q3mpuavekmx0p732cqdpv08vvg93fhyqqqgqqqqqqqqqpqqqqqzsqqc4xz7tzg4j583zg97gt8x7tuzxgxy86ym9dvpgfqkr4vy9ndhgedqhtgq07sawunung2sslg3hq5g4g9pju68v3fe6np7ssle96h933gpxzquj8" }
這里的數(shù)值是10
聰设凹,但是單位是msatoshi
,所以數(shù)值是10000
兩個mypay6
的前一個是invoice
的名字茅姜,必須唯一,后一個是描述,可以為空钻洒。
執(zhí)行的結果是這個支付請求被編碼成了bolt11
字符串奋姿,將這個字符串提供給支付者就行了。
-
在第二個節(jié)點窗口中完成支付
將上一步的bolt11
字符串拷貝到第二個節(jié)點窗口中素标,用pay
命令進行支付nu@willw:~/lightning$ cli/lightning-cli pay lntb100n1pwr6usfpp5d82n6tll3h7ac6af36f2dt2a9xy6l8rfe3gh4rz0qq642zasqctqdq2d4uhqctexccqp2rzjqf6n68zzwwktgqjqf320msfm8a5q3mpuavekmx0p732cqdpv08vvg93fhyqqqgqqqqqqqqqpqqqqqzsqqc4xz7tzg4j583zg97gt8x7tuzxgxy86ym9dvpgfqkr4vy9ndhgedqhtgq07sawunung2sslg3hq5g4g9pju68v3fe6np7ssle96h933gpxzquj8 { "id": 5, "payment_hash": "69d53d2fff8dfddc6ba98e92a6ad5d2989af9c69cc517a8c4f0035550bb00616", "destination": "028cc127521a107e4e3b29ff802493b7bb976c99b3dfb3f2003b868f8139081962", "msatoshi": 10000, "msatoshi_sent": 10006, "created_at": 1547530776, "status": "complete", "payment_preimage": "ae901b2d5370987f1ea30de5291922e6193fb3a4c9bffa46b25a6e3207bfa303", "description": "mypay6", "getroute_tries": 1, "sendpay_tries": 1, "route": [ { "id": "028cc127521a107e4e3b29ff802493b7bb976c99b3dfb3f2003b868f8139081962", "channel": "1452473:32:0", "msatoshi": 10006, "delay": 10 } ], "failures": [ ] }
出現(xiàn)這個輸出表示支付成功称诗。
在第一個節(jié)點窗口中可以查詢到:
sky@willw:~/lightning$ cli/lightning-cli listinvoices
{
"invoices": [
{
"label": "mypay6",
"bolt11": "lntb100n1pwr6usfpp5d82n6tll3h7ac6af36f2dt2a9xy6l8rfe3gh4rz0qq642zasqctqdq2d4uhqctexccqp2rzjqf6n68zzwwktgqjqf320msfm8a5q3mpuavekmx0p732cqdpv08vvg93fhyqqqgqqqqqqqqqpqqqqqzsqqc4xz7tzg4j583zg97gt8x7tuzxgxy86ym9dvpgfqkr4vy9ndhgedqhtgq07sawunung2sslg3hq5g4g9pju68v3fe6np7ssle96h933gpxzquj8",
"payment_hash": "69d53d2fff8dfddc6ba98e92a6ad5d2989af9c69cc517a8c4f0035550bb00616",
"msatoshi": 10000,
"status": "paid",
"pay_index": 1,
"msatoshi_received": 10006,
"paid_at": 1547530776,
"description": "mypay6",
"expires_at": 1547534361
}
]
}
status
為paid
表示支付成功。
-
關閉
channel
支付完成后头遭,任意一方可以關閉channel
寓免,這里我們讓第二個節(jié)點窗口來關閉。nu@willw:~/lightning$ cli/lightning-cli close 1452473:32:0 { "tx": "0200000001cef1cbbd4c764dfd0f946d89b660e552036880d38532181f57e16a605218b7430000000000ffffffff014e26000000000000160014d2f93e6a259a0596cf633f561546d3c739d1119200000000", "txid": "ce8c6b9b27ce9becd2264b9e5e64bdb857a79f39a855e69b7e9d2cdf3429bbfd", "type": "mutual" }
close
命令后面的1452473:32:0
為channel
的短id
计维,實際上提供對方節(jié)點id
袜香,鏈id
都可以。
根據(jù)txid
可以去鏈上查看比特幣到賬情況鲫惶。
至此最簡單的閃電網絡支付完成蜈首,實際中由于c-lightning
自身的一些問題,支付過程可能并不順利欠母,歡迎大家到官網提issue
欢策,幫助c-lightning
發(fā)展。