(日本語訳) Chain Castle – Lesson 3 Chapter 1

Libra
Libra Move言語
スポンサーリンク

Chapter 1 リソース

既存のブロックチェーンシステムにおいて、ビットコインは「通貨」をプログラムし、イーサリアムは「アプリケーション」をプログラムします。対して、LibraはResource(リソース)と名付けられた、通貨よりももっと複雑なアセットをプログラムします。

Moveはリソースへの操作を次の二つの制約に添う様に規制します。

  • 希少性(scarcity):リソースのトータル量はユーザが勝手にコピーしたり再利用したり、破棄できない様に制限されなければならない。
  • アクセス制御(Permission control):リソースの操作は事前定義されたルールを満たさなければならない。

以上の二つの制約に合致するために、Moveのコントラクトでは、リソースはそれを定義したモジュールでのみ、生成あるいは破棄ができて、またmove()ファンクションによってのみ操作することができます。そのため、リソースをcopy()ファンクションで複製することは許されません。

Moveコンパイラは上記のセキュリティ制約が満たされているかをバイトコード上で、静的に検証し、バイトコード検証に失敗したプログラムの実行は拒否します。

初心者は、当面のところリソースは制限のついた構造体と捉えておくと良いでしょう。

リソースの宣言は、構造体の宣言と似ています。

resource name {data:type, data:type,…}

これは、LibraCoinリソースの宣言の例です。

resource T {
        value: u64,
}

実習

セキュリティのために、castle構造体をリソースに変更する必要があります。
Castleの型を構造体からリソースに変更してください。

Move Castle
タイトルとURLをコピーしました