Railsから、Ethereumのテストネットに繋げてみる
参考にしたページ
Ethereumのテストネット上にトークンをデプロイする - Qiita
前提
既にgethは、下記の通りインストール済み https://book.ethereum-jp.net/first_use/installing_geth.html
テストネットとは?
Ethereumのテスト環境的なもの。いくつか種類があるが、今回は「Rinkeby」を利用します。 ここでethereumを手に入れても、価値がない代わりに、テスト用にethereumをもらえるようです。
geth起動
こちらをそのまま実行 Ethereumのテストネット上にトークンをデプロイする - Qiita
// --syncmode "light" とすると、eth.getBalanceがうまくいかなかったので外した。 $ geth --rinkeby --datadir "/Users/user/eth_test_net" --rpc --rpcaddr "localhost" --rpcport "8545"
別ターミナルを開いて、consoleを立ち上げる
$ geth attach ipc:/Users/user/eth_test_net/geth.ipc // 同期していること確認。 > eth.syncing { currentBlock: 37476, highestBlock: 3879274, knownStates: 88320, pulledStates: 72795, startingBlock: 0 }
コマンドの意味はこちらがわかりやすい! Ethereumクライアント geth起動時のオプションの意味 - Qiita
Qiitaにある通り行って、etherをもらう。
railsとの連携
gemを入れて、 GitHub - EthWorks/ethereum.rb: Ethereum library for the Ruby language
以下のようにアクセスできる
client = Ethereum::IpcClient.new("/Users/user/eth_test_net/geth.ipc") client.get_balance([address]) // => etherの残高
しかし...
同期が終わって、get_balance してもetherをもらえていない。 etherscan 上は正しくtransactionが行われているのに、同期したファイルの、そのblocknumberは違うっぽい... 結局わからなかったので、private netですることにした。次へ続く。