2018.10.11
EthereumのBlockchain explorer「etherchain-light」
こんにちは、次世代システム研究室のN.O.です。
Blockchain explorerはブロックチェーンのブロックやトランザクションの内容を参照するのに便利なツールです。パブリックのネットワークにはhttps://etherscan.io/などがありますが、Z.com cloud ブロックチェーンは独自のネットワークを採用しているため、自分でBlockchain explorerを用意する必要があります。ガイドではetherparty/explorerを紹介していますが、他にも様々なBlockchain explorerが存在します。今回はそのひとつ、gobitfly/etherchain-lightを使ってみたいと思います。
導入
導入にあたって今回はvagrantで構築したZ.com cloud ブロックチェーンのdeployノードを利用します。作成方法についてはガイドをご覧ください。
etherscan-lightはNode.jsのwebアプリケーションとして動作します。ブラウザで表示させるため、deployノードのVagrantfile
にポートフォワードの設定(3行目)を追記します。
Vagrant.configure("2") do |config| config.vm.box = "local-provider-node" config.vm.network "forwarded_port", guest: 3000, host_ip:"127.0.0.1", host: 3000 end
parityに3つの起動オプション--tracing=on --fat-db=on --pruning=archive
を追加します。vagrantで構築したdeployノードにはparityの起動スクリプトstart-parity.sh
がありますが、こちらに適宜追記してください。
#!/bin/sh mkdir -p /var/log/parity parity --no-warp --geth --tracing=on --fat-db=on --pruning=archive 2>&1 | flog -p /var/run/parity.pid /var/log/parity/mining.log &
parityを起動します。これによりBlockchainの同期が始まります。
同期には時間がかかりますので、並行してetherscan-lightのセットアップを始めます。
まずNode.jsをインストールします。
ubuntu xenialに収録されているNode.jsはv4.2.6となっており、etherescan-lightを動かそうとするとエラーが発生します。
そこで現行LTSのバージョンである8をインストールします。
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
次にGitHubからetherscan-lightをcloneします。
git clone https://github.com/gobitfly/etherchain-light --recursive
cloneには結構時間がかかりますが、これはsubmodule ethereum/solc-binのサイズが3GB近くとかなり大きいためです。
cloneが終わったらnpm install
です
cd etherchain-light sudo npm install
config.jsを用意します。config.sample.jsをコピーし、this.ipcPath
を以下の通り修正します。
this.ipcPath = process.env["HOME"] + "/.ethereum/geth.ipc";
起動します。
npm start
ブラウザでetherscan-lightにアクセスします。
http://localhost:3000
画面
etherscan-lightではブロック、トランザクション、各アドレスに関する情報を参照することができます。
コントラクト アドレス
通常のアドレスの画面と似ていますが、Codeのタブが加わっています
このようにブロックやトランザクション、アドレスの内容がブラウザで閲覧できます。vagrantで起動したVMのスペックは1core、1GBで、parityも一緒に動作していますが、ブラウザの操作も軽快です。コントラクトやDappのデバッグにぜひご活用ください。
次世代システム研究室では、アプリケーション開発や設計を行うアーキテクト、またはブロックチェーンのエンジニアを募集しています。次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD