[BlockChain入門] ethによるdapps開発とおすすめフレームワーク
初めまして。glicインターンをしている富山大学3年のかげちゃんです。担当はブロックチェーン技術の調査・検証を行っていまして、その一環でブロックチェーン技術に関する情報を発信していきます。
今回は第一弾として、ブロックチェーン技術を使用したシステム構築方法に関するトピックになっています。実際に構築する上でどのようなプログラミング言語やフレームワークを採用するのかといった疑問をお持ちの方に読んでいただけるとお役に立てるのではないかと考えています。
本記事では、数あるブロックチェーンを実装する技術の一つである、イーサリアムによるdapps開発についてご紹介します。
ethereum(イーサリアム)とは
「イーサリアム」はヴィタリック・ブテリン氏によって開発されたプラットフォームの名称であり、数多くある「ブロックチェーンプラットフォーム」の一つです。厳密には分散型アプリケーションを提供できるオープンソースのプラットフォームのことであり、その内部で使用される通貨が「イーサ」と呼ばれます。日本ではどちらもイーサリアムで通称が通っています。
イーサリアムの特徴としては主に以下の3つがあります。
- スマートコントラクトがある
- dappsプラットフォームがある
- erc規格が定められている
一つ一つ説明いたします。
■スマートコントラクト
あるイベント(処理)が起きた場合に、後続の処理時が事前に定義されており、それが順に実行される仕組みです。ブロックチェーンを使用するシステムでは、取引の際にその信頼性を担保するために、取引の自動記録、所有権の移転など自動的にプログラミングによって処理されることが求められます。
これらの処理をゼロからプログラミングするは大変であるため、それが事前に用意されているのがイーサリアムの強みです。
スマートコントラクトの詳細については以下の記事がわかりやすく解説していますので、深く理解されたい方はこちらを参照下さい。
https://www.sbbit.jp/article/fj/40394
■dappsプラットフォーム
このプラットフォームにより、ユーザは簡単にDapps(分散型アプリケーション)を構築し提供できます。他にも有名なdappsプラットフォームはEOS, TRON等ありますが、現在はまだまだイーサリアムが人気です。
■ERC20という規格
そして、イーサリアムにはERC20という規格が定められているのですが、これに従うことによりイーサリアムブロックチェーンと互換性を持つ事が出来ます。実際にUSDTやLINK等、非常に多くのコインがERC20にしたがって作成されており、今後も広がりが見込めると言えます。
[参考文献]
https://www.coindeskjapan.com/99070/
https://aire-voice.com/blockchain/4476/
https://bitflyer.com/ja-jp/ethereum
なぜethereumなのか
イーサリアムは上記でも述べたようにERC20規格があることでスマートコントラクトの作成が簡単に出来るという利点があります。また、独自トークンを作成した際もメタマスク等のウォレットに互換性があるため使用できます。 そしてプラットフォームがありコミュニティが強い点が上げられます。
実際にイーサリアムで作られたゲームやアプリも多くしっかりした実績があるため、今後も使用され続けると考えられ、情報が得やすいです。 イーサリアムでスマートコントラクトを記述するための言語であるsolidityのチュートリアルcryptozombies等チュートリアルも豊富であり学習も比較的容易です。
また、イーサリアムはビットコインの次に有名で歴史のあるブロックチェーンであるため、他のコインに比べて情報量の多さ、信頼度、開発者の数に違いがあります。
そのため、web3.0財団のサービスにもイーサリアムが組み込まれているように、今後発生するであろう大きなサービスに組み込まれやすいという最大の利点があり、イーサリアムdapps開発者はすぐにサービスを使用開始出来るのは時間的にも学習コスト的にも素晴らしいです。
参考文献
https://polkadot.network/ja/
https://www.coindeskjapan.com/99070/
https://polkadot.network/ja/
https://metamask.io
おすすめフレームワークtruffle
最後に、イーサリアムで開発をするためのオススメフレームワークであるtruffleをご紹介します。
truffleはnpmインストールが可能であり、簡単に導入が容易であり、ganacheといったソフトにも対応しているためローカルテストネットワークでの開発が可能になるといったことから、開発を完結して行うことが特徴です。
使ってみた感想ですが、djangoのように分かりやすくアプリ開発ができるので使いやすく、公式サイトやオライリー等チュートリアルも豊富にあるため、学習の壁に当たることも少ないと言えます。
参考文献
https://trufflesuite.com
https://www.trufflesuite.com/tutorial
https://101blockchains.com/best-ethereum-development-tools/
dapps開発を今後始めようとする際には、まずイーサリアムかつtruffleを使うことがおすすめです。皆さんもぜひ良いdappsを作っていきましょう。
来月は実際にtruffleで作ってみたアプリを最近流行りのpolkadot関連のサービスに載せてみようと思っています。お楽しみに。(変更もあり)