LoginSignup
2
1

More than 3 years have passed since last update.

Lightning Network Daemon(Lnd)で遊んでみた ~Tutorial編(Stage2)~

Last updated at Posted at 2019-11-02

はじめに

今回はLND Developer SiteStage2 Web Clientをやってみる。
基本的に書いてある通りにコマンドを入力するが、前やったときは初っ端node-gypのエラーが出まくった覚えがある。
今回はそれも含めて格闘した記録を書こうと思う。

環境

PC: Mac book Pro
node: 12.11.1 (先に言うが8にすべき)
npm: 6.11.3

セットアップ

先ずはGoのパッケージをクローン

git clone https://github.com/mably/lncli-web $GOPATH/src/github.com/mably/lncli-web
cd $GOPATH/src/github.com/mably/lncli-web
npm install

で、大量のエラーが吐かれる。
長すぎるので省略するが、 よくあるnode-gypのエラー。
lncli-webのgithubをみるとNodeJS 8.x/npmと書かれていた。
なのでとりあえずnodeのバージョンを落としてみる。

私の環境はMacなので以下のように。
すでにnodebrewをインストール済みなのでそれを使う。
インストールしてない人はこちらを参考に。

nodebrew install-binary v8.11.1
nodebrew use v8.11.1

ではもう一度npm installする

cd $GOPATH/src/github.com/mably/lncli-web
npm install

WARNやらERRやら出ている気がするがnode-gypのエラーは消えた。
とりあえずこのまま進める。

"./node_modules/.bin/gulp" bundle

これもうまくいった。

cd ~/Library/"Application Support"/Lnd/.lnd
openssl ecparam -genkey -name prime256v1 -out tls.key
openssl req -new -sha256 -key tls.key -out csr.csr -subj '/CN=localhost/O=lnd'
openssl req -x509 -sha256 -days 36500 -key tls.key -in csr.csr -out tls.cert
rm csr.csr
cp tls.cert $GOPATH/src/github.com/mably/lncli-web/lnd.cert
$ node server --lndhost=localhost:10001
module.js:549
    throw err;
    ^

Error: Cannot find module 'node-pre-gyp/lib/pre-binding'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/hogehoge/gocode/src/github.com/mably/lncli-web/node_modules/grpc/src/grpc_extension.js:26:14)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

色々調べてみると、nodenode-gypgrpcは依存環境がガチガチ。
こちらの記事を参考にgrpc@1.10.1をインストールしてみる。

 npm i s grpc@1.10.1

で再度サーバーを立ち上げる。

$ node server --lndhost=localhost:10001
Macaroon support is enabled. Macaroon path is /Users/oshikawa/gocode/src/github.com/mably/lncli-web/config/../admin.macaroon
info:    Recreating active client
error:   The specified macaroon file /Users/oshikawa/gocode/src/github.com/mably/lncli-web/config/../admin.macaroon was not found.
Please add the missing lnd macaroon file or update/remove the path in the application configuration.

なんか出たけど一応進んだらしい。
成功していたらhttp://localhost:8280/でダッシュボードが開けるはずだが、開けないのでやっぱりadmin.macroonをが必要らしい。
確かにlncli-webのディレクトリにはadmin.macroonは無い。
この場合、lncli-web内のconfig/defaults.jsのmacaroonPathを書き換えてあげればいい。
今回わTutrialのStage

defaults.js

// config/defaults.js

module.exports = {
  serverPort: 8280,
  serverHost: 'localhost',
  lndProto: `${__dirname}/rpc.proto`,
  lndHost: 'localhost:10009',
  lndCertPath: `${__dirname}/../lnd.cert`,
  //↓変更
  macaroonPath: `/Users/hodehoge/gocode/dev/alice/data/chain/bitcoin/simnet/admin.macaroon`,
  dataPath: `${__dirname}/../data`,
  loglevel: 'info',
  logfile: 'lncliweb.log',
  lndLogFile: `${require('os').homedir()}/.lnd/logs/bitcoin/testnet/lnd.log`,
};

hogehogeの部分は変えてください。
これで大丈夫なはず。

 node server --lndhost=localhost:10001

再びhttp://localhost:8280/にアクセス。

スクリーンショット 2019-11-02 17.21.10.png

上手くいった。(btcdとlndを起動していると詳細も表示されるはず。)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1