infura ethereum

TruffleとINFURAで作るEthereum開発環境

TruffleとINFURAで作るEthereum開発環境
Feb. 2, 2020, 1:51 p.m.

目次

TruffleとINFURAでイーサリアムの開発用、本番用ネットワークに接続できる開発環境を作成する方法を紹介します.

この記事で得られるもの

  • TruffleでINFURAに接続する設定方法
  • コンソールで開発用、本番用ネットワークへ接続する方法

事前準備

ここではUbuntu上での設定を想定しています.

Mac、Windows上に仮想マシンとしてインストールすることも可能です.

以下の記事を参考にインストールして下さい.

Ethereum開発を快適にする仮想マシンの作成

また、MetaMask・Truffle・INFURAの3つが必須となります.

以下の記事を参考にインストールして下さい.

MetaMaskのインストールと基本操作

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開発環境構築は以上です.