#はじめに
今回はLND Developer Site のStage2 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)
色々調べてみると、node
、node-gyp
、grpc
は依存環境がガチガチ。
こちらの記事を参考に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
// 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/にアクセス。
上手くいった。(btcdとlndを起動していると詳細も表示されるはず。)