メインコンテンツまでスキップ

チェーンライセンス

x/license モジュールは、オンチェーンの機能ライセンスを提供します。QoreChain 上の特定のゲート付き機能 — 特にチェーンごとのブリッジ機能やバリデーター機能 — を利用するには、操作を行うアカウントがその機能に対する有効なライセンスを保有している必要があります。ライセンスとは、特定の保有者(被付与者)が特定のゲート付き機能を使用することを認可する、単なるオンチェーンの記録です。

ライセンスにより、これらの機能は検証可能かつ自己記述的に保たれます。あらゆるインテグレーター、エクスプローラー、またはウォレットは、オフチェーンの参照を必要とせずに、特定のアカウントが特定の機能について認可されているかどうかをチェーンに問い合わせることができます。

ライセンスが表すもの

各ライセンスは (grantee, feature_id) のペアをキーとする記録です。

  • grantee — ライセンスが認可する qor アカウント。
  • feature_id — ライセンスが解除するゲート付き機能。機能 ID は安定した文字列識別子です。ブリッジ機能とバリデーター機能は対象チェーンごとに命名されており(例: bridge_ethereumvalidator_solana)、ブリッジプロトコルやノード/バリデーターオペレーター機能などの包括的な機能と並んで存在します。
  • granted_at / expires_at — ライセンスが付与されたブロック高さ、およびライセンスが失効するブロック高さ(0 の値は失効しないことを意味します)。
  • granted_by — ライセンスを発行した権限。

機能の背後にゲートが設けられている場合、その機能は実行時に、操作を行うアカウントがその機能に対するアクティブなライセンスを保有しているかどうかを単純にチェックします。

ライセンスのライフサイクル

ライセンスは少数の状態を遷移します。

状態意味
付与済み / アクティブライセンスが存在し、被付与者を認可しています。停止されておらず失効していない間、アクティブとみなされます。
停止中一時的に無効化されています。記録は依然として存在しますが、ライセンスが再開されるまでゲート付き機能は拒否されます。
取り消し済み恒久的に削除されています。被付与者はライセンスをまったく保有しなくなります。

ライセンスはまた、停止または取り消しされたことがない場合でも、その expires_at の高さを過ぎるとアクティブでなくなります。

ライセンスを変更できる者

ライセンスの付与、取り消し、停止、再開は権限操作です — これらは任意のユーザーではなく、チェーンのガバナンス権限によって実行されます。これらのトランザクションはモジュールのコマンド面の一部として存在しますが、通常のユーザーが直接呼び出すことはありません。ライフサイクルはオンチェーンで権限によって管理されます。

ライセンスを取得するには、インテグレーターは**ダッシュボード(Tools → Buy License)**を経由します。これがリクエストフローを処理し、その後権限がオンチェーンに付与を記録します。

権限でゲートされたトランザクションは以下のとおりです。

# Grant a license for a feature to a grantee (authority signs)
qorechaind tx license grant qor1grantee... bridge_ethereum \
--expires-at 0 --from qor1authority... --chain-id qorechain-vladi

# Suspend / resume a license
qorechaind tx license suspend qor1grantee... bridge_ethereum --from qor1authority...
qorechaind tx license resume qor1grantee... bridge_ethereum --from qor1authority...

# Revoke a license permanently
qorechaind tx license revoke qor1grantee... bridge_ethereum --from qor1authority...

ライセンスのチェックと検証

クエリコマンドは誰にでも公開されています。これらは、インテグレーターが日常的に使用するモジュールの一部です — ゲート付き機能に依存する前にアカウントが認可されていることを確認したり、ウォレットやエクスプローラーでライセンスのステータスを表示したりするために使用します。

単一ライセンスのチェック

check は、特定の被付与者が特定の機能を保有しているかどうか、そしてそのライセンスが現在アクティブかどうかを報告します。これは「このアカウントは X を実行できるか」を確認する標準的な呼び出しです。

qorechaind query license check qor1grantee... bridge_ethereum
# -> returns the license record and an `active` flag (true / false)

レスポンスには、ライセンスの詳細と、停止および失効をすでに考慮したブール値の active フィールドが含まれます — したがって true は、被付与者が今すぐそのゲート付き機能を使用できることを意味します。

被付与者のライセンスを一覧表示

list は、すべての機能にわたって、あるアカウントが保有するすべてのライセンスを返します。

qorechaind query license list qor1grantee...

機能の保有者を一覧表示

holders は、特定の機能に対するライセンスを保有するすべてのアカウントを返します — 例えば、特定のブリッジ機能やバリデーター機能について誰が認可されているかを列挙するのに便利です。

qorechaind query license holders bridge_ethereum

コマンドの概要

トランザクションqorechaind tx license …)— 権限 / ガバナンスでゲート:

コマンド目的
grant被付与者に機能を認可する
revokeライセンスを恒久的に削除する
suspendライセンスを一時的に無効化する
resume停止中のライセンスを再有効化する

クエリqorechaind query license …)— 誰にでも公開:

コマンド目的
check1 つの (grantee, feature) ライセンスとそのアクティブ状態をチェックする
list被付与者が保有するすべてのライセンスを一覧表示する
holders特定の機能を保有するすべての被付与者を一覧表示する

関連項目

  • ブリッジ機能とバリデーター機能のライセンスは、ブリッジアーキテクチャ で説明されている機能を支えています。
  • ライセンスは**ダッシュボード(Tools → Buy License)**を通じて取得します。
  • ライトノードは 登録とライセンス の過程でライセンスを取得します。
  • ライセンスの購入と管理は Tools Hub から行います。