カテゴリー別アーカイブ: 栃木Ethreum勉強会 実習課題

栃木Ethereum勉強会 実習課題 (1)

今回の目標

EthereumのDApp開発のための環境を構築し、TruffleのボイラープレートアプリケーションのひとつMetaCoinを動作させること。

エンジニアの人が集まっているようなので、まずコマンドライン(truffle console)で全て動かし、何をしているかコードレベルで確認します。今回の内容は、EthereumでDAppを作るための基本要素で、千本ノック的に体得するといいです。更の環境から7番まで、1時間かからないでいけるまで頑張りましょう(ニッコリ)

OSなどは各自の環境で違うと思いますが、ここではvagrant上のubuntu16.04でのコンソールの状態を転記しています。

実習

1. NodeJs をインストールしよう

ここに、apt-getなどパッケージマネージャーでのインストール方法が書いてあります。

https://nodejs.org/ja/download/package-manager/

ubuntuでのNode.js のインストール

確認

 2. Truffle をインストールしよう

確認

3. Ganache CLIをインストールしよう

Ganache CLIは、以前使っていたtestrpcがTruffle Suiteに取り込まれたものです。UI付きでトランザクションやアカウントの管理が出来るGanacheの、コマンドラインバージョンです。

http://truffleframework.com/ganache/

Ganacheは見た目がとてもきれいで使いやすそうなんですが、今回は時間と環境の制約上CLIバージョンを使用します。

4. MetaCoinプロジェクトを作ろう

MetaCoinは、truffleのボイラープレート(テンプレのようなもの)として用意してありますので、unboxします。MetaCoin以外にもいろいろあります。http://truffleframework.com/boxes/

contracts/MetaCoin.sol というファイルがContract本体になります。下にコードを掲載します。もう皆さん見飽きていると思いますが、今回確実に動作させて次に参りましょう。

truffle.jsのコンフィグを書き加えます。

5. Ganeche CLIを起動しよう

6.  Contractをマイグレートしよう

7. truffle console でMetaCoinを動かそう

truffle consoleを起動します。

ganache-cliがアカウントを10個用意してくれています。そのうちの2つでMetaCoinをやり取りしてみます。

現在のETH残高を確認。

deployされたMetaCoinをインスタンス化。

ContractのgetBalanceメソッドを呼び出して、送金前のMetaCoin残高を確認。これは、Ethereumの“Call”になります。→ CallとTransactionの違い

contarctのsendCoinメソッドを呼び出してMetaCoinをアカウント1からアカウント2へ送金。これはEthereumの“Transaction”になります。→ CallとTransactionの違い

送金後のETH、MetaCoin残高を確認

truffle console を終了。

8. CallとTransactionの違い

Ethreumブロックチェーンに対してクライアントから送る指示には、CallとTransactionがあります。違いは次のようになります。

Call

  • Gasを使用しない
  • ネットワークの状態を変えない
  • すぐに処理される
  • 値を返す

Transaction

  • Gasを使用する
  • ネットワークの状態を変化させる
  • マイニングされるまで処理されない
  • Transaction IDを返す

演習

Metacoin.solのメソッド getBalanceInEth を truffle console から実行して、結果を確認してみよう。