Ethereumアプリの開発フレームワークTruffle入門

  • このエントリーをはてなブックマークに追加
  • Pocket
         

はじめに

前回はMistを使ったトークン開発について解説しました。

本格的にスマートコントラクト開発を進めていくために、現在メジャーな開発フレームワークであるTruffleを使ってみます。

動作環境

  • macOS High Sierra Version 10.13
  • Mist Version: 0.9.3
  • Geth Version: 1.7.2
  • truffle: 4.0.4

Truffleとは?

Ethereumアプリケーションの開発フレームワーク。コントラクトのコンパイルやデプロイ、テストなどが可能です。

コントラクトの言語はSolidityで、フロントにReactを使ったテンプレートなども公開されています。

スマートコントラクト系のアプリケーションはWebアプリ開発の知見がどうしても少ないので、先駆者としてコミュニティを引っ張ってくれている存在はありがたいです。

Truffleインストール

早速インストールして見ましょう。

公式通りnpmコマンドでインストールします。

新規プロジェクト作成

コントラクトアプリを作成していきます。

以下の手順通りにプロジェクトフォルダを作成し、初期化コマンドを実行します。

するとプロジェクトフォルダ以下にデフォルトファイルが生成されます。

contractsフォルダに以下のコントラクトコードファイルを作成します。

単純にステート変数を持たせて、値を設定または取得するだけのシンプルなコントラクトです。

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

次にコントラクトをコンパイルします。

コンパイルが完了すると、以下のJSONファイルが生成されます。

./build/contracts/SampleContract.json

マイグレーション

Truffleではコントラクトデプロイをマイグレーションファイルで管理できます。

このマイグレーションファイルはJavaScriptで記述され、コントラクトへ渡すパラメータも定義することができます。

今回はシンプルなマイグレーションファイルを作成します。

./migrations/2_sample_contract_migration.js

ファイル名は必ず数字から始める必要があり、この数字順にマイグレーションが実行されます。

デプロイ

マイグレーションファイルが作成できたらデプロイを実行します。

以下のコマンドでテスト環境(localhost:9545)が起動し、コンソールモードが使えます。

マイグレーションを実行します。

コントラクトがデプロイされました。
コントラクトのアドレスは以下の通りです。

コントラクトオプジェクトを生成します。

コントラクトアドレスはSampleContract.addressでアクセスできます。

コントラクトオブジェクトの中身を見てみます。

オブジェクトからパラメータや関数にアクセスすることができます。

コントラクトの実行

コントラクトに値を設定します。

設定した値を取得することもできました。

まとめ

Truffleを使ったスマートコントラクト開発を試してみました。
サンプルコードを実行してみるだけならともかく、実際に商用アプリを開発する場合はTruffleのようなフレームワークは必須です。

このまま開発環境が整ってくればスマートコントラクトの開発がもっと盛り上がるかもしれませんね。

スマートコントラクトのDevOpsをもっと研究していきたいと思います。

それでは!

スポンサーリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*