Lightning-Network

如何通過預定義的路線發送付款?

  • August 13, 2019

嘗試通過預定義的路線付款,使用:

lncli -network=testnet queryroutes 02e34c1b4c5f8e7419cf4d10e3bc9651d46dc1af68df6a7b81a24951a9192aa9c4 25000 | lncli -network=testnet sendtoroute -pay_hash=45b9255c8648c6c1f60e394e555f745af31ed7fab385d0cf9e82b62ce8e8dfba - 

總是給我回:

{
   "payment_error": "FinalExpiryTooSoon",
   "payment_preimage": "",
   "payment_route": null
}

不管我在 addinvoice 命令中設置的到期時間。有人可以澄清為什麼嗎?此外,如何使用之前從 queryroutes 命令獲得的 routes.json 使用 sendtoroute 命令?

TL;博士。您需要在命令中指定--final_cltv_delta=144選項。lncli queryroutes

更長的答案……當通過閃電網路進行支付時,每個中間節點都有可能竊取正在轉移的資金。為了防止這種情況發生,中間節點不能立即轉移資金,而只能在一定時間後轉移。在此期間,合法所有者可以收回資金。

final_cltv_delta選項為躍點鏈中的最後一個節點指定這段時間(以塊數衡量)。當您查詢路線時,預設值很小(我相信它在某個時候是 9)。但大多數節點不接受這個值,預設lnd需要更長的時間144

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