ネームスペース

ネームスペースによって、ブロックチェーン上にあなたのビジネスと資産のための 一意な場所をチェーン上に作ること ができます。

プロパティ

設定可能なプロパティのリストは次の通りです。

名称

ネームスペースはインターネットドメイン名と同様に機能します。ネームスペースの作成にはアカウントまたはアセットを参照したい名前を選択することから始まります。名前はネットワーク内で 一意64 文字以内の必要があります。利用可能な文字は a, b, c, …, z, 0, 1, 2, …, 9, _ , - です。

期間

ネームスペース登録の際にネームスペースを借りたい確認済みブロックの数を設定する必要があります。

パブリックネットワークはネームスペース期間を最小で 30 日間、最大で 365 日間として定義しています。パラメータは ネットワークごとに設定可能 です。デフォルトではネットワークは 15 秒毎にブロック生成するように設定されています。次の式を使用しておよその日数をブロックに変換できます。

\[duration ≈ numberOfDays * 86400 / blockGenerationTargetTimeInSeconds\]
../_images/namespace-life-cycle.png

ネームスペースのライフサイクル

ネームスペース作成者は レンタル期間中 にサブネームスペース、エイリアスアカウント、およびモザイクを作成できます。作成者は NamespaceRegistrationTransaction を希望する追加ブロック数で送信することにより レンタルを延長する こともできます。

ネットワークは有効期限を過ぎたネームスペースが登録可能になる前に、作成者がネームスペースを更新できるように 猶予期間 を定義することができます。 Symbol のパブリックネットワークは 猶予期間30 日に設定しました。

猶予期間が終了するとネームスペースは 削除済み になります。この時点でネームスペースは再び登録可能になります。

ネームスペースステータスのパーミッション
アクション 利用可能 登録期間 猶予期間
新しいネームスペースの取得 ✔️
ネームスペースの更新 ✔️ ✔️
サブネームスペースを作成 ✔️
アドレスまたはモザイクにエイリアスをリンクする ✔️
エイリアスを使ってトランザクションを送信する ✔️

注釈

ネメシスブロック で作成されたネームスペースだけは恒久的な期間になります。

サブネームスペース

インターネット上でドメインはサブドメインを持ちます。 Symbol において、ネームスペースは資産を識別したり整理するためにサブネームスペースを持ちます。

../_images/namespace-setup.png

ネームスペースでアセットを整理する

パブリックネットワーク では、ネームスペースは 3 階層まで持つことができます—ネームスペースと2階層のサブネームスペースドメインです。各ルートネームスペースは 256 サブネームスペースまで持つことができます。

サブネームスペースはそれ自身で期間を持っていません。親のネームスペース期間を継承します。

複数のサブネームスペース を異なるネームスペースに同じ名前で作ることができます。例えば foo.barfoo2.bar を作ることができますが、 rootnamespace と subnamespace の組み合わせは一意を保つ必要があります。

エイリアス

エイリアストランザクション はネームスペースをアカウントまたはモザイクへリンクします。エイリアスまたはそのリンク済みアセットはトランザクションを送信するときに互換的に使用できます。エイリアスを使用すると長いアドレスを覚えやすく、モザイクを認識しやすくします。

ネームスペース作成者はアカウントまたはモザイクに ネームスペースをリンク することができます。このリンクは編集可能で、作成者は以前に設定したエイリアスのリンクを解除したり、別のアセットにネームスペースをリンクすることができます。

ブロック レシート は与えられたトランザクションのエイリアスの解決を保存します。

エイリアストランザクションには次の制限があります:

  • アカウントまたはモザイクはたくさんのネームスペースにリンクできますが、1つのネームスペースは1つのアカウントまたはモザイクにだけリンクできます。
  • アカウントは AddressAliasTransaction の 受信を許可している どのアドレスに対してもネームスペースを割り当てることができます。
  • アカウントがモザイク作成者である場合は、エイリアスを mosaic id にだけリンクできます。

レンタル手数料

ネームスペースの作成または期間の延長をしたいアカウントは、レンタル手数料に加えて トランザクション手数料 を支払います。有効な NamespaceRegistrationTransaction のアナウンスをすると、両方の手数料はアカウントの残高から差し引かれます。

REST ゲートウェイ はネームスペースの登録に必要なネットワーク通貨の概算を取得するためのエンドポイントを提供します。

    const nodeUrl = 'http://api-01.us-east-1.096x.symboldev.network:3000';
    const repositoryHttp = new RepositoryFactoryHttp(nodeUrl);

    const networkHttp = repositoryHttp.createNetworkRepository();
    networkHttp.getRentalFees().subscribe((rentalFees) => {
        console.log('RootNamespaceRentalFeePerBlock',
        rentalFees.effectiveRootNamespaceRentalFeePerBlock.compact());
        console.log('ChildNamespaceRentalFee',
        rentalFees.effectiveChildNamespaceRentalFee.compact());
    });
    const nodeUrl = 'http://api-01.us-east-1.096x.symboldev.network:3000';
    const repositoryHttp = new symbol_sdk_1.RepositoryFactoryHttp(nodeUrl);
    const networkHttp = repositoryHttp.createNetworkRepository();
    networkHttp.getRentalFees().subscribe((rentalFees) => {
        console.log('RootNamespaceRentalFeePerBlock', rentalFees.effectiveRootNamespaceRentalFeePerBlock.compact());
        console.log('ChildNamespaceRentalFee', rentalFees.effectiveChildNamespaceRentalFee.compact());
    });

デフォルトのネームスペースレンタル手数料は ネットワークごとに設定可能 ですが、 ネットワークはモザイクレンタル手数料を動的に調整 していきます。

パブリックネットワークのデフォルト値
プロパティ Value
ネームスペースの取得 ブロック毎に 0.000001 symbol.xym
ネームスペース期間の延長 ブロック毎に 0.000001 symbol.xym
サブネームスペースの作成 0.0001 symbol.xym

実効レンタル手数料を算出するために、ネットワークは設定で決められたデフォルト値に最後の maxDifficultyBlocksmedian network multiplier を乗算します。乗数がゼロの場合は、これらは中央値計算の前に defaultDynamicFeeMultiplier で置き換えられます。

ガイド

次項: メタデータ