Dapps開発のためのブロックチェーン概要
これからDapps開発をやろうとしている方などのために、ブロックチェーンの概要(Ethereum)についてまとめてみました。ブロックチェーンがどんな技術かというと、トレンド的には、日本のシリコンバレー、いわゆるビットバレー(渋谷)界隈の若くて優秀な人たちがこぞって取り組んでいる技術です。技術的には、クライアントーサーバ間通信ではなく、クライアントークライアント間通信を特徴として、改ざん不可であるものとなります。
ブロックチェーンはデータベースであり、ネットワークである
中央にサーバがあって、そこにクライアントがアクセスするようなしくみではありません。
ブロックチェーンはサーバではありません。Peer to Peer 通信(あとで説明します)を可能にするデータベースとネットワークなのです。
そして、このブロックチェーンとして有名なもののひとつとして、仮想通貨をやったことなら知っていると思いますが、Etherという仮想通貨を提供しているブロックチェーンのEthereumがあります。(よく混同されるのですが、Etherは仮想通貨でEthereumはブロックチェーンであって、両者は別ものです。)
コードは共有される。改変できない。
選挙の投票システムなどにおいて、公明正大なシステムを構築することが可能となります。
スマートコントラクトとは?
- ブロックチェーン上のコードで、マイクロサービスのようにふるまうものです。
ちなみに、マイクロサービスについてですが、
たとえばマイクロサービスでは次のような小さいサービスを開発して、Web APIを通じて、各サービスを呼び出し連携させます。
認証サービス(IDやパスワード)
ロジック:データのフィルタリングサービス(サイズや色)
ロジック:レコメンデーションサービス(おすすめ商品の通知)
アクセス許可:在庫管理システム連携サービス
データ:販売実績の追加、配送ステータス管理サービス
など
- Solidityという言語で書かれています。
Javascriptに似た言語です。
Dappとは
- Decentralized application の略称です。
Decentralized :分散の、分散化、非集中の
という意味です。
つまり、Dappはブロックチェーンの特徴の分散型の性質をもったアプリケーションという意味です。
- ネットワークが分散している
peer to peer (P2P)な通信を行います。
一般的なウェブアプリケーションの通信スタイルは
たとえばWinniyというファイル交換ソフトを知っていますか?
日本人が開発した世界初の純粋なP2Pソフトウェアです。
詳しく知りたい方はこちらから。
Winny - Wikipedia
あとは、NASとかを使っているひとならわりと知っているかもしれませんが、ビットトレントとかもPeer to Peerをつかった技術ですね。
BitTorrent - Wikipedia
このP2Pのしくみを利用することで、クライアント間で通信が行われ、サーバという中央の概念がなくなるわけです。Winnyの記事を読んでいただければわかると思いますが、非常に画期的な仕組みです。P2Pに関してはもっと語りたいことがありますが、本記事の内容とはずれるので、また別の機会に。
P2Pの仕組みを利用することで、ブロックチェーン上のネットワーク上にあるデバイス(クライアント)間で通信をします。
Dappを作る準備をする
-
npm
Nodejs Package Managerです。
つぎで説明するTruffleを簡単にインストールできますので、
インストールしておきましょう。 -
Truffle
スマートコントラクトのテスト用のフレームワーク。
スマートコントラクトをブロックチェーンへデプロイするツール。さらにクライアントサイドアプリケーションを作成することができます。
Truffle Suite - Your Ethereum Swiss Army Knife
インストール
ターミナルから、
npm install -g truffle
- ganache
開発用のlocalブロックチェーンです
Ganache | Truffle Suite
- metamask
GoogleChromeブラウザからEthereumに接続するためのツールです。ChromeストアからMetamaskを検索してください
上記をインストールしたら、
次から実際に開発をはじめていきます。
なお、ブロックチェーンについて本腰を入れて学びたいひとは、Udemyなどにたくさんよいレッスンがあったりします。ぜひUdemyでブロックチェーンと検索してみてください。
ではでは!