Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LNDのgRPC/RESTインターフェース
Search
shigeyuki azuchi
December 24, 2021
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LNDのgRPC/RESTインターフェース
GBECの解説動画の資料です。
https://goblockchain.network/2021/12/lnd_grpc-rest_interface/
shigeyuki azuchi
December 24, 2021
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
FORS
azuchi
0
15
クラスターmempool
azuchi
0
36
W-OTS+
azuchi
0
39
Shorのアルゴリズム
azuchi
0
64
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
48
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
60
BIP-374 離散対数の等価性証明
azuchi
0
77
BIP-353 DNS Payment Instructions
azuchi
0
96
Other Decks in Technology
See All in Technology
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
100
Flutterをカメラで動かしたかった話
sony
1
130
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
210
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
190
JavaScript 研修 (2026)
recruitengineers
PRO
2
470
事業価値と Engineering 2026年度版
recruitengineers
PRO
45
22k
関東Kaggler会発表資料
takoi
1
200
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
630
強化学習「理論」入門
enakai00
3
3.6k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.2k
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
230
Featured
See All Featured
How to make the Groovebox
asonas
2
2.3k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Unsuck your backbone
ammeep
672
58k
The SEO Collaboration Effect
kristinabergwall1
1
520
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Producing Creativity
orderedlist
PRO
348
40k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
930
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
Transcript
LNDのgRPC/RESTインターフェース
1 LNDのgRPC/RESTインターフェース LNDではノード操作が可能なAPIが提供されている • gRPC API https://api.lightning.community/#lnd-grpc-api-reference •
REST API https://api.lightning.community/#lnd-rest-api-reference ※ gRPCを使うとLNDとアプリの双方向の通信が可能になり便利
2 macaroon LNDへの接続にあたって、アクセス権の認証をするための仕組みが macaroon • cookieみたいなもので、LNDはmacaroonが正しい鍵で署名されていることを検証 • cookieと同様、TLSなどの安全なチャネルを介して送信する必要がある
• macaroonの委譲や、より限定したバージョンの作成も可能 admin.macaroon readonly.macaroon invoice.macaroon すべてのgRPCの読み取り/書き込み権限を付与 (lncliで使われている) すべてのgRPCの読み取り専用のアクセス権を付与 (アプリのモニタリング用途など) インボイス関連のgRPCの読み取り/書き込み権限を付与
3 macaroonを使ったアクセス リクエストヘッダーにmacaroonをセットしてアクセス Grpc-Metadata-macaroon: <macaroonのHEX値> • curlで実行する場合
# curl --header "Grpc-Metadata-macaroon: $(xxd -ps -u -c 1000 <macaroonファイルのパス>)" https://umbrel.local:8080/v1/getinfo ※ xxdコマンドはファイルをHEXダンプするコマンド ◦ オレオレ証明書の場合は、--cacertオプションでLNDのtls.certを指定 --cacert <tls.certのパス>
4 gRPCインターフェース *.protoファイルをダウンロードして各言語用にコンパイルすればコードが生成され利用可能に。 https://github.com/lightningnetwork/lnd/tree/master/lnrpc 各言語でライブラリとして提供されているケースも:
LNDのHTLCイベントをキャプチャするツール: https://github.com/azuchi/lnd-tool require 'lnrpc' lnd = Lnrpc::Client.new({ credentials_path: '/path/to/tls.cert, macaroon_path: '/path/to/admin.macaroon', address: 'host:port' }) lnd.router.subscribe_htlc_events.each do |event| puts event end