EthereumノードホスティングサービスINFURAを設定する
# 目次
INFURAはイーサリアムのノードをホスティングしてくれるサービスです.INFURAを使うメリットや導入方法を紹介します。
この記事で得られるもの
- INFURAとは何か
- 登録方法と使い方
# INFURAとは何か
INFURA(インフラ)は、Ethereumのノードをホスティングしてくれるサービスです.
イーサリアム上でアカウントを作ったり、送金・マイニング・サービスの公開を行うためにはイーサリアムノードを立ち上げて、イーサリアムネットワークに参加する必要があります.
ところが自分のPC上にノードを立ち上げると、ブロックチェーンのデータが数百GBもダウンロードされ、同期処理に数日かかります.
容量も時間も無駄になります.
INFURAで提供されている、すでに同期済みのノードを使うとその無駄を避けることができます.
自分でコントラクトを書き、Dappsやスマートコントラクトを公開する時にINFURAを経由して公開することができます.
# INFURAへの登録方法
上記へアクセスして
- First(名前)
- Last(名字)
- What is your email address?(メールアドレス)
- Terms of Service(利用規約)
を記入し、「I’m not a robot」にチェック.
重要なメールが届くので、必ず受信できるメールアドレスを入力しましょう.
Mailing Listはチェックしてもしなくても構いません.
「Submit」をクリック.
# INFURAへの接続確認
infura@infura.ioから先ほど登録したメールアドレスへ以下のようなメールが届きます.
Main Ethereum Network
本物のイーサリアムネットワークのノードへ接続するためのURLです.
Test Ethereum Network (Ropsten)
世界中で広く使われている開発テスト用ネットワークのURLです.
これらのURLがINFURAに接続するために必要になります.
お好きな言語でPOSTリクエストを送って接続確認をしてみましょう.
メールで届いたURLに対して以下のJSONをPOSTリクエストします.
methodとparamsを変更することで様々な操作が可能です.
{
"jsonrpc" : "2.0",
"id" : 67867379,
"method" : "eth_blockNumber",
"params": []
}
ここではCURLというコマンドを使用する例を示します.
最後のURLをあなたのものに変更して以下を実行してみて下さい.
curl -H 'Content-Type:application/json' -s -X POST --data '{"jsonrpc":"2.0","id":67867379,"method":"eth_blockNumber","params":[]}' https://ropsten.infura.io/XXXXXXXXXXXXXXX
以下のようなJSONレスポンスが返って来たらOKです.
{"jsonrpc":"2.0","id":67867379,"result":"0x305560"}
Ethereum上のアプリ(Dapps)はこのようにノードとJSON RPCを介してコミュニケーションすることで動作します.
以上INFURAの紹介でした.
# より深く知るために
JSON RPC仕様
http://www.jsonrpc.org/specification
Ethereum wiki JSON RPC