Passa al contenuto principale

Licensing della chain

Il modulo x/license fornisce il licensing delle capacità on-chain. Alcune capacità soggette a restrizioni su QoreChain — in particolare le funzionalità di bridge e validatore per chain — richiedono che l'account che agisce detenga una licenza valida per quella capacità. Una licenza è semplicemente un record on-chain che autorizza un titolare specifico (il grantee) a utilizzare una specifica feature soggetta a restrizioni.

Il licensing mantiene queste capacità verificabili e auto-descrittive: qualsiasi integratore, explorer o wallet può chiedere alla chain se un dato account è autorizzato per una data feature, senza necessità di alcuna ricerca off-chain.

Cosa rappresenta una licenza​

Ogni licenza è un record indicizzato da una coppia (grantee, feature_id):

  • grantee — l'account qor che la licenza autorizza.
  • feature_id — la capacità soggetta a restrizioni che sblocca. I feature ID sono identificatori stringa stabili; le capacità di bridge e validatore sono denominate per chain di destinazione (ad esempio bridge_ethereum, validator_solana), insieme a feature generali come quelle del protocollo del bridge e dell'operatore di nodi/validatori.
  • granted_at / expires_at — l'altezza del blocco in cui la licenza è stata concessa e l'altezza del blocco in cui scade (un valore di 0 significa che non scade).
  • granted_by — l'autorità che ha emesso la licenza.

Una capacità soggetta a restrizioni dietro una feature verifica semplicemente, al momento dell'esecuzione, se l'account che agisce detiene una licenza attiva per quella feature.

Ciclo di vita di una licenza​

Una licenza attraversa un piccolo insieme di stati:

StatoSignificato
Concessa / AttivaLa licenza esiste e autorizza il grantee. Conta come attiva finché non è sospesa e non è scaduta.
SospesaTemporaneamente disabilitata. Il record esiste ancora, ma la capacità soggetta a restrizioni è negata finché la licenza non viene ripristinata.
RevocataRimossa permanentemente. Il grantee non detiene più affatto la licenza.

Una licenza smette inoltre di essere attiva una volta superata l'altezza expires_at, anche se non è mai stata sospesa o revocata.

Chi può modificare le licenze​

La concessione, la revoca, la sospensione e il ripristino delle licenze sono operazioni dell'autorità — vengono eseguite dall'autorità di governance della chain, non da utenti arbitrari. Queste transazioni esistono come parte della superficie di comando del modulo, ma un normale utente non le chiama direttamente; il ciclo di vita è amministrato on-chain dall'autorità.

Per ottenere una licenza, gli integratori passano attraverso la Dashboard (Tools → Buy License), che gestisce il flusso di richiesta; l'autorità registra quindi la concessione on-chain.

Le transazioni soggette a restrizioni dell'autorità sono:

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

Verifica e controllo di una licenza​

I comandi di query sono aperti a chiunque. Sono la parte del modulo che gli integratori utilizzano quotidianamente — per confermare che un account è autorizzato prima di fare affidamento su una capacità soggetta a restrizioni, o per mostrare lo stato della licenza in un wallet o explorer.

Verificare una singola licenza​

check riferisce se uno specifico grantee detiene una specifica feature, e se quella licenza è attualmente attiva. Questa è la chiamata canonica "questo account è autorizzato a fare X".

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

La risposta include i dettagli della licenza e un campo booleano active che tiene già conto della sospensione e della scadenza — quindi un valore true significa che il grantee può utilizzare la feature soggetta a restrizioni in questo momento.

Elencare le licenze di un grantee​

list restituisce ogni licenza detenuta da un account, su tutte le feature.

qorechaind query license list qor1grantee...

Elencare i titolari di una feature​

holders restituisce ogni account che detiene una licenza per una data feature — utile per enumerare, ad esempio, chi è autorizzato per una particolare capacità di bridge o validatore.

qorechaind query license holders bridge_ethereum

Riepilogo dei comandi​

Transazioni (qorechaind tx license …) — soggette a restrizioni dell'autorità / governance:

ComandoScopo
grantAutorizza un grantee per una feature
revokeRimuove permanentemente una licenza
suspendDisabilita temporaneamente una licenza
resumeRiabilita una licenza sospesa

Query (qorechaind query license …) — aperte a chiunque:

ComandoScopo
checkVerifica una licenza (grantee, feature) e il suo stato attivo
listElenca tutte le licenze detenute da un grantee
holdersElenca tutti i grantee che detengono una data feature

Correlati​

  • Le licenze per le feature di bridge e validatore supportano le capacità descritte in Architettura del bridge.
  • Le licenze si ottengono attraverso la Dashboard (Tools → Buy License).
  • I light node ottengono una licenza durante Registrazione e Licensing.
  • Acquista e gestisci le licenze dal Tools Hub.