CryptoZombiesとは?
CryptoZombiesとはEhereumのスマートコントラクト言語であるSolidityをゲームを作りながら学べるWEBの学習教材です。Solidityの文法や型から学習が始まり、ガスコストをどうやって下げればいいのかテクニカルな方法まで詳しく説明してくれるので初学者から経験者まで幅広く学習をサポートしてくれます。
言語は英語、日本以外にも韓国語、中国語など全部で8ヶ国語で解説がありかなり力を入れていることが伺えます。2月中旬時点で世界中で10万人の利用者がいるとのことです。これはSolidity人口を増やすのにかなり貢献しているのではないかと思います。

レッスン内容
レッスンはゾンビゲームをゼロから実装しながら進めます。1レッスンあたり役約15チャプターあり、1チャプターあたり5~10分で完了できるので隙間時間に自分のペースで進められます。

レッスン1
contractの作成から変数と関数の定義の仕方、型の説明から始まります。構造体、配列やuint、stringなど初歩的なことも説明。そのあとはprivate、publick修飾詞の説明、web3jsがどんなものなのかまで解説されます。
レッスン2
レッスン2ではSolidityオリジナルの文法の説明が多くなります。mapping、address、require、msg.senderなど他の言では聞かない単語が増えてきます。ここからがSolidityの面白いところかもしれません。
Solidityでものすごく重要なstorageとmemoryの説明も詳しくされています。ちなみに変数にstorageをつけて定義することでその値はブロックチェーン上に保存することができます。memoryは一時的な値ですね。
他の言でも一般的なpublic、privateの他にexternal、internalというアクセス範囲を制限する修飾子についての説明もあります。レッスンではCryptoKitiesのコントラクトを呼び出すチャプターもあります。
レッスン3
レッスン3はコントラクトのオーナーシップ、ガスコスト、コードの最適化、 セキュリティなどについて解説されています。ブロックチェーン上にデプロイされたスマートコントラクトは変更することができないのでセキュリティには最新の注意を払わなければいけません。そこでOSSにOpenZeppelinという感作された安全なSolidityのソースコードが扱えるライブラリがありその使い方も解説してくれています。
ブロックチェーン上での時間の扱い方、modifier、ガスコストをどう節約するかについても書かれています。ガスコストの問題は現在のEthereumですでに問題になっていることなのでここでの方法は知っておかなければなりません。
レッスン4
レッスン4はpayable修飾子の説明からはじめり、送金、ランダムな数の生成法について解説されています。payable修飾子は関数につけることでその関数にEtherを送ることができるようになる特別な修飾子で重要な役割があります。
あとはmodifierを使ったリファクタリングの仕方、ゲームの中身の実装があります。
運営会社 Loom Network
運営会社はタイのバンコクにあるLoom Networkという会社です。CryptoZombiesの他にDAppChainというサービスを開発中とのことです。
DAppChainはEthereumのゲームとソーシャルアプリに特化したサイドチェーンのことみたいです。詳しくはあまり調べられていないのでわかりませんが2018年3月にサービスをローンチするとのことです。
まとめ
CryptoZombiesは初学者から経験者まで幅広くSolidityを学べるので何で学ぼうか悩んでいる人にはオススメです。まだレッスンは4までしかありませんが数週間ごとに追加されているみたいなので今後にも期待したいと思います。
おすすめ書籍
Ethereumを使ったDApps開発を学びたいなら今だとこの1冊が1番良いです!開発環境の構築から使うべきツール、フレームワーク、実装方法・注意点まで網羅的に解説されている書籍なのでおすすめです。出版も2018年1月ということでかなり新しい本で、DMM Bitcoinを作っているネクストカレンシー所属の方が書いているので信頼できます。
ビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。また、サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す