pythonを使ってRopstenテストネットワークに接続する
pythonのweb3パッケージを使ってイーサリアムのテストネットワークに接続してみます。
1. gethのインストール
まずはイーサリアムに接続するためのアプリであるgethをインストールします。
web3.pyのドキュメントから今回はipc(Inter-Process Communication, プロセス間通信)を使った方法で接続します。
公式サイトからgethをダウンロードします。
今回はwindowsを使っています、ダブルクリックしてすぐ終わりました。
ターミナルを起動してgethがインストールされているか確認しましょう。
gethと入力してしまうとメインネットにつなぎにいくので--versionオプションを付けます。
geth --version
2.web3のインストール
pip install web3
で終わります。エラーが出る場合は管理者で実行するか、pip3でインストールする、python -m pipでインストールするとかすると多分治ります。
import web3
でエラーが出なければokです。
3. Ropstenテストネットワークにアクセスする
まずはgethをライトノードで起動させます。
geth --ropsten --syncmode "light"
ライトノードを使うと、自分と関係のあるトランザクションだけを取得するので同期が一瞬で終わります。
gethを起動するとipcのurlが表示されると思います、これをコピーしておきます。
次に別ターミナルでpythonを起動して、接続してみましょう。
from web3 import Web3
provider = Web3.IpcProvider("your geth.ipc file path")
w3 = Web3(provider)
w3.isConnected()
web3.eth.getBlock('latest') #最新のブロック情報を取得する
後は公式サイトのExampleをみながらいろいろやってみます。
おまけ
ipcによる接続は、同じコンピュータにgethがあるときにいいと公式に書いてありました。また、セキュリティ的にも処理的にも一番よいとのことです。
他にもinfura.ioというAPIのサービスもありました。こっちだとより簡単にできるっぽいです。
Discussion