>【Dappsアプリ】選挙投票Dappsの作成-その1-2018/08/12truffleからフレームワークをダウンロードするアプリ開発用のディレクトリ「election」をつくります。そのディレクトリに移動したら、スマートコントラクトのテスト用フレームワークであるTruffleから、pet-shopというフレームワークをダウンロードしましょう。pet-shopすると、パッケージがダウンロードされます。contractsというディレクトリのなかには、すでにMigration.solというスマートコントラクトのファイルがダウンロードされています。(空だったelectionディレクトリのなかにこのようなフレームワークのファイルがインストールされます。)このMigration.solファイルがスマートコントラクトをブロックチェーンネットワーク上にデプロイするときの各種処理のハンドリングを行います。その下のMigrationディレクトリは、スマートコントラクトをブロックチェーンネットワーク上にデプロイした際に生成されるファイルが格納されます。このMigrationというのは、たとえばwebアプリケーションの他の環境からデータベースを移すことと同様です。実際にMigration.solでスマートコントラクトが実行されたときに起きていることというのは、ブロックチェーンネットワーク(データベース)に対するトランザクションの発行です。)の状態の変化が起きます。node_moduleディレクトリはこれらのブロックチェーンシステムに依存性のないディレクトリです。srcディレクトリでは、クライアントサイドアプリケーションの開発を行います。testディレクトリでは、テストファイルを保存しておき、すべてのファイル依存性を特定するパッケージJSONがあります。その中にあるtruffle.jsファイルがmainのconfigurationファイルになります。コントラクトのコードを書いていくcontrantsディレクトリに「Election.sol」というファイルを作成しましょう。注意点として、ファイル名の先頭を大文字にしましょう。ファイル名を大文字にしたファイルは、冒頭で利用するsolidityのversionを宣言します。コントラクトの宣言を行います。その中でコンストラクタの定義をしましょう。コンストラクタはマイグレーションを行うときや、コントラクトをブロックチェーンネットワークにデプロイするときには必ず実行されます。コンストラクタは、コントラクトと同名で定義します。public{}として宣言が可能。}}マイグレーションを生成するために、スマートコントラクトをブロックチェーン上にデプロイする必要があります。migrateを入力しましょう。migration.jsファイルはマイグレーションを実行するための参照点となります。実際にこれを実行するために、migrationsディレクトリの中に、”2”という番号付きのファイルを生成する必要があります。これにより、truffleフレームワークにファイルの実行順序を認識させることができます。consoleでブロックチェーンネットワークと通信ができるかを確認します。instance})を実行して、先ほどデプロイしたスマートコントラクトによって発行されたtransactionがどのような状態を持っているかを確認します。app.addressで発行したtransactionのアドレスの確認をします。1”という値がブロックチェーンネットワーク上のトランザクションにセットされていることが確かに確認できました。ちなみに、このcandidate()という関数は、solidityが与える標準関数なので、私たちのほうでなんらかの宣言等をする必要もなく使用することができます。migrateするとうまくいきます。ブロックチェーン上の変化を見てみるではganacheを見てみましょう。上のアドレスのBALANCEの値が99.95ETHになっています。ethereumブロックチェーン上のデータを読み込むのはタダ(コストがかからない)ですが、書き込むにはgasというコストがかかります。ethereumブロックチェーンにコントラクトをデプロイするたびに、gasというコスト(お金みたいなもの)がかかるということです。ブロックチェーンについて本腰を入れて学びたいひとは、Udemyなどにたくさんよいレッスンがあったりします。Udemyでブロックチェーンと検索してみてください。1Etherは100京weiです。...【Dappsアプリ】選挙投票Dappsの作成-その3-この記事は【Dappsアプリ】選挙投票Dappsの作成-その2-のつづきです。