メタデータ

Symbol はトランザクションとともに アカウント, モザイク, ネームスペース にカスタムデータを関連付ける手段が用意されています。

メタデータの一般的な使い方:

  • アセットに関連する情報の添付。

  • アセットに付加された価値を検証して、アプリケーション内のユーザがチェーン外のアクションを実行できるようにします。

メタデータはタプル {signer, target-id, metadata-key} によって一意に 識別 されます。この複合識別子に署名者を含めることで、複数のアカウントで競合することなく同じメタデータを指定できます。

識別子にリンクされた value1024 文字までの文字列です。このパラメータは ネットワークごとに設定可能 です。クライアントアプリケーションはメッセージを暗号化するか、またはすべてのブロックチェーン参加者が見える必要があります。

永続性

メタデータエントリはブロックチェーンへ — TransferTransaction の通常メッセージのように — 格納されますが、 key-value state としてです。

この機能によりクライアントアプリケーションの読み込み時間が短縮されます; メタデータを使用すると最新のトランザクションメッセージ値を取得するために、アカウントのトランザクション履歴全体をオフチェーンで処理する代わりにキーで情報にアクセスできます。

パーミッション

アカウント、名前空間、またはモザイクの作成者は明示的なアクセス許可を与えることによって受信したすべてのメタデータ要求に オプトイン する必要があります。これはすべての MetadataTransactions を AggregateTransaction にラップする必要があることを意味します。

対象アカウントはメタデータをブロックチェーンに記録して、アセットの状態を更新するためにアグリゲートに署名をする必要があります。

アカウントに証明書を追加する。

../_images/metadata-certificate.png

メタデータはアセットに関連情報を添付するのに使用されます

Bob はスタンプが Symbol パブリックブロックチェーン上に証印の責任を持つデジタル公証人として働いています。顧客がドキュメントを公証するために Bob の元へ訪れると、彼は顧客のドキュメントの認証をチェックし、アカウントに MetadataTransaction をタグ付けをします。

最近 Alice は学校を卒業し、彼女の教育証明を彼女の Symbol アカウントに認定することで、学位証明を繰り返して提供しなければならない面倒事を避けたいと思っています。そのため彼女は Bob を訪れ、学位を彼に提供します。Alice が Bob に手数料を支払うと Bob は真正性を検証し Alice のアカウントに学位を表すメタデータをスタンプします。

アクセス管理

../_images/metadata-access-control.png

オフチェーンアクションの実行を制限するためのメタデータのバリデーション

SneakersCompany の人事部門は機密作業リソースのアクセス管理に Symbol を使用しています。各アカウントには会社のアプリスイートへのアクセスを規制するメタデータがタグ付けされています。

新しい従業員の Carol が雇われると、人事部は彼女の仕事用アカウントを新規作成します。セキュリティ上の理由で人事部はアカウントのメタデータとして {company, ACCESS, 9-18} を設定します。

Carol が会社のアプリスイートにアクセスしようとするたびに、会社アプリは Carol に許可があること、および彼女の入室を許可する前に、時刻が 9:00-18:00 の範囲内にあることを検証します。

同様に、権限を持たない Derek が会社のアプリスイートにアクセスしようとすると、そのアプリは彼のリクエストを拒否します。