dApps

イーサリアムのスマートコントラクトを簡単にデプロイできる「Ethereum dApps Quickstart」をリリースしたよ!

クリプトゾンビでイーサリアムのコントラクトを書けるようになったが、コントラクトをデプロイするのに苦労するという相談をよく受けるので、イーサリアムのスマートコントラクトを簡単にデプロイできる「Ethereum dApps Quickstart」を作成しました。

Ethereum dApps Quickstartを使用するには、事前に環境設定を行う必要があります。

【dApps開発環境】買ったばかりのMac BookにSolidity開発環境(Truffle)を構築したよ!(Windows 10でも確認済み)

Ethereum dApps Quickstart

Ethereum dApps QuickstartはGithubで公開しています。
Ethereum dApps Quickstart

Ethereum dApps Quickstartをダウンロードしよう

Ethereum dApps Quickstartのクローンを作成します。

git clone https://github.com/ookimaki/ethereum_dapps_quickstart.git

クローンされたEthereum dApps Quickstartのディレクトリに移動します。

git clone https://github.com/ookimaki/ethereum_dapps_quickstart.git

「truffle-hdwallet-provider」と「fs」をインストールします。
下記のコマンドで自動的にインストールされます。

npm install

MnemonicとInfura Access Tokenを設定しよう

Mnemonic

Mnemonicとはウォレットアドレス作成時に保存するように言われる12個の単語のことです。入力したMnemonicに紐づくアドレスからコントラクトをデプロイすることができます。

下記の”mnemonic”を編集します。

“Put your mnemonic here”を削除し、代わりに自分のMenemonicを入力します。

follow other void miss cup meat advance icon name awful enable own

Infura Access Token

Infuraに登録しProjectを作成すると、Access Tokenが発行されます。

下記のAPI Keyを使用します。

下記の”infura_access_token”を編集します。

“Put your infura access token here”を削除し、代わりに自分のInfura access tokenを入力します。

386fd6eab9c3424da295379207b3ea5e

MnemonicとInfura access tokenは人に教えてはいけません。
当記事で使用しているのはブログ用に新規取得したサンプルです。

コントラクトをデプロイしてみよう

※Windowsの場合は、”truffle”の代わりに”truffle.cmd”を使用します。

truffle.cmd migrate

Localchain

Ganacheを起動します。

Ganacheの起動後、下記のコマンドでコントラクトをLocalchainにデプロイすることができます。

truffle migrate

Testnetへのデプロイ

下記のコマンドでTestnetにデプロイすることできます。
Mnemonicに紐づくアドレスに対象のテストネットのイーサを入れておく必要があります。

truffle migrate --network ropsten
truffle migrate --network rinkeby

Mainnetへのデプロイ

Mainnetにデプロイする際は、イーサを消費するのでGasPriceを適切に設定しておくことをお勧めします。
ちなみにTruffleのデフォルトは100gweiなので、大量にイーサを消費してしまいます。

下記の”Truffle.js”を編集します。

下記の”gasPrice”を適切に設定します。

    //This is for migrating to mainnet
    live: {
      provider: function() {
        return new HDWalletProvider(
          mnemonic,
          "https://mainnet.infura.io/" + accessToken
        );
      },
      //It is recommend to set gasPrice (in wei)
      gasPrice: 10000000000, //ex. 10 gwei = 10000000000
      network_id: 1
    }

適切なGasPriceはETH Gas Stationで取得できます。

上記で表示されているGasPriceはgweiなので、Ethereum Unit Converterでweiに変換します。

下記のコマンドでMainnetにデプロイすることできます。

truffle migrate --network live

下記がデプロイされたコントラクトのアドレスです。

後は”SimpleStore.sol”を編集し、フロントエンドを作成するだけで簡単なdAppsが作成できるようになります。
なにか質問があれば、オオキマキ(@ookimaki_JP)まで!