在win10上搭建比特幣閃電網絡單機雙節(jié)點測試環(huán)境(二)

現(xiàn)在我們可以在本機上建立第二個節(jié)點粒竖,第二個節(jié)點的建立有一些不同氧骤,我們一步一步來呻疹。

  1. 將第一個節(jié)點的比特幣同步目錄復制一份作為第二個節(jié)點的同步目錄
    在我這里是將f:\temp\btctestnet復制為f:\temp\btctestnet2,復制同步目錄可以免于再次同步區(qū)塊鏈语淘。

  2. 新開一個ubuntu窗口滓侍,并新建一個用戶
    a. sudo adduser nu新建一個nu用戶
    b. su - nu切換到這個用戶

  3. 開啟bitcoind广鳍,并同步區(qū)塊鏈

     bitcoind -daemon -testnet -port=17195 -rpcport=17495 -datadir=/mnt/f/temp/btctestnet2
    

注意這里為了避免端口沖突术羔,重新設置了兩個綁定的端口膝蜈。

  1. 等待區(qū)塊鏈同步完成
    因為區(qū)塊鏈目錄是被復制的,所以同步過程會很快完成吕粗,同樣可以用getblockchaininfo可以看到同步進度

     bitcoin-cli -testnet -rpcport=17495 -datadir=/mnt/f/temp/btctestnet2 getblockchaininfo
    

注意這里的rpc端口需要指定纺荧,datadir指向新的目錄

  1. 安裝c-lightning
    這一步的過程與第一個節(jié)點相同

注:如果你遇到user is not in sudoer list錯誤,可以用sudo -i切換到root用戶颅筋,并將nu用戶添加到/etc/sudoers中宙暇。

  1. 啟動c-lightning,并連接bitcoind

     lightningd/lightningd --testnet --bitcoin-datadir=/mnt/f/temp/btctestnet2 --log-level=debug --bitcoin-rpcport=17495
    

注意這里的端口和目錄

  1. 新建地址
    這一步也與第一個節(jié)點相同

  2. 獲取測試比特幣
    之前那個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"
}
  1. 連接第一個節(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"
}
  1. 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>

  1. 第一個節(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字符串奋姿,將這個字符串提供給支付者就行了。

  1. 第二個節(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
    }
]
}

statuspaid表示支付成功。

  1. 關閉channel
    支付完成后头遭,任意一方可以關閉channel寓免,這里我們讓第二個節(jié)點窗口來關閉。

    nu@willw:~/lightning$ cli/lightning-cli close 1452473:32:0
    {
    "tx": "0200000001cef1cbbd4c764dfd0f946d89b660e552036880d38532181f57e16a605218b7430000000000ffffffff014e26000000000000160014d2f93e6a259a0596cf633f561546d3c739d1119200000000",
    "txid": "ce8c6b9b27ce9becd2264b9e5e64bdb857a79f39a855e69b7e9d2cdf3429bbfd",
    "type": "mutual"
    }
    

close命令后面的1452473:32:0channel的短id计维,實際上提供對方節(jié)點id袜香,鏈id都可以。
根據(jù)txid可以去鏈上查看比特幣到賬情況鲫惶。

至此最簡單的閃電網絡支付完成蜈首,實際中由于c-lightning自身的一些問題,支付過程可能并不順利欠母,歡迎大家到官網issue欢策,幫助c-lightning發(fā)展。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末赏淌,一起剝皮案震驚了整個濱河市踩寇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌六水,老刑警劉巖俺孙,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缩擂,居然都是意外死亡鼠冕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門胯盯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懈费,“玉大人,你說我怎么就攤上這事博脑≡饕遥” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵叉趣,是天一觀的道長泞边。 經常有香客問我,道長疗杉,這世上最難降的妖魔是什么阵谚? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任蚕礼,我火速辦了婚禮,結果婚禮上梢什,老公的妹妹穿的比我還像新娘奠蹬。我一直安慰自己,他們只是感情好嗡午,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布囤躁。 她就那樣靜靜地躺著,像睡著了一般荔睹。 火紅的嫁衣襯著肌膚如雪狸演。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天僻他,我揣著相機與錄音宵距,去河邊找鬼。 笑死中姜,一個胖子當著我的面吹牛消玄,可吹牛的內容都是我干的。 我是一名探鬼主播丢胚,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼翩瓜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了携龟?” 一聲冷哼從身側響起兔跌,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峡蟋,沒想到半個月后坟桅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蕊蝗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年仅乓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓬戚。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡夸楣,死狀恐怖,靈堂內的尸體忽然破棺而出子漩,到底是詐尸還是另有隱情豫喧,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布幢泼,位于F島的核電站紧显,受9級特大地震影響,放射性物質發(fā)生泄漏缕棵。R本人自食惡果不足惜孵班,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一涉兽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧重父,春花似錦花椭、人聲如沸忽匈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹允。三九已至郭厌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雕蔽,已是汗流浹背折柠。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留批狐,地道東北人扇售。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像嚣艇,于是被迫代替她去往敵國和親承冰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容