2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Blockchain(ブロックチェーン)Advent Calendar 2021

Day 2

Ethereumハードフォークの日時を予測するスクリプト

Last updated at Posted at 2021-12-01

Ethereumハードフォーク

もうすぐ、EthereumのArrow Glacier Network Upgrade(Hard Fork)が行われます。

12/8頃といわれていますが、具体的にいつになるか知りたいこともありますよね。

Bitcoin Cashは日時でハードフォークなので予定を立てやすいですが、
Ethereumはブロック高でハードフォークであり、ブロック生成スピードは刻一刻と変わるので、いつになるか分かりません。

そこで、少しでも予想の幅を知りたいので、スクリプトを作ってみましょう。

なお、Ethereumハードフォークカウントダウンサイトはあります。

ethernodeは毎回ハードフォークカウントダウンしてくれて結構精度高いけど、今回のArrow Glacierはなぜかやってくれず、前回のLondonのままです。

etherscanもカウントダウンがありますが、精度悪いです。

というわけで、自分で予測するしかない!

スクリプト

↓こちらにJS製の予測スクリプトがあります。

git clone https://github.com/shu-kob/eth-web3apps
cd eth-web3apps
npm install

ソースコードを見ると、

eth-upgrade-timing-estimation.js
const INFURA_API_KEY = process.env.INFURA_API_KEY;

とINFURAのAPI Keyを環境変数から呼び出しています。

INFURAでアカウント作って、API Keyを取得しましょう。

無料のでOKです。

環境変数にセットします。

ETHERSCAN_API=XXXXXXXXXXXXXXXXX
eth-upgrade-timing-estimation.js
const hardForkBlockNumber = process.env.ETH_UPGRADE_BLOCKNUMBER;

とハードフォークブロック高を環境変数から呼び出しています。

今回のArrow Glacierだと、ハードフォークブロック高は13773000。

ETH_UPGRADE_BLOCKNUMBER=13773000

環境変数にセットしてあげます。

これらは何回か使うことを考えて、Macなら ~/.zprofile などに書いてあげるのもよいでしょう。

vi ~/.zprofile
~/.zprofile
export ETHERSCAN_API=XXXXXXXXXXXXXXXXX
export ETH_UPGRADE_BLOCKNUMBER=13773000
source ~/.zprofile

実行してみます。

node eth-upgrade-timing-estimation.js

結果は以下

現時点でのEthereum Mainnetハードフォーク予想日時(JST)
直近 10000  ブロック生成平均時間:  13.8458 秒    の場合:    2021/12/10 5:11:16
直近 50000  ブロック生成平均時間:  13.76354 秒    の場合:    2021/12/10 4:00:28
直近 100000 ブロック生成平均時間:  13.72382 秒    の場合:    2021/12/10 3:26:17
ブロック生成時間  12  秒の場合:    2021/12/9 2:42:50
ブロック生成時間  13  秒の場合:    2021/12/9 17:03:24
ブロック生成時間  14  秒の場合:    2021/12/10 7:23:58
ブロック生成時間  15  秒の場合:    2021/12/10 21:44:32
ブロック生成時間  16  秒の場合:    2021/12/11 12:05:06
ブロック生成時間  17  秒の場合:    2021/12/12 2:25:40

こう見ると、直近1万から10万のブロック生成平均時間が13秒台なので、
ブロック生成時間13〜14秒の2021/12/9夕方から2021/12/10朝くらいになるとわかります。

リアルタイム監視するなら日本時間では深夜になって辛そうですね。

INFURAのAPIは便利なので、ハードフォーク日時予測以外にもいろいろ活用してみましょう!

2
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?