週休七日

趣味のこととか、技術のこととか、読書感想文とか

Ganacheで手軽にDappsを体験する

やること

今回はGanacheを利用して、昨日作成したスマートコントラクトをテストネットワーク上で動かしてみたいと思います。

luca3104.hatenablog.com

Ganacheとは

truffleframework.com

一言で言うとONE CLICK BLOCKCHAINです(!?)

ローカル環境にEthereumのテストネットワークを手軽に立ち上げることができます。

ダウンロード

f:id:luca3104:20180406090449p:plain ヘッダー右下にある、DOWNLOADボタンをクリックし、ダウンロードを開始します。

開く

アプリケーションを開始すると、以下のような画面になります。 f:id:luca3104:20180406091257p:plain 最初からテスト用に複数のアカウントと、それぞれ100ETHずつあることが確認できます。

ネットワークの確認

アプリケーション右上にある⚙ボタンをクリックし、設定画面を開きます。
設定画面内にサーバーの情報が書かれているのでメモします。
f:id:luca3104:20180406092914p:plain

デプロイの準備

前回の記事で作成したトークンのディレクトリに移動します。
ディレクトリ内にあるtruffle.jsを以下のようにします。

module.exports = {
  networks: {
    development: {
      host: '127.0.0.1',
      port: 7545,
      network_id: 5777
    }
  }
};

このtruffle.jsは接続するEthereumのネットワークに関する設定ファイルです。

デプロイする。

コマンドラインから以下を実行し、コントラクトコードをGanacheのネットワークにデプロイします。

truffle migrate --network development

すると以下のようになります。 f:id:luca3104:20180406165233g:plain

これでデプロイが完了です。 コントラクトをデプロイした際にETHが減ります。

コンソールを開く

以下のコマンドでコンソールを開きます。

truffle console --network development

送金

前回の記事同様、accounts[0]からaccounts[1]にに送金します。

truffle(development)> token.transfer(web3.eth.accounts[1], 10000e18)

無事送金ができました!

ETHが小数点以下二桁しか表示されていないのでわかりづらいですが、何回か送金すると、gathとしてETHが使用されていることがわかります。
f:id:luca3104:20180407150335g:plain

最後に

ネットワークを実際のEthereumに向けてデプロイすると実際にトークンが発行できます。
web3.jsを利用すると実際にコンソールで叩いていたコマンドがjsで実装できるのでアプリケーションが作れます!
github.com

何かいいアイデアが思いついたらDapps作ってみたいと思います!