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の勉強をしていきます。

コメントを残す

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