そろそろdApps開発についても勉強しないといけないなと思いながらなかなかできていなかったのですが、年末で時間が取れたので CryptoZombies
というサービスでイーサリアムを使ったdApps開発について勉強しています。
CryptoZombies
はdApps開発が学べるWebサービスで、CryptoZombiesというdAppsを題材にしながら実際にコードを書いてdApps開発を学ぶことができます。
現在は3つのコースが用意されており、その中でも Solidity
というイーサリアム上でスマートコントラクトを実装できるプログラミング言語のコースを実施してみました。
現在はレッスン6まで公開されていて、スマートコントラクトの開発部分と、実際にそれをフロントからJavaScriptで呼び出す部分を学ぶことができます。
学べたこと
- プログラミング言語
Solidity
の基本 - dApps開発の流れ
- フロントとの連携方法
1. プログラミング言語 Solidity の基本
CryptoZombies
では Solidity
の基本的な部分から説明してくれているので、言語自体を学習しながら進めていくことができました。Solidity
自体は難しくないと思いました、少なくとも他の言語の経験があればすぐに理解できます。
Solidity
のページの記述にもあるように、静的型付け言語で、コントラクト指向プログラミング言語です。他の言語と違うのはこのコントラクトという部分だと思います。いわゆる他の言語でのclass
にあたるものがcontract
になっています。
あとは、struct
やfunction
などなどお馴染みの機能もあれば、modifier
やrequire
構文など割と独特なものも紹介されています。
2. dApps開発の流れ
dApps開発と言っても最初は何を指すのかあまりわかっていませんでしたが、イーサリアムを用いたdApps開発ではこの Solidity
で書かれた各種コントラクトをコンパイルして、イーサリアム上にデプロイすることでそのコントラクトを利用できるようになります。そしてそれをWebアプリやスマホアプリなどクライアントから呼び出すことでアプリを開発していきます。
CryptZombies
では2018年12月31日時点では、コントラクトをコンパイルしてイーサリアムにデプロイする部分のチュートリアルはありませんが、もうすぐ追加されるようです。
INFURA というサービスが紹介されていて、このサービスを使うとイーサリアムのノードを立てることなくコントラクトをデプロイできるようです。
3. フロントとの連携方法
CryptoZombies
では JavaScript
から実装したコントラクトを呼び出す方法が説明されています。web3.jsというイーサリアムのJavaScriptライブラリを使用することで、実装したコントラクトを簡単に呼び出すことができます。
このAPIを使って普通にWebアプリを作ると、dAppsとしてWebアプリを開発できるというわけですね。
CryptoZombiesをやっていて面白かったのが、ゾンビに食べさせる餌として、同じくイーサリアムのコントラクト上で開発されているCryptoKittiesのネコを与えることができるとうい点でした。
つまり同じブロックチェーン上にあるデータなので、公開されているAPIを使えば違うゲーム同士でもデータをやりとりできるということですね。
まだまだ理解が浅いのでこれからも研究していこうと思います。
CryptoZombies
をひたすら進めていく動画をアップしたのでよければみてみてください。
エンジニアリング イーサリアム CryptoZombies Etherium dApps SmartContract
関連記事
-
2024/3/24
try! Swift Tokyo 2024
try! Swift Tokyo 2024の参加メモ
Swift
-
2023/1/31
SwiftUIでTabBarを非表示にする
SwiftUI TabBar
-
2023/1/14
Bootstrap5.3で追加されたダークモードに対応してみました
Bootstrap DarkMode
-
2021/2/17
brew upgradeで Your CLT does not support macOS 11というエラーがでた
homebrew macOS Big Sur
-
2020/12/1
Apple Silicon搭載 MacBook Pro M1で Homebrewとrbenvをインストールする
先日購入したApple Silicon搭載 MacBook Pro M1にこのブログをビルドするためにHomebrewとrbenvをインストールしたのでメモ。
Apple Silicon Homebrew rbenv
-
2020/11/27
Apple Silicon搭載のMacBook Pro M1が危うく文鎮化するところだったので記録
Apple Silicon搭載のMacBook Pro 13インチを仕事用に購入したのですが、クリーンインストールしたところ文鎮化しかけたので記録しておきます。
MacBook Pro Apple Apple Silicon M1
-
2020/6/23
Platform State of the Unionまとめ
Platform State of the Unioまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/6/23
WWDC2020キーノートまとめ
WWDC2020 キーノートまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/5/31
GitHub Pagesで無料ブログを作成する - Part4 自分のオリジナルのテーマを作る
Jekyllでは既存のテーマを使うこともできるのですが、さらに一歩踏み込んで、自分で既存のテーマをカスタマイズしたり、テーマを作ることもできます。
GitHub Pages ブログ
-
2020/5/28
GitHub Pagesで無料ブログを作成する - Part3 Jekyllの設定をカスタマイズする
前回の記事では、Jekyllのテーマを利用する方法と記事を追加する方法を紹介しました。今回はさらにJekyllをカスタマイズしていきますが、確認を簡単にするためにまずJekyllをローカル環境で実行する方法を紹介します。
GitHub Pages ブログ