LND ver 0.9
LND ver 0.9が出たので、概要をまとめておく。
元記事はAnnouncing lnd v0.9.0-beta!。
TL;DR
- Macaroon Bakeryによる柔軟な権限制御
- 2つの新しい支払いタイプ
- multi path payment
- Spontaneous payments
- node管理者向けのtool
- channel rebalancing
Macaroon Bakeryによる柔軟な権限制御
既存の三種類のmacaroon(admin, readonly and invoice)より柔軟な設定をしたい場合に利用できるオプションである。
Multi-path payment
Atomic multi-path paymentを実現するために必要な機能の一部。 Bolt 04 Multi-path paymentで解説されている。 MPPは一つのinvoiceに対して複数のHTLCを統合して決済することを可能にする。
MPP送信対応のlightning nodeであれば、特定のチャンネルのinvound capacityが足りなくても、送信をできる可能性が増える。UX観点からすると、送信者は、送信可能額のキャパシティが増える。この対応は、v0.10.0をターゲットに進められている。
技術的には、MPPは最後のhopのTLV recordへのpayment_secret
とamount
のデータ追加によって実装されている。
MPP対応lightning node同士の送金では、single shot MPP paymentがdefaultとなる。
Custom Onion-Tunneled TLV Payment Metadata Records
最高に注目している機能!
custom recordを使って、支払いにデータを追加することができる。send RPCにdest_custom_records
が追加され、ここにcustom dataを格納する。QueryRoutes
にもこのフィールドは追加される。
受信がおわると、custom dataはinvoiceのDBに格納され、既存のクエリ(LookupInvoice, ListInvoices, etc)で参照できる。
例えば、取引所へのデポジット時にアカウントIDをここに付与することで、取引所の負担は軽減されるだろう。 たくさんのLAPPSが生まれる可能性がある。 Roasbeefがプレゼンしている。
spontaneous payment
AKA keysend
。custom recordにpayment preimageを追加することで、事前にpreimageを知らなくても支払いを行える。
要はinvoiceが不要となる。
cmdでこれを実行するには、--keysend
フラグを利用する必要がある。payment hashをどこでも指定していないにも関わらず、preimageを暗号化して、受信者は通常のrouting情報とともに複合することができる。
プログラムでこれを使いたい場合はgrpc-request-sendrequest-streamingでDestCustomRcords
を追加する。
受信者は、defaultではkeysendをrejectするが、--accept-keysend
を有効化することで受信できる様になる。
note
この機能はboltに定義されていない。まだ変更がある可能性がある。
First-Class Rebalancing via Circular Payments to Self
自分自身への支払いが可能となった。 これにより、外部に頼らなくてもinvound capacityの調整が可能になる。