BOXESEthereumでDAppsを開発するときに何をどうやって作ればいいかわからないことが多いですよね。BOXESを参考にするといいです。ここにはいろんなサンプルアプリケーションがあり、Reactを使ったサンプルもあるのでモダンなアプリケーションを作る手がかりにもなるかと思います。pet-shopで今回使用するサンプルコードをダウンロードすることができます。pet-shoppet-shopアプリケーションはMetaMask経由でトランザクションを発行し、好みのペットに対して自分のアドレスを紐づけることができるようになっています。自分が現在どのペットと紐づいているかをスマートコントラクト経由で取得することもできるようになっています。スマートコントラクトを使った更新と読み取りの基本的なアプリケーションを作ることができます。DApps開発スマートコントラクトcontracs/Adoption.solを実装します。adopt()関数はこの関数を呼び出したアドレスをpetIdを紐づけることで購入者を識別します。getAdopters()は購入者全てのアドレスを返す関数です。Solidityで実装するスマートコントラクトはこれだけです。adopters;}}マイグレーションmigrations/2_deploy_contract.jsを作成し下記を実装します。./build/contractsが表示されれば成功です。./build/contractsデプロイデプロイする前にGanacheを起動しておきます。Ganacheは起動するだけでローカル環境にブロックチェーンを起動してくれて、さらにアドレスを10個作ってそれぞれに100ETHずつ最初から持たせてくれます。Ganacheを使うと開発がものすごくしやすくなるので絶対に使いましょう!Adoption.solのデプロイはコントラクトアドレスが表示されれば成功です。artifacts...Ganache上でトランザクションも確認できます。テストコードテストコードもSolidityで書きます。Adoption.solに実装した変数と関数に対してテストを行なっています。recorded.");}}テストを実行すると3つともちゃんとテストが通りました。(963ms)フロントエンド開発stc/app.jsをドキュメントに沿って実装します。ここはただの作業になるのでweb3jsの初期化部分だけ説明します。web3がundefinedじゃないという状況はMetaMask内臓のweb3がちゃんとブラウザでグローバル変数として使えるときです。グルーバルなweb3が取得できればcurrentProviderを使って新たにweb3インスタンスを作成し、MetaMask経由でトランザクションを発行できるようになります。ここら辺は最初理解しづらいですがかなり重要なところなので頑張って理解できるようになってください。App.initContract();}DAppsの起動Truffleにはlite-serverという機能でサーバのホスティングもできるようになっています。この機能を使って実装したアプリをブラウザから確認できるようになります。devでlite-serverを実行できるようにscriptsが記述されているので下記で実行します。files...MetaMask連携アプリが起動したら次はMetaMask連携を行います。RPCを選択し、http://127.0.0.1:7545を入力してSaveするだけです。これでMetaMaskがローカルで起動しているブロックチェーンにアクセスできるようになります。GanacheアカウントのインポートDAppsで使うアカウントをGanacheからMetaMaskにインポートします。GanacheのACCOUNTから鍵マークをクリックします。key(秘密鍵)が表示されるのでこれをコピーします。keyを貼り付けるとGanacheで作成されたアカウントをMetaMaskから使えるようになります。これでGanacheで起動させたブロックチェーンに対してGanacheで作られたアドレスからトランザクションを発行できます。まとめ想像していたよりも簡単にDAppsを作ることができました。なんでもいいからとりあえず作ってみるとかなり理解が進むのでオススメのサンプルコードだと思います。今回はメインがSolidityのスマートコントラクトの解説だったのでフロントエンド開発も今後説明を追記していきます。最後に最後にブロックチェーンエンジニアって何?どうやったらなれるの?という人向けに書いた下の記事も読んでみてください。まで網羅的に解説されている書籍なのでおすすめです。Bitcoinを作っているネクストカレンシー所属の方が書いているので信頼できます。2016年07月14日AmazonKindle楽天ブックスビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。Incにブロックチェーンエンジニアとして入社。