【クリプトゾンビ1】Solidityの基本構造を学びdappsに生かす|デガログ【無料で1冊】耳から学んで差をつけよう。「簡単なdAppsゲームを素人が作れるのか?」というのを検証しています。JavaScriptの基本演習が終わったので、クリプトゾンビによるsolidityの学習に移っていきます。ここまでの流れは「Progateの有料verにトライ!JavaScriptを習得してdApps作成のベースをゲット」をご覧ください。ちなみに、本格的にブロックチェーン技術やスマートコントラクトを学びたいのであれば、FLOCブロックチェーン大学がおすすめです。FLOCの無料体験はこちら【無料体験】FLOCブロックチェーン大学校【最新技術を学べる】12月26日更新。ブロックチェーン技術をまなべるFLOCブロックチェーン大学について紹介しています。無料体験があるので、エンジニアの方も非エンジニアの方もぜひ参加してみてください。修飾子Keccak256と型キャスト統合イベントWeb3.jsクリプトゾンビ1日目を終えてクリプトゾンビの概要クリプトゾンビとは、イーサリアム上でゲームの作り方を学べるオンラインレッスンです。イーサリアム上で使われるsolidityという言語を学ぶことができます。具体的には、これからゾンビゲームを作っていきます。Networkが、なんと無償で提供しています。ブロックチェーン革命を後押ししたいという願いがあるようですね。クリプトゾンビ1日目、ゾンビファクトリーの作成レッスン1の内容は、「ゾンビファクトリー」でゾンビを作るところからスタートします。ランダムゾンビを作成するというコントラクトが最終的には出来上がります。レッスンはいくつかのチャプターに別れており、そこでは学習事項が提供されています。その学習事項を記録もかねてまとめていきます。solidityのコードを格納しておく場所および、イーサリアムアプリケーションの基本単位のこと。スマートコントラクトという呼び方でなじみのある方が多いと思います。Pragma」でスタートする必要があります。コードが使用するコンパイラを宣言することで、コンパイラのバージョンを原因とした不具合を防ぐことができます。状態変数とはコントラクト内に永遠に保管され続けるもので、ブロックチェーン上に記載される。データベースと考えて良い。符号なし整数は”uint”で規定できる。JavaScriptと全く一緒。後々のために、dnaModulusを作っておく。構造体JavaScriptでいうオブジェクトと同じかな?構造体を使えば、複数のプロパティをもつ複雑なデータ型を作成することができる。structで規定する。今回はZombieという構造体に、nameとdnaというプロパティを持たせた。配列solidityにもJavaScriptと同様に、「配列」という概念が存在する。以下ではパブリックなZombie構造体を作成し、zombiesと名付けた。publicで宣言した配列は他のコントラクトもこの配列を読めるが、書き込むことはできない。関数の宣言ここもJavaScriptと同様。createZombie関数をnameとdnaをパラメーターの元に作成。新しい構造体をつくる先程作成した構造体にあてはめて、新しいZombieを作成し、zombies配列に格納した。設定しない場合、作成した関数はpublic関数となり、他のコントラクトからでも自由に利用できる。脆弱性の観点から関数を自由に使われるのは望ましくないので、Private関数を設定すべきである。関数名の前にアンダースコア(_)、後ろに「private」と記載する。createZombie関数をprivate関数に変更した。関数の戻り値に関数の型を宣言できる。読み取り専用にする際は「view」、コントラクトのデータへのアクセスを禁止するなら「pure」を使用する。文字列からランダムなDNA番号を生成するヘルパー関数を作りたい。_generateRandomDnaという名前のprivate関数を作成せよ。_str(string)という名前で、戻り値をuintに設定せよ。この関数はコントラクトの変数を読み込むことはあるが、編集することはない。そこで修飾子をviewと設定せよ。関数の中身は空にせよ。中身は後で書き込むぞ。この要求に合うコードはコチラ。Keccak256と型キャストここら辺からよく分からなくなってきた。そもそもKeccak256と型キャストってなんやねん。クリプトゾンビ、1日目にして挫折の予感、、、。2018要求を見てコードはかけるものの何をやりたいのかよくわからない、、、。統合よく分からんけど統合しはじめた。イベント新しいゾンビを作成するごとにアプリにそれを表示させたいので、イベントを定義する。zombies配列に新しいゾンビが追加されたらnewZombieイベントが発生する。Web3.jsイーサリアム上にはWeb3.jsというJavaScriptライブラリがある。Web3.jsがコントラクトとやり取りをし、実際にウェブブラウザでその動きを見ることができるようになる。ここでのコードは省略する。最後にゾンビに名前を与えてやると、見た目の変化を観察することができる。「アーリー出川兵団」はこんな感じ。クリプトゾンビ1日目を終えて多くの内容はJavaScriptの基礎ができていればできそうだと感じました。これまでにプログラムを触ったことがある人からすれば余裕だと思います。「指定に沿ってコードは書けるけどイマイチわからない」みたいな現象が多発してしまいました。これを改善するためには、もう少しJavaScript自体やプログラム一般になれることが必要だと思いました。最後までたどり着けない気がしてきました(笑)本日はこれにて終了です!明日からも頑張ります。【無料体験】FLOCブロックチェーン大学校【最新技術を学べる】12月26日更新。ブロックチェーン技術をまなべるFLOCブロックチェーン大学について紹介しています。無料体験があるので、エンジニアの方も非エンジニアの方もぜひ参加してみてください。Academy超人気プログラミングスクールが、ブロックチェーン講座をついに開始!オンラインで学習できるのも魅力的です。Boost(テックブースト)。学生ですが、彼女を失ったことをきっかけにペアーズにはまってしまいました。学生ですが、彼女を失ったことをきっかけにペアーズにはまってしまいました。