Lightning-Network

如何找到開具閃電網路發票的節點的nodeid?

  • July 18, 2019

我最近從一家商店收到了一張 BOLT11 發票。比如這個:

LNBC13934430N1PWJUJEZPP5K7FLC2M5CLHTWMTF3HZDN7VVRCA4RNFAFA89F2D6KGYWW4JCSDAQDZ62PSKJEPQW3HJQ4RGV5SYC6T8DP6XU6TWVUSYXMMWVEJHYETWVDJJQ2Z0WFJX2U3QF9ZR5GZ5F3PNZWFD25UY54Z39YXQZURCQP2RZJQG8ZM9WXGVHZPMUQEWY9J9KDQNRVLZHPCWM6S8CVLC2CKRDNELE42Z9U5VQQY3SQQYQQQQL8QQQQPJQQ9Q6KM84F7KTW6UV574UR2LFNKZLM7VNK8NJRZV20JD8SAW6FZ3TQGSZE6YUT0X2UXGDGYJZGTXEFSQSSEVTKFF97P3TER5K23ZPHDDXHQQ95UT4N

幸運的是,我的節點能夠找到通往目的地的路線,但如果找不到呢?我如何才能找到nodeid與商店開設直接支付渠道並為其提供資金的渠道?他們沒有在他們的網站上談論他們的 nodeid。

閃電發票由開具發票的節點簽名,以驗證我們需要知道節點 ID 的簽名。因此,它包含在發票中。閃電節點提供了一個 API 來解碼發票。

在 c-lightning 中,您可以執行以下操作(lnd!)

lightning-cli decodepay LNBC13934430N1PWJUJEZPP5K7FLC2M5CLHTWMTF3HZDN7VVRCA4RNFAFA89F2D6KGYWW4JCSDAQDZ62PSKJEPQW3HJQ4RGV5SYC6T8DP6XU6TWVUSYXMMWVEJHYETWVDJJQ2Z0WFJX2U3QF9ZR5GZ5F3PNZWFD25UY54Z39YXQZURCQP2RZJQG8ZM9WXGVHZPMUQEWY9J9KDQNRVLZHPCWM6S8CVLC2CKRDNELE42Z9U5VQQY3SQQYQQQQL8QQQQPJQQ9Q6KM84F7KTW6UV574UR2LFNKZLM7VNK8NJRZV20JD8SAW6FZ3TQGSZE6YUT0X2UXGDGYJZGTXEFSQSSEVTKFF97P3TER5K23ZPHDDXHQQ95UT4N
{
 "currency": "bc", 
 "created_at": 1563314978, 
 "expiry": 899, 
 "payee": "024a8228d764091fce2ed67e1a7404f83e38ea3c7cb42030a2789e73cf3b341365", 
 "msatoshi": 1393443000, 
 "amount_msat": "1393443000msat", 
 "description": "Paid to The Lightning Conference (Order ID: TLC19-U8JTQ)", 
 "min_final_cltv_expiry": 10, 
 "routes": [
   [
     {
       "pubkey": "020e2d95c6432e20ef80cb885916cd04c6cf8ae1c3b7a81f0cfe158b0db3cff355", 
       "short_channel_id": "572579x582x1", 
       "fee_base_msat": 999, 
       "fee_proportional_millionths": 200, 
       "cltv_expiry_delta": 40
     }
   ]
 ], 
 "payment_hash": "b793fc2b74c7eeb76d698dc4d9f98c1e3b51cd3d4f4e54a9bab208e75658837a", 
 "signature": "3045022100d5b67aa7d65bb5c653d5e0d5f4cec2fefcc9d8f390c4c53e4d3c3aed245158110220016744e2de6570c86a09212166ca6008432c5d9292f8315e474b2a220ddad35c"
}

特別是,我們找到了顯示商店節點的條目:

"payee": "024a8228d764091fce2ed67e1a7404f83e38ea3c7cb42030a2789e73cf3b341365"

我們可以使用以下命令查詢 gossip 儲存以獲取有關該節點的更多資訊:

lightning-cli listnodes | grep 024a8228d764091fce2ed67e1a7404f83e38ea3c7cb42030a2789e73cf3b341365 -B 1 -C 13
   {
     "nodeid": "024a8228d764091fce2ed67e1a7404f83e38ea3c7cb42030a2789e73cf3b341365", 
     "alias": "www.fulmo.org", 
     "color": "f2f3f4", 
     "last_timestamp": 1561973177, 
     "globalfeatures": "", 
     "global_features": "", 
     "addresses": [
       {
         "type": "ipv4", 
         "address": "95.211.207.81", 
         "port": 9735
       }
     ]
   }, 

這為我們提供了與商店對等並為渠道提供資金所需的所有資訊。(如果節點是私有的,我們可以使用routes解碼發票中的提示連接到公共出口節點。)

lnd 使用者

如果您正在使用lnd,您可以使用該命令DecodePayReq,而不是呼叫listnodes從八卦商店獲取資訊,您可以呼叫GetNetworkInfo

引用自:https://bitcoin.stackexchange.com/questions/89205