LightningNetworkを使ってみる(lnd編)
はじめに
LightningNetworkはlnd社のlndを使用します。
lndは2018年07月15日時点で最新のv0.4.2-betaを使用してます。
流れ
- Bitcoinフルノードの立ち上げ
- LightningNewtorkの立ち上げ
- LightningNetworkの動きの流れ
Bitcoinフルノードの立ち上げ
以下を参考に立ち上げてください。
お手軽にVPSでBitcoinフルノードを立ち上げる方法
https://qiita.com/9muta/items/d3b5cf003d18ab58d112
lndの立ち上げ
以下を参考に立ち上げてください。
LNノードを立ち上げる方法
https://qiita.com/9muta/items/285431be70caf667ecd1
lndの動きの流れ
おおまかな取引の流れは以下になります。
1.アドレス作成 → 2.送金 → 3.チャネルを開く → 4.デポジット → 5.送金 → 6.チャネルを閉じる → 7.返金 → 8.取引完了
順に詳細を見ていきます。
1.アドレス作成
LNに送金時に送金するためのアドレスを作成します。
$ lncli newaddress np2wkh
{
"address": "2NB5YBxYTBsTTkuBscf6ymsn7u8K7VKnWdW"
}
2.送金
作成したアドレスに0.5BTCを送金する。
$ bitcoin-cli sendtoaddress 2NB5YBxYTBsTTkuBscf6ymsn7u8K7VKnWdW 0.5
0a4fe2544ea1346d1242edd210ac25cc0720f44e21e4a5c847fe12ecbd4f0521
トランザクションが未承認のときはunconfirmed_balance
に送金額が表示される。
lncli walletbalance
{
"total_balance": "50000000",
"confirmed_balance": "0",
"unconfirmed_balance": "50000000"
}
エクスプローラで送金が確認できたらウォレットで残高を確認する。
50000000satoshi(0.5BTC)が確認できます。
$ lncli walletbalance
{
"total_balance": "50000000",
"confirmed_balance": "50000000",
"unconfirmed_balance": "0"
}
3.チャネルをはる
どことチャネルを開くかわからない場合は以下より探してみます。
https://1ml.com/testnet/node?order=capacity
赤枠の部分をコピーして貼り付けます。
チャネルをはる。
$ lncli connect 038863cf8ab91046230f561cd5b386cbff8309fa02e3f0c3ed161a3aeb64a643b9@180.181.208.42:9735
{
}
4.デポジットする
開いたチャネルにデポジットします。
$ lncli openchannel 038863cf8ab91046230f561cd5b386cbff8309fa02e3f0c3ed161a3aeb64a643b9 10000000
{
"funding_txid": "ad601b1b66292bf2fb7c191db5dc80520fa517962e8a9bd074c25473f486bd4f"
}
pending_open_channels
に上のデポジットがあります。
$ lncli pendingchannels
{
"total_limbo_balance": "0",
"pending_open_channels": [
{
"channel": {
"remote_node_pub": "038863cf8ab91046230f561cd5b386cbff8309fa02e3f0c3ed161a3aeb64a643b9",
"channel_point": "ad601b1b66292bf2fb7c191db5dc80520fa517962e8a9bd074c25473f486bd4f:0",
"capacity": "10000000",
"local_balance": "9999819",
"remote_balance": "0"
},
"confirmation_height": 0,
"commit_fee": "181",
"commit_weight": "600",
"fee_per_kw": "250"
}
],
"pending_closing_channels": [
],
"pending_force_closing_channels": [
],
"waiting_close_channels": [
]
}
デポジットされてないのでチャネルはまだ開かれてません。
$ lncli listchannels
{
"channels": [
]
}
funding_txid
の ad601b1b66292bf2fb7c191db5dc80520fa517962e8a9bd074c25473f486bd4f
をエクスプローラで調べて送金が終わったらpending_open_channels
から消えて以下のようになります。
$ lncli pendingchannels
{
"total_limbo_balance": "0",
"pending_open_channels": [
],
"pending_closing_channels": [
],
"pending_force_closing_channels": [
],
"waiting_close_channels": [
]
}
そしてチャネルが開きました。
$ lncli listchannels
{
"channels": [
{
"active": true,
"remote_pubkey": "038863cf8ab91046230f561cd5b386cbff8309fa02e3f0c3ed161a3aeb64a643b9",
"channel_point": "ad601b1b66292bf2fb7c191db5dc80520fa517962e8a9bd074c25473f486bd4f:0",
"chan_id": "1489706314323263488",
"capacity": "10000000",
"local_balance": "9999819",
"remote_balance": "0",
"commit_fee": "181",
"commit_weight": "600",
"fee_per_kw": "250",
"unsettled_balance": "0",
"total_satoshis_sent": "0",
"total_satoshis_received": "0",
"num_updates": "0",
"pending_htlcs": [
],
"csv_delay": 1201,
"private": false
}
]
}
手数料を引いた分がチャネルにデポジットされています。
$ lncli channelbalance
{
"balance": "0",
"pending_open_balance": "9999819"
}
そしてウォレットはXXXXXX
$ lncli walletbalance
{
"total_balance": "40000000",
"confirmed_balance": "1858",
"unconfirmed_balance": "0"
}
5.支払い
Starblocksで支払いをしてみます。
以下よりペイメントコードを取得して支払い処理をします。
https://starblocks.acinq.co
$ lncli payinvoice lntb19u1pd48n9npp5e3w9l6fv3xrgks90mgh7lc5xzj0udfxvhlepwf8kje3vd27spxdqdp8xys9xcmpd3sjqsmgd9czq3njv9c8qatrvd5kumccqp2yzp6lpkz8j3xhxanarllspd2r6spq2y4f6dy5svvvcsnlwz5alkpp2esu8r67m6awx0urzmeffjxxcyt9rrrvug77zsv2tfuuq533jgqzcv3vh
{
"payment_error": "",
"payment_preimage": "dab7ff92e6ac03143e645f4f36a1358292c049aa5ee81fe14610113f6b1a92fa",
"payment_route": {
"total_time_lock": 1355186,
"total_fees": 1,
"total_amt": 1901,
"hops": [
{
"chan_id": 1489706314323263488,
"chan_capacity": 9899819,
"amt_to_forward": 1900,
"fee": 1,
"expiry": 1355042,
"amt_to_forward_msat": 1900168,
"fee_msat": 1001
},
{
"chan_id": 1484456146219892736,
"chan_capacity": 15900000,
"amt_to_forward": 1900,
"expiry": 1354898,
"amt_to_forward_msat": 1900000,
"fee_msat": 168
},
{
"chan_id": 1488731047529938945,
"chan_capacity": 10490000,
"amt_to_forward": 1900,
"expiry": 1354898,
"amt_to_forward_msat": 1900000
}
],
"total_fees_msat": 1169,
"total_amt_msat": 1901169
}
}
ペイメントコードをデコードすると詳細が確認できます。
$ lncli decodepayreq lntb19u1pd48n9npp5e3w9l6fv3xrgks90mgh7lc5xzj0udfxvhlepwf8kje3vd27spxdqdp8xys9xcmpd3sjqsmgd9czq3njv9c8qatrvd5kumccqp2yzp6lpkz8j3xhxanarllspd2r6spq2y4f6dy5svvvcsnlwz5alkpp2esu8r67m6awx0urzmeffjxxcyt9rrrvug77zsv2tfuuq533jgqzcv3vh
{
"destination": "03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134",
"payment_hash": "cc5c5fe92c89868b40afda2fefe286149fc6a4ccbff21724f69662c6abd0099a",
"num_satoshis": "1900",
"timestamp": "1532218547",
"expiry": "3600",
"description": "1 Scala Chip Frappuccino",
"description_hash": "",
"fallback_addr": "",
"cltv_expiry": "10",
"route_hints": [
]
}
6.チャネルを閉じる
channel_pointを指定して開いていたチャネルを閉じます。
$ lncli closechannel ad601b1b66292bf2fb7c191db5dc80520fa517962e8a9bd074c25473f486bd4f
{
"closing_txid": "1d4d945c66ebd242565fcacc423432d3788a7a8d3af5d38598f9e708d1036ff2"
}
全てのチャネルをまとめて閉じる場合はこちら。
lncli closeallchannels
{
"remote_pub_key": "03a9565d005199f7e3e1eac381804bb5b9b8333ea5b0f15305a4903c2cb6e45fe2",
"channel_point": "39dc04c7eb5cf2c3e7d1c6721d81a0df49f606d907cf6c8753c76879d3d987bf:1",
"closing_txid": "4f6a3fd16b081ffd6f21d718ad6858aff68cb0f481ca33cf94a9fbb5edc2256b",
"error": ""
}
7.返金
オンチェーンへ送金します。
全額返金といった指定が見当たらないので手数料を考慮して金額を指定します。
$ lncli sendcoins 2MsNwbrBzY8gykHt8SLqce9mibuUCGx2LnP 44095569
{
"txid": "256cb8b023acb31d669cbfd57b81d7fd6b7b7b72d4b57d5b9ade2b0fce37ef76"
}
8.取引完了
オンチェーン側で着金していることを確認します。
$ bitcoin-cli getwalletinfo
{
"walletname": "wallet.dat",
"walletversion": 159900,
"balance": 1.29094877,
"unconfirmed_balance": 0.00000000,
"immature_balance": 0.00000000,
"txcount": 4,
"keypoololdest": 1532098568,
"keypoolsize": 1000,
"keypoolsize_hd_internal": 999,
"paytxfee": 0.00000000,
"hdmasterkeyid": "e5a8a941f936f83b2db68c038ecd51dedef6319c"
}
Author And Source
この問題について(LightningNetworkを使ってみる(lnd編)), 我々は、より多くの情報をここで見つけました https://qiita.com/9muta/items/e9a4f3ff283f7c9ee73d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .