今更ながらの記事になりますが、今回はWindows 11上でPrysmとGethを利用してBeacon Chainのテストネットである、Praterテストネットの環境を構築する手順を紹介する。
今回記事に整理する経緯としては、2022/06/09の01:00ごろに無事にRopstenがThe Mergeに移行した。次はGoerliがThe Mergeに移行される予定となっている。
多分、今動いているPrater+Goerliの環境がThe Mergeに移行されると思うので、Prater + Goerliの環境構築を今一度まとめてみる。
なお、今回はWSL2は用いずに、純粋なWindows上でGethとPrysmを動かす手順を整理している。
環境構築手順はPrysmの公式ページを参考にしている。
docs.prylabs.network
バージョン情報
GethとPrysmはそれぞれ以下のバージョンを用いた
Geth: 1.10.18-stable
Prysm: v2.1.2
PowerShellのインストール
Windows 11だと、Windows PowerShellがデフォルトでインストールされてるのでもしかしたら必要ないかもしれない。
ただ、自分はPowerShellで環境構築を実施したので、インストールすることをお勧めする。
ちなみに、コマンドプロンプトだと、`mkdir`などのlinux likeなコマンドが使えないので、Windows PowerShellもしくは、PowerShellが必須となるはず。
PowerShellは以下のページからインストール可能。
docs.microsoft.com
Goerliテストネットと同期する
gethを使ってGoerliテストネットと同期する。今回自分はJドライブに専用のSSDを割り当てたので、datadirを指定して実行した。
具体的には以下のコマンドを実行する。
geth.exe --goerli --datadir="J:/goerli/" --http
Prysmをインストールする
Prysmの公式からインストールと実行するためのbatファイルが提供されているので、それを用いてインストールを行う。
公式にある通り、curlでbatファイルを取得する。
mkdir prysm && cd prysm curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.bat --output prysm.bat
次にPowerShellでANSIシーケンスを有効にするためにレジストリに設定を追加する。こちらも公式にある通り、以下のコマンドを実行する。
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
ANSIシーケンスを有効にすることで、Prysmのログ出力が正しく表示されるようになる。詳しくは以下を参考。
www.gavo.t.u-tokyo.ac.jp
# genesis.sszをダウンロード
Praterテストネットのgenesis.sszをダウンロードする。公式ページには記載されていないが、以下のgithubで公開されているものを利用すると良い。
github.com
# Praterテストネットと同期する
Prysmを実行してPraterテストネットと同期する。
先ほどダウンロードしたbatファイルとgenesis.sszを利用する。なお、Prysmのインストールはbatファイルを実行したときに自動的に行われる。
公式にある通り、以下のコマンドを実行する。
※自分の環境ではprysm.batを指定するときに”.\prysm.bat"と指定する必要があった。
./prysm.bat beacon-chain --http-web3provider=http://localhost:8545 --prater --genesis-state=genesis.ssz
以上でGeth + Prysmを用いてPraterテストネットの同期が始まる。なお、同期には結構時間がかかる。自分の環境ではおおよそ60hぐらいと表示された。まだ同期が終わっていないので正確な時間は不明。