どうもこじりょー(@kojiryoinvestor)です。
このたび、テストネット上にはじめてオリジナルのDappsをリリースをしました。
ワンクリックで分散ストレージ上にWebサイトのアップロードおよび公開を行い、ブロックチェーンで管理するDappsのβ版を公開しました😂
「Distributed Storage Manager」略して「D.S.M」です。
IPFS上で公開しています!https://t.co/ftW9zmYWdA
使い方などはGitHubへhttps://t.co/PzOpdBeU69 pic.twitter.com/3CIFLnySS6
— こじりょー | Dapp初心者 (@kojiryoinvestor) 2018年8月28日
この経験を元に、僕がはじめてDappsをリリースするまでにやった6つのことをご紹介します。
ブロックチェーンの世界は黎明期であり、さらに情報はほとんど英語です。
このような状況の中、どのようにしたらDappsを作れるようになるのか見通しを立てるのは大変です。
この記事を参考していただければ、Dappsの開発ができるようになるまでの手順がイメージしやすくなります。
これからDappsを作ろうと思っている方はぜひ参考にしていただければと思います。
その1. スマートコントラクトの作成を体験する
Ethereum上でスマートコントラクトを作成するにはSolidityというプログラミング言語を使います。
そこでSolidityの基礎からDapps作成の一連の流れを無料で学習できる「CRYPTO ZOMBIES」を始めにやりました。
「CRYPTO ZOMBIES」で学ぶ内容は実践的です。
開発中に「ブロックチェーンへの書き込みってどうやるんだっけ」などと悩んだ際にも、「CRYPTO ZOMBIES」を再度やれば大体のことは解決できます。
初めてのDapps作成の際にはリファレンスとしても大いに役立ちます。
実践的な内容なためプログラミング初心者の方には少し難しいですが、ここで大事なのはDapps作成の一連の流れを体験すること。
この段階で内容を全て理解する必要はないです。
勉強というよりもゲーム感覚でやることをオススメします。
スポンサーリンク
その2. スマートコントラクトの基礎を学ぶ
「CRYPTO ZOMBIES」をやっただけではスマートコントラクトを作成するのは難しいです。
そこでより入門的な内容を学ぶために「ブロックチェーンアプリケーション開発の教科書」を利用しました。
「ブロックチェーンアプリケーション開発の教科書」では、Ethereum上でスマートコントラクトを作成する上での基礎をイチから学ぶことができます。
例えば、スマートコントラクト以前に「Ethereumのブロックチェーンってそもそも何をやっているんだ」といった基礎の基礎から学べます。
実際に本書を参考にして、Gethを使って自分のパソコン内のみのブロックチェーン(プライベートネット)を動かしてETHのマイニングや送金を行いました。
Gethはブロックチェーンが具体的に何をやっているのかを手を動かしながら学ぶのに最適でしたね。
さらに「ブロックチェーンアプリケーション開発の教科書」には、スマートコントラクトの作成に必要不可欠なフレームワーク「Truffle」の使い方まで解説されています。
本書を参考に「Truffle」を使ってERC20準拠のトークンを作成し、世界中に公開できる「テストネット」へコントラクトをデプロイするところまでやれば、一通りスマートコントラクトの作成ができるようになります。
その3. スマートコントラクトとWebを組み合わせる
1と2は主にスマートコントラクトの基礎を学ぶものでした。
次に僕がやったのは、スマートコントラクトとWebを組み合わせたDappsの作成方法を学ぶことです。
そこで利用したのが「Truffle」のチュートリアル「イーサリアム・ペットショップ」です。
「イーサリアム・ペットショップ」は、スマートコントラクトの作成からWebとの連携を学習するためのチュートリアルです。
これまで学習してきたスマートコントラクトの基礎があれば、チュートリアルはスムーズにできるでしょう。
このチュートリアルまでできれば、イーサリアムでのDapps作成の基礎は一通り身についたと思ってもらって大丈夫です。
その4. オリジナルDappsのアイディアを考える
Dapps作成の基礎が学習できたら、いよいよオリジナルDappsの作成をしていきます。
チュートリアルをやっただけでは技術は地肉とはなりません。
学習したことを活かしてゼロベースから作り上げることで、学んだ技術ははじめて自分のものになります。
そのためにもまずは自分の作りたいDappsを考えます。
すでに作りたいものがある人は問題ないのですが、作りたいDappsがない人にとってはこの作業が結構大変です。
アイディアの発想方法として以下のことをオススメします。
・何らかの技術とブロックチェーンを組み合わせる(例:IPFS + ブロックチェーン)
・既存のサービスをブロックチェーンを使って実装する(例:Twitter + ブロックチェーン)
その5. 実装する
作るDappsが固まったらいよいよ実装です。
僕は以下の手順で開発をしていきました。
1.ざっくりとしたUI画面を紙に書き出す(MATERIAL-UIのサンプルを参考)
2.スマートコントラクトの作成(クリプトゾンビのCH1からCH3を参考)
3.スマートコントラクトのテストの作成
4.スマートコントラクトをプライベートネットにデプロイ
5.フロントエンドからIPFSへアップロードするロジックの作成
6.Web3を使ってコントラクトとフロントエンドのつなぎ込み
(TwitterとDapps開発ギルドで中間報告)
7.UIのブラッシュアップ
8.コントラクトをテストネットへデプロイ
9.フロントエンドをIPFSにデプロイ
10.デバック
11.公開および発表
仕事の合間にやって大体3週間くらいかかりましたね。
はじめてのオリジナルDappsの作成のため、アイディアによっては時間がかかるかもしれません。
思わなところでエラーでハマることもあります。
「CRYPTO ZOMBIES」をもう一度やってみたり、ひたすらググったり、「console.log()」を使って問題を切り分けたり、このあたりは気合いと直感で乗り越えていきましょう。
もちろんどうしてもダメな時は撤退したり、代わりの手段を考えるのもアリです。
また余裕がある人はリッチなUIの実装に挑戦することをオススメします。
その際にオススメなのが以下のCSSフレームワークです。
ちなみに今回作った「D.S.M」では「MATERIAL-UI」を使っています。
その6. 作っているもの積極的に発表する
完成ではないけど、ある程度のところまでできたらTwitter等で発表してみるのもアリです。
「D.S.M」が一通り動くようになったところで「Twitter」や「dApps開発ギルド」で発表したところ、多くの方からリアクションを貰えたのはかなりモチベーションになりましたね。
発表の際には動画などで動くデモを見せてあげると相手に伝わりやすいです。
ここ2週間、分散ストレージに誰でも簡単にWebサイトをアップロードして公開できるDappを作っていました。
動画ではIPFSにWebサイトをアップロードして公開→ハッシュ値をブロックチェーンに保存するまでのデモを公開しています! pic.twitter.com/kiTq3n5sNr
— こじりょー | Dapp初心者 (@kojiryoinvestor) 2018年8月22日
このツイートはDapps開発者のオオキマキ(ookimaki_JP)さんのシェアによって、一気に拡散していきましたね。
この発表でTwitterのフォロワーが50名くらい増えました。
開発のモチベーションが異常なほど高まるので、開発中も完成した後も積極的にソーシャルで発表していきましょう!
ぜひDappsを作ったら教えてください!
Twitterアカウント:kojiryoinvestor
おわりに
以上が「初めてオリジナルのDappsをリリースするまでにやった6つのこと」でした。
ブロックチェーンの世界はまだ黎明期で、技術も安定していないし、ドキュメントも英語がほとんどで開発が大変です。
そんな状況にも関わらずDappsに興味を持ち開発をする人は、日本そして世界にとってかなり貴重な人たちだと僕は思っています。
微力ながらDappsに興味のある方に向けて、今後も積極的に情報発信をしていきますので、どうぞよろしくお願いします!
コメントを残す