レッスン3は1.5時間かかりました。
なんというか、Solidityのコントラクトをイーサリアム上にデプロイしたら修正効かないっていうのが相当ハードル高いと感じる。
ガスコストの意義がわかっていたようでわかっていなかったのでやってよかった。
レッスン3で学んだこと
・OpenZeppelinを用いたコントラクトのオーナ(所有者)設定
・コンストラクタ・・・コントラクトが作成された時に初回のみ実行される
・関数修飾子の説明(modifier)・・・今のところ関数単位で実行される共通validate機能だと理解。
・ガス(燃料)の説明・・・イーサリアムではロジックの複雑度により手数料が自動計算されるので無駄のないコーディングが重要になる。
例えば通常は意味がないが、構造体(struct)のフィールド定義においてはuint uint8 uint16 uint32 などの使い分けも節約となるケースがある。
また、同じデータ型は連続して宣言したほうがコストが低くなるという特殊な仕様がある。
また、View関数の場合はガスコスト不要。
・日付の扱い・・・nowでUNIXタイムスタンプ(1970年からの累積時間)。
1 days なで(60秒*60分*24時間)=86400が返る。1 hours や 1 minutesも同様。
・storageとmemory・・・storageを使ってブロックチェーンに書き込むのはガス節約のために最低限に抑えるよう意識する必要がある。
CryptoZombiesかじってみて
いまさらだろうけど、最も多くのプロダクトで使われているイーサリアムのざっくりとした動きは押さえておきたいなとエンジニアの端くれとして考えていました。
なんだか難しいんだろうなという風に思っていましたが、ちょっとかじってみたらその思いは一層強まりました、権限設計でミスりそうな気がします。
プログラミング自体は何も難しいことはなく、数か月の初学者でも十分理解できると思うので解説だけ流し読んで答えコピペで進めていくだけでも面白いと思います、まだの方は是非。