Ethereum プライベートネットワークで ether をマイニングしても eth.blockNumber 0 なのは DAG が生成完了してないのが原因

Ethereum プライベートネットワークで ether をマイニング (採掘) してみても eth.blockNumber 0 のままで困っていたのですが、最初は 10 ~ 30 分ぐらい DAG の生成完了を待つ必要があるみたいでした。

Ethereum | イーサリアム

ether のマイニング

etherを採掘する · Ethereum入門 に沿って、プライベートネットワークで ether をマイニング開始してみました。

しばらく、以下の状態が続いたので、

> eth.blockNumber
0
 
> eth.mining
true
 
> eth.hashrate
0

「正常にマイニングされてない?」と思って調べてみたところ Ethereum入門の脚注 にちゃんと書いてました。

環境によって採掘の速度は異なります。最初の採掘開始後は、最初の10分~30分の間、DAGの生成(「Ethereumの内部」の章を参照)が行われ、その間はブロックは採掘されません。DAGの生成が完了次第、ブロックの採掘が自動的に開始されます。

10分ぐらい経って、ether をマイニングできていることが確認できました。

> eth.blockNumber
918

DAG 生成完了の確認

念の為、DAG の生成開始から完了までの時間を log ファイルから確認してみると、22:10 – 22:18 だったので 8 分ぐらい掛かっていたことが分かりました。

$ grep DAG geth_err.log
INFO [08-13|15:37:46.890] Disk storage enabled for ethash DAGs     dir=/Users/username/.ethash                           count=2
INFO [08-13|22:10:32.058] Generating DAG in progress               epoch=0 percentage=0 elapsed=1.499s
INFO [08-13|22:10:33.384] Generating DAG in progress               epoch=0 percentage=1 elapsed=2.824s
 
...
 
INFO [08-13|22:18:24.434] Generating DAG in progress               epoch=1 percentage=98 elapsed=4m39.704s
INFO [08-13|22:18:28.253] Generating DAG in progress               epoch=1 percentage=99 elapsed=4m43.523s

[補足] DAG とは?

DAG については、DAGとは? – イーサリアム wiki | イーサリアム・ジャパン を読んで下さい。

以上、Ethereum プライベートネットワーク ether をマイニングしても eth.hashrate 0 で少し困った、現場からお送りしました。

参考情報