إنتقل إلى المحتوى الرئيسي

ترخيص السلسلة

توفر وحدة x/license ترخيص القدرات على السلسلة. تتطلب بعض القدرات المُقيَّدة على QoreChain — وأبرزها ميزات الجسر والمدقق لكل سلسلة — أن يحمل الحساب الفاعل ترخيصاً صالحاً لتلك القدرة. الترخيص ببساطة سجل على السلسلة يفوّض حاملاً محدداً (المُمنوح له) باستخدام ميزة مُقيَّدة محددة.

يبقي الترخيص هذه القدرات قابلة للتحقق وذاتية الوصف: يمكن لأي مُدمِج أو مستكشف أو محفظة أن يسأل السلسلة عمّا إذا كان حساب معين مفوَّضاً لميزة معينة، دون الحاجة إلى أي بحث خارج السلسلة.

ما يمثله الترخيص

كل ترخيص هو سجل مفتاحه زوج (grantee, feature_id):

  • grantee — حساب qor الذي يفوّضه الترخيص.
  • feature_id — القدرة المُقيَّدة التي يفتحها. معرّفات الميزات هي معرّفات نصية ثابتة؛ تُسمّى قدرات الجسر والمدقق لكل سلسلة هدف (على سبيل المثال bridge_ethereum، validator_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 …) — مفتوحة للجميع:

الأمرالغرض
checkفحص ترخيص (grantee, feature) واحد وحالته النشطة
listسرد جميع التراخيص التي يحملها مُمنوح له
holdersسرد جميع المُمنوح لهم الحاملين لميزة معينة

ذات صلة