今回はBeacon Chainのblock情報をinfura.ioを使って取得する方法について記事にする。
twitterで話題になっている、reorgについて何が起きてるのかを調べるためにblockの情報を見てみたいなぁと思ったのがきっかけである。
The Ethereum beacon chain experienced a 7-block deep reorg ~2.5h ago. This shows that the current attestation strategy of nodes should be reconsidered to hopefully result in a more stable chain! (proposals already exist) pic.twitter.com/BkQrKuUlw1
— Martin Köppelmann 🇺🇦 (@koeppelmann) 2022年5月25日
なお、自前でnodeを立てるのは少し大変なので、infura.ioを使ってBeacon ChainのBlock情報などを取得する。
しかしながら、infura.ioを使ってBeacon Chainの情報を取得する方法をまとめた記事が少し調べただけだと見つからなかったので、今回記事として残しておこうと思った。
Clientツール
今回はBeacon Chainから情報を取得する方法を簡単に調査する程度なので、infura.ioへのアクセスにはPostmanを利用する。
www.postman.com
infura.ioでETH2.0のプロジェクトを作成
infura.ioでアカウントの作成の仕方などは他の記事に譲る。本記事ではアカウントを既に持っていることを前提とする。
infura.ioにログインして、右上の「Create New Project」から新規のプロジェクトを作成する。この時に、PRODUCTに「ETH2.0」を選択すると、Beacon Chain(ETH2.0)の情報にアクセスできるendpointが発行される。
Projectが作成されたら、ProjectIDやSecret KeyそれからEndpointが表示されるので、https://〜から始まるendpointをコピーする。
Beacon ChainのREST API
Eth1.0ではnodeから情報を取得するときはJSON-RPCでリクエストする必要があったが、Beacon ChainではRESTful APIでリクエストする。
利用可能なREST APIは以下のページで紹介されている。
docs.infura.io
より詳しい使い方は、infura.ioが利用しているnode clientのTEKUのページを参照すると良い。
consensys.github.io