Ana içeriğe geç

Zincir Lisanslama

x/license modülü, zincir üstü yetenek lisanslama sağlar. QoreChain üzerindeki belirli sınırlandırılmış yetenekler — özellikle zincir başına köprü ve doğrulayıcı özellikleri — eylemde bulunan hesabın o yetenek için geçerli bir lisansa sahip olmasını gerektirir. Bir lisans, basitçe belirli bir sahibin (hibe edilen / grantee) belirli bir sınırlandırılmış özelliği kullanmasını yetkilendiren bir zincir üstü kayıttır.

Lisanslama, bu yetenekleri doğrulanabilir ve kendi kendini tanımlayan tutar: herhangi bir entegratör, gezgin veya cüzdan, zincire belirli bir hesabın belirli bir özellik için yetkili olup olmadığını sorabilir; zincir dışı bir arama gerektirmez.

Bir lisans neyi temsil eder

Her lisans, bir (grantee, feature_id) çiftiyle anahtarlanan bir kayıttır:

  • grantee — lisansın yetkilendirdiği qor hesabı.
  • feature_id — kilidini açtığı sınırlandırılmış yetenek. Özellik kimlikleri kararlı string tanımlayıcılarıdır; köprü ve doğrulayıcı yetenekleri hedef zincir başına adlandırılır (örneğin bridge_ethereum, validator_solana), köprü protokolü ve düğüm/doğrulayıcı operatör özellikleri gibi şemsiye özelliklerin yanında.
  • granted_at / expires_at — lisansın verildiği blok yüksekliği ve sona erdiği blok yüksekliği (0 değeri sona ermediği anlamına gelir).
  • granted_by — lisansı veren yetkili.

Bir özelliğin arkasında sınırlandırılmış bir yetenek, yürütme zamanında eylemde bulunan hesabın o özellik için aktif bir lisansa sahip olup olmadığını basitçe kontrol eder.

Lisans yaşam döngüsü

Bir lisans küçük bir durum kümesi arasında hareket eder:

DurumAnlamı
Verildi / AktifLisans mevcuttur ve hibe edileni yetkilendirir. Askıya alınmadığı ve süresi dolmadığı sürece aktif sayılır.
Askıya AlındıGeçici olarak devre dışı bırakıldı. Kayıt hâlâ mevcuttur, ancak lisans sürdürülene kadar sınırlandırılmış yetenek reddedilir.
İptal EdildiKalıcı olarak kaldırıldı. Hibe edilen artık lisansa hiç sahip değildir.

Bir lisans ayrıca, hiç askıya alınmamış veya iptal edilmemiş olsa bile, expires_at yüksekliği geçtiğinde aktif olmayı durdurur.

Lisansları kim değiştirebilir

Lisansları verme, iptal etme, askıya alma ve sürdürme yetkili işlemleridir — bunlar gelişigüzel kullanıcılar tarafından değil, zincirin yönetişim yetkilisi tarafından gerçekleştirilir. Bu işlemler modülün komut yüzeyinin bir parçası olarak mevcuttur, ancak normal bir kullanıcı bunları doğrudan çağırmaz; yaşam döngüsü zincir üstünde yetkili tarafından yönetilir.

Bir lisans edinmek için, entegratörler Kontrol Paneli (Araçlar → Lisans Satın Al) üzerinden geçer; bu istek akışını yönetir; ardından yetkili hibeyi zincir üstüne kaydeder.

Yetkili sınırlandırmalı işlemler şunlardır:

# 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...

Bir lisansı kontrol etme ve doğrulama

Sorgu komutları herkese açıktır. Entegratörlerin günlük olarak kullandığı modül kısmıdır — sınırlandırılmış bir yeteneğe güvenmeden önce bir hesabın yetkili olduğunu onaylamak veya bir cüzdanda ya da gezginde lisans durumunu göstermek için.

Tek bir lisansı kontrol et

check, belirli bir hibe edilenin belirli bir özelliğe sahip olup olmadığını ve o lisansın şu anda aktif olup olmadığını bildirir. Bu, kanonik "bu hesabın X'i yapmasına izin veriliyor mu" çağrısıdır.

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

Yanıt, lisans ayrıntılarını ve askıya alma ile süre dolmasını zaten hesaba katan boolean bir active alanı içerir — yani true, hibe edilenin sınırlandırılmış özelliği şu anda kullanabileceği anlamına gelir.

Bir hibe edilenin lisanslarını listeleme

list, bir hesabın tüm özellikler genelinde tuttuğu her lisansı döndürür.

qorechaind query license list qor1grantee...

Bir özelliğin sahiplerini listeleme

holders, belirli bir özellik için lisans tutan her hesabı döndürür — örneğin belirli bir köprü veya doğrulayıcı yeteneği için kimin yetkili olduğunu sıralamak için kullanışlıdır.

qorechaind query license holders bridge_ethereum

Komut özeti

İşlemler (qorechaind tx license …) — yetkili / yönetişim sınırlandırmalı:

KomutAmaç
grantBir hibe edileni bir özellik için yetkilendir
revokeBir lisansı kalıcı olarak kaldır
suspendBir lisansı geçici olarak devre dışı bırak
resumeAskıya alınmış bir lisansı yeniden etkinleştir

Sorgular (qorechaind query license …) — herkese açık:

KomutAmaç
checkBir (grantee, feature) lisansını ve aktif durumunu kontrol et
listBir hibe edilenin tuttuğu tüm lisansları listele
holdersBelirli bir özelliği tutan tüm hibe edilenleri listele

İlgili

  • Köprü ve doğrulayıcı özellikleri için lisanslar, Köprü Mimarisi sayfasında açıklanan yetenekleri destekler.
  • Lisanslar Kontrol Paneli (Araçlar → Lisans Satın Al) üzerinden edinilir.
  • Hafif düğümler, Kayıt ve Lisanslama sırasında bir lisans edinir.
  • Lisansları Araçlar Merkezi üzerinden satın alın ve yönetin.