Multi Path Payment(MPP)で送金する

単発でumbrelから多額(数百万〜sats)の送金したい。しかし、エラーになる or 手数料ぼられる、かといって小分けにインボイスを発行するのも手間がかかる、という場面でCLIツールのlncliから一つのインボイスをMPPで送金するやり方の忘備録です。

MPPの説明はこちら。受金者は一つのインボイスで、送金者(umbrel)は複数のパスが可能になるので、例えば100万を10万×10本に分割して送金が通りやすくかつ手数料が安いルートにヒットしやすくなります。

https://lightning.engineering/posts/2020-05-07-mpp/

やり方

umbrelにログインした後に以下のコマンドを発行します。

docker exec -it lightning_lnd_1 lncli sendpayment \
--pay_req [invoice] \
--max_parts 100 \
--fee_limit 2500 \
--max_shard_size_sat 100000 \
--outgoing_chan_id 816130156246007800

コマンドの解説

  • 4つ目はdockerのコンテナ nameです。v0.5からlndもオプションになったからか以前のlndからlightning_lnd_1に変わってました。1と付いていて怪しいのでコマンドが見つからなくなったらdocker psでnameをチェックするのがよさそうです。
  • pay_reqオプションにセットする値はインボイスの発行識別子です。lnbcとかで始まるアレ。
  • max_partsオプションでMPPを有効にします。値には分割する最大数をセットします。
  • fee_limitオプションは最大料金のsats指定です。これ逃すと手数料が悲しいことになるのでppmから計算して必ずセットしましょう。(1000ppmで0.1%)
  • max_shard_size_satオプションは1本あたりの金額です。ここを指定しないと半分にしただけで送られがちです。
  • outgoing_chan_idオプションは送金に使いたいChannel IDを指定します。LNDgやRTLで確認できます。

余談

fee_limitとmax_shard_size_satのオプションが重要。これ忘れて初めはガッツリ手数料いっちゃいました。。

outgoing_chan_idオプションを設定しないと売り物のアウトバウンドが使われて悲しい気持ちになりました。。apiだと複数指定が可能ですがlncliにもくるとさらに融通が効きやすくなりますね。

fee_limitだけでなくfee_limit_percentageもあるが、最低1%からになっていて何に使うのかよくわかりませんでした。

他にもオプションはあるので上記以外の調整可能です。lncliはドキュメントもテストコードも無かったので実際の値が何になるか調べるのに苦労しました。オプション種類についてはコマンドラインヘルプdocker exec -it lightning_lnd_1 lncli sendpayment -h、値についてはgoのソースコードhttps://github.com/lightningnetwork/lnd/blob/master/cmd/lncli/cmd_payments.goから解読しました。いい参照先があったら教えてください。

Remaining : 205 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

Share

Popular stories

『Mastering the Lightning Network』を日本語訳して製本する(注:個人使用限定)

137

LNの料金市場の適正水準を整理する

114