Truffleについて

Truffle

Truffle(トリュフ)は、スマートコントラクトの開発に必要となる、コンパイル、リンク、デプロイ、バイナリ管理の機能を持つ統合開発環境フレームワークです。

デプロイやマイグレーションスクリプトで管理することができます。

Solidityを使用したスマートコントラクト開発のデファクトスタンダートになりつつあります。

truffleframework.com

インストール方法

Truffleは、npmでインストールすることができます。

$ npm install -g truffle

プロジェクト作成

$ truffle init

を実行するとプロジェクトを作成することができます。

$ truffle init
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:        truffle compile
  Migrate:        truffle migrate
  Test contracts: truffle test

コマンドの実行が完了すると、以下のディレクトリとファイルが作成されます。

名前 説明
contracts/ スマートコントラクトのディレクト
migrations/ スクリプトを記述できるデプロイメントファイルのディレクト
test/ テストファイルのディレクト
truffle-config.js Truffleの設定ファイル
truffle.js Truffleの設定ファイルの雛形

ちなみに、こんな感じのプロジェクトができました。

GitHub - akifumi/truffle-first

Truffle Develop

Truffleには、開発用のブロックチェーンとしてTruffle Developが組み込まれています。

$ truffle develop

で実行することができます。

インタラクティブなプロンプトが表示され、対話式でコマンドを実行することができます。

コントラクトのコンパイル

$ truffle compile

上記のコマンドでソースコードコンパイルできます。

truffle(develop)> compile

Truffle Developからコンパイルすることも可能です。

Truffleはコンパイル時間を短くするため、差分コンパイルが採用されています。

差分コンパイルではなく、全ファイルをコンパイルし直したい場合は、allオプションを付けます。

$ truffle compile --all

マイグレーション

マイグレーションファイルは、イーサリアムネットワークにコントラクトをデプロイする際に使用されます。

プロジェクトに新たなコントラクトを追加する際には、新規でスクリプトを追加します。

実行されたマイグレーションの履歴は、マイグレーションコントラクトによってブロックチェーン上に記録されます。

$ truffle migrate

上記のコマンドでマイグレーションが実行されます。

以前にマイグレーションが正常に実行されている場合、truffle migrateは最後に実行されたマイグレーションから実行を開始し、新たに作成されたマイグレーションのみを実行します。

新たなマイグレーションが存在しない場合は何も実行しません。

マイグレーションを最初から実行したい場合は、resetオプションを付けます。

$ truffle migrate --reset

最後に

Truffleを使って、早速アプリケーションを作成してみましょう!!