villagerHの日記

勉強したことや苦労した事などを書き綴ります

DApps作成①

villagerh.hatenablog.com
前回の続き

自作のコントラクトを作ったのでビルドしていきます。

コントラクトのコンパイル(プロジェクトディレクトリのルートで実行)

$ truffle compile

成功するとbuild/contracts/に.jsが作られます。

これをイーサリアム上にデプロイするといよいよ動きます。

とはいえ削除ができないのにいきなり本番に上げるのは危険すぎるのでテスト環境を用意します。

いくつかあるみたいですが私は
www.trufflesuite.com
こちらのGenacheを導入しました。
導入方法は落としてきてインストールするだけ。

アプリを実行するとどう動かすかが出るのでとりあえずQUICKLYで動かしてます。

ローカルのGenacheにデプロイするようにtruffle-config.jsを編集していきます。

module.exports = {
の中に以下を設定
networks: {
    development: {
        host:'127.0.0.1', // Genacheのアプリ上に表示されているアドレス
        port:7545, // 同上
        network_id:'*'
    }

次にマイグレーフォンファイルを設定します。
migrations/に1_initial_migration.jsが既に入っているはずなのでそれを参考にしつつ作成していきます。
数字の順番にデプロイされていくため2_initial_migration.jsを作成

var UnitFactory = artifacts.require("./UnitFactory.sol"); 
                                                          
module.exports = function(deployer) {                     
  deployer.deploy(UnitFactory);                           
};                                                        

これでマイグレーション(デプロイ)するための準備ができたので実行していきます。
プロジェクトのルートで実行

$ truffle migrate

1度マイグレーションを行うと最後に行ったファイルの次のマイグレーションファイルから実行されます。
コントラクトの修正などを行って再度上げたい場合は--resetオプションを付けて実行。

$ truffle migrate --reset

これでローカルのブロックチェーン上に自作のコントラクトがデプロイされるため実行できるようになります。d