Ethereum開発環境 Truffle を試す

今月はFintech 系の開発があるため、Ethereum のための開発環境 Truffle をインストールして使ってみます。

Truffle公式

http://truffle.readthedocs.io/en/docs/

Ethereum公式

https://ethereum.org/

Etherumでは、スマートコントラクト(よい日本語訳はないだろうか?気持ちいい契約?)を実装し、ネットワークにdeployすることができます。おなじみのマイニングをして、通貨Etherを獲得したりスマートコントラクト上の契約を実行したりすることができます。トランザクションは、ビットコイン同様ネットワーク上のブロックチェーンに記録されていきます。

Truffleは、EthereumのコントラクトとインタラクトするプログラムをJavaScriptでテンポよく実装・テストすることができる、開発環境です。前提としてNode.js(5.0以上推奨)が必要です。

サンプルとして、Etherの送金をするアプリ”MetaCoin”が付いてくるので、インストールからテストまで実行してみました。手順は次の通りです。

  1. コントラクトのコンパイル
  2. アプリのビルド
  3. Ethereumクライアントの実行
  4. コントラクトのEthereumへのデプロイ

ここで、アプリというのはコントラクトとやり取りするJavaScript製のプログラムです。それぞれのやり方は公式ページに書いてあります。いずれも、簡単なコマンド一発で行えます。

3のEthereumクライアントは、開発時と本番時では別のものを使うことになります。開発時にはノードがひとつしか存在しない(したがってすぐに反応が返ってくる)クライアントを使わないと、効率が悪いからですね。ethereumjs testrpcを使います。本番時には、GETHなどのマルチノードのクライアントを使います。

ethereumjs testrpc(GitHub)

以上を行ったうえで、ブラウザを開くと・・・

MetaCoin

このように、MetaCoinアプリがブラウザで表示されます。Amountに金額、To Addressに送金先アドレスを入力してボタンを押せば、送金されて、持ちMETA(実際はEther)が減額されます。

とまあ、もっとも原始的なアプリではありますけど、コードを見ると

 

  • refreshBalance() が持ちMETAのリフレッシュ表示
  • sendCoin()が送金
  • window.onloadでアカウント情報を取得してrefreshBalance()呼び出し

と、読めばすぐわかるコードとなってます。

40行目のweb3というオブジェクトが、Etehereumクライアントとやり取りする胆のオブジェクトらしいです。この辺は順に深堀していこうと思います。

私は誇り高きPHPerですので、JavaScriptの長く連なるコードにいろいろと興奮しつつ、TruffleとEthereumの勉強をしていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です