タイトルに完了報告、と書いておいて学習内容をブログに書きながら進めています。こうすると時間はかかるけど理解度がグッと上がる。
まずはおさらい
可視修飾子
・private コントラクト内の別の関数からのみ呼び出し可能
・internal private+そのコントラクトを継承したコントラクトからも呼び出し可能
・external そのコントラクト外からだけ呼び出し可能
・public コントラクト内部・外部すべでから呼び出し可能
状態修飾子
・view 関数が動作してもブロックチェーンにデータ保持されるない事を宣言
・pure 関数が動作してもブロックチェーンにデータ保存および参照もない事を宣言
・いずれもコントラクト外部から呼び出された場合はガスは必要ない
・コントラクト内にある別関数から呼び出されるとガスが必要となる(※そんな説明あったかな・・・覚えてないや)
カスタム修飾子
・modifier 関数に特別な振る舞いを外部定義することが可能。これまでは主に関数の実行制約条件の事前チェックの為に使用してきた。
そしてレッスン4ではEtherを受け取ることができる関数と登場し、ゾンビをイーサを使うことでレベルアップさせて強くして戦わせていくアイデアを実現させていきます。
payable修飾子
・payable この修飾子を付与している場合のみ送金が可能となる
oracle
イーサリアムでの安全な乱数生成の解としてちらっと出てきたけどもレッスン4の中では具体的な説明はなし。javaっ子としてはoracleと言われるとドキっとしてしまいますがあのoracleではないようですね。
イーサリアムでのDappsアプリの作成方法や設計思想に少し触れることができた感がグッとでてきました。やっぱり権限設計は自分で必要なところにひとつづつ設定していかないといけないのかなぁってところが引っかかる。
decentralization(非中央集権)を実現するメリットとコスト、そのあたりもまだよくわかっていない。
特にブラウザ三国志のようなゲームを1000人程度で遊んだ場合にどのくらいのコストがかかるのか。あーいうシミュレーションゲームを勉強のために作ってリリースしたいなぁとぼんやり考えています。
所要時間:1時間25分