TruffleとINFURAで作るEthereum開発環境
# 目次
TruffleとINFURAでイーサリアムの開発用、本番用ネットワークに接続できる開発環境を作成する方法を紹介します.
この記事で得られるもの
- TruffleでINFURAに接続する設定方法
- コンソールで開発用、本番用ネットワークへ接続する方法
# 事前準備
ここではUbuntu上での設定を想定しています.
Mac、Windows上に仮想マシンとしてインストールすることも可能です.
以下の記事を参考にインストールして下さい.
また、MetaMask・Truffle・INFURAの3つが必須となります.
以下の記事を参考にインストールして下さい.
EthereumノードホスティングサービスINFURAを設定する
Ethereum開発支援ツール「Truffle」をセットアップ
# TruffleでINFURAに接続する設定方法
Truffleはインストール済みでtruffle develop
が実行できると想定しています.
TruffleでINFURAに接続するためにtruffle-hdwallet-providerというライブラリを使用します.
truffleの作業用ディレクトリの中でインストールしましょう.
C++のコンパイルのためにg++も必要です.
sudo apt-get install -y g++
npm install truffle-hdwallet-provider@0.0.5
※痛い目に合わないように、バージョンは明示的に指定しましょう.
truffle.jsにINFURAへの接続するように設定します.
以下2つの変数は各自のもので設定して下さい.
- infura_key – INFURAからメールで届いたキー(URL末尾)
- mnemonic – MetaMaskでウォレット作成時に保存した12語の英文
var HDWalletProvider = require("truffle-hdwallet-provider");
var infura_key = "XXXXXXXXXXXXXXXXXX";
var mnemonic = "YYYYYYYYYYYYYYYYYYYYYY";
module.exports = {
networks: {
ropsten: {
provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/" + infura_key),
network_id: "*",
gas: 4000000
},
mainnet: {
provider: new HDWalletProvider(mnemonic, "https://mainnet.infura.io/" + infura_key),
network_id: "*",
gas: 4000000
}
}
};
# コンソールで開発用、本番用ネットワークへ接続する方法
Mainnetへ接続してみましょう.
../node_modules/.bin/truffle console --network mainnet
以下のように表示されたら成功です.
truffle(mainnet)>
Ctrl+Cで停止し、Ropstenネットワークにも接続してみましょう.
../node_modules/.bin/truffle console --network ropsten
以下のような表示になります.
truffle(ropsten)>
TruffleとINFURAを使ったEthereum開発環境構築は以上です.