Ethereum系のブロックエクスプローラー
https://github.com/nekonium/explorer
の起動方法の覚え書きです。
準備
nekoniumの場合、おおよそ1ヶ月に1GBほどのデータを保存しなければなりませんので、専用のボリュームを用意して、mongodbというディレクトリを作って、そこに保存するようにします。
今回forkしてきたexplorerはmongodbを使っているので、/etc/mongodb.conf の保存先を専用のボリュームのパスに変更します。
gnekoniumを起動しておきます。
explorer/tools/config.json
{
"gethPort": 8293,
"blocks": [ {"start": 0, "end": "latest"}],
"quiet": false,
"terminateAtExistingDB": false,
"listenOnly": true
}
Explorerを最初に起動するときはこのファイルを少しいじります。
最初は最新ブロックからからブロック番号0に向かって取得していきます。
"blocks": [ {"start": 0, "end": "latest"}],
"terminateAtExistingDB": true,
"listenOnly": false
この3行をこのように変更して、node tools/grabber.js を実行します。
このとき、最初に取得したブロック番号を控えておきます。
(なぜわざわざ新しい方から古い方に向かって取得していくのかは不明です。非常に面倒くさい......)
そしてその仕様のために、一度取得が終わったあと、さらにconfig.jsonを変更します。
"blocks": [ {"start": (さきほど控えた最新ブロック番号), "end": "latest"}],
同じようにnode tools/grabber.js を実行します。
短時間で次のブロックが出来てしまうので(平均19秒)、これを何度か繰り返し、すぐに次の工程に移れるように準備しておきます。
Explorerを通常運用するためにconfig.jsonを以下のように変更します。
{
"gethPort": 8293,
"blocks": [ {"start": (最後に取得した最新ブロック番号), "end": "latest"}],
"quiet": false,
"terminateAtExistingDB": false,
"listenOnly": true
}
そしてgrabber.jsをバックグラウンドで動かしたままにします。
node explorer/app.js を起動するとport3000でクライアントからの接続を待ちます。