🐍

pythonを使ってRopstenテストネットワークに接続する

2020/12/10に公開

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