monamona
(;;)
フォローしているユーザーはまだいません
Python + ngrokでLN決済APIサーバの構築
本業が落ち着いて時間的に余裕ができたので久しぶりにLN系の開発に戻ってきました。久々にLNDのAPIドキュメント見ましたが完全に忘れてます! さて、今回はpythonでLNの決済処理をやってみたいと思います。内容的には以前にDH開発部で作った内容から決済部分のみを切り出してシンプルなWEB APIにしたものになります。DHチャットでngrokの話題を見かけたのと決済の所は以前から気になっていたので合わせて実装してみました。 大した事してないので、もういきなりソースで説明します。呼び出し側のサンプルhtmlはこんな感じです。 <html><head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('#button1').click(function (){ $.get('https://0fcb-117-108-71-175.jp.ngrok.io/createinvoice/' + $('#text1').val() + '/' + $('#text2').val()) .done(function(ret){ $('#amount').text(ret.amount); $('#bolt11').text(ret.bolt11); $('#desc').text(ret.desc); $('#rhash').text(ret.rhash); $('#qrImg').attr("src", ret.qr_str); $('#sect').show(); }) ; }); $('#button2').click(function (){ if($('#r_hash').text() != ""){ $.get('https://0fcb-117-108-71-175.jp.ngrok.io/checkinvoice/' + $('#r_hash').text()) .done(function(ret){ //1:支払い済み; 0:未払い if(ret.state == "1"){ $('#status').text("決済完了!"); }else{ $('#status').text("決済未完了.."); } }) ; } }); }); </script
Windows 10でstream-lnd-htlcsを実行する
Umbrelって設置に関してはGUIで全てできてしまいます。びっくりするくらい簡単にできます。ただし、障害が起こった時とかちょっと詳しく掘り下げたい時とかはSSHでログインしてからのCUI操作が必須になります。コマンドに慣れてない人にとっては下手にいじって環境潰してしまったらと思うと非常に恐怖を感じると思います。しかも対象が資産を管理している端末ならなおさらの事。仕事で多少LINUXを使う自分でさえUmbrelでのコマンド操作はかなりビビります。 そこでルーティング情報を取得するstream-lnd-htlcsを極力Umbrel側に手を加えずにWindowsメインで動かす手順を紹介します。 ①lnd.confの変更 このファイルはおそらく過去にaliasの設定で触った事があると思います。その時と同じ手順でSSHで接続してnanoエディタでファイルを開きます。tlsextraipがすでに設定されていると思いますが、すぐ下にUmbrelのローカルIPを追加で設定します。私の場合はtlsextraip=192.168.11.2で追加しています。 UmbrelのローカルIPがわからない時はDOSプロンプトよりping -4 umbrel.localと打てばローカルIPが返ってきます。lnd.confの設定を保存したらSSHからexitし、UmbrelのWEB画面より再起動を行ってください。注意が必要なのはUmbrelはデフォルトではDHCPで動いるので将来IPアドレスが変更になる可能性があります。その場合は再度設定変更が必要になるので固定IPで設定しておくか、別の方法でIPが変わらないようにしましょう。自分はルーター側でMACアドレス指定でIPを固定しています。 ②証明書関連ファイルのダウンロード 次にUmbrelからファイルのダウンロードが必要になりますが、私は普段WindowsからLinuxにファイルアップロードやダウンロードする時はWinSCPというソフトを使っています。エクスプローラーライクでドラッグアンドドロップで操作できるのでかなり便利です。で、ダウンロード必要なファイルは /home/umbrel/umbrel/lnd/tls.cert /home/umbrel/umbrel/lnd/data/chain/bitcoin/mainnet/readonly.macaroon になります。いったんデスクトップにでも保存しておいてください。tls.certファイルは上のUmbr
(;;)
アクティビティはまだありません。