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

تشغيل مدقق

يغطي هذا الدليل كيفية إنشاء مدقق (validator) على شبكة QoreChain، وفهم نظام تصنيف المجمعات، وتسجيل مفتاح PQC للأمان المقاوم للحوسبة الكمية، ومراقبة عقدتك.

ملاحظة

يستهدف هذا الدليل الشبكة الرئيسية qorechain-vladi (معرّف سلسلة EVM 9801)، الفعّالة منذ 7 يونيو 2026 وتعمل بإصدار السلسلة v3.1.95. يُنصح باستخدام الشبكة التجريبية qorechain-diana (معرّف سلسلة EVM 9800) للتدرب على إعدادك قبل الانتقال إلى الإنتاج الفعلي. استبدل قيمة --chain-id المناسبة لشبكتك المستهدفة.


المتطلبات الأساسية

  • عقدة qorechaind متزامنة بالكامل (راجع الاتصال بالشبكة التجريبية)
  • حساب ممول بما لا يقل عن 100,000 QOR (100,000,000,000 uqor) للتفويض الذاتي الأولي — هذا الحد الأدنى مفروض على السلسلة، ويُرفض create-validator دونه
  • ترخيص validator_operator فعّال على حسابك — راجع الملاحظة أدناه؛ فبدونه يفشل create-validator برسالة ErrUnauthorized بغضّ النظر عن مقدار QOR الذي تودعه ذاتيًا
  • الإلمام بنموذج التخزين والتفويض

إنشاء مدقق

بوابة الترخيص: validator_operator

يخضع create-validator لفحصين مستقلين، كلاهما مفروض على السلسلة، وأنت بحاجة إلى كليهما — فالإيداع الذاتي الكبير وحده لا يكفي:

  1. حد أدنى للإيداع الذاتي قدره 100,000 QOR.
  2. ترخيص validator_operator فعّال على الحساب الذي يقدّم المعاملة.

قيمة expires_at في الترخيص هي ارتفاع كتلة (block height)، وليست تاريخًا أو مدة زمنية — القيمة 0 تعني بلا انتهاء صلاحية. إذا كان الترخيص مفقودًا أو منتهيًا، يفشل create-validator برسالة ErrUnauthorized بغضّ النظر عن مقدار الإيداع الذاتي؛ وهذا هو السبب الأكثر شيوعًا لفشل محاولة ممولة جيدًا دون تفسير واضح. توجد هذه البوابة تحديدًا لأن مسار تنفيذ EVM لا يمكنه رؤيتها أو فرضها (فوجود مُزيِّن (decorator) واحد في السلسلة هناك سيتيح تجاوزها بالكامل) — وهذا أحد أسباب بقاء التخزين والتحقق حصريًا على المسار الأصلي (Native).

qorechaind tx staking create-validator \
--amount 100000000000uqor \
--pubkey $(qorechaind comet show-validator) \
--moniker "my-validator" \
--commission-rate 0.10 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from mykey \
--gas auto \
--gas-adjustment 1.3 \
-y
المعاملالوصف
--amountمبلغ التفويض الذاتي — الحد الأدنى 100,000 QOR (100000000000uqor)
--pubkeyالمفتاح العام لإجماع المدقق (ed25519)
--monikerاسم مقروء يمثّل مدقّقك
--commission-rateمعدل العمولة الأولي (مثال: 0.10 = 10%)
--commission-max-rateالحد الأقصى لمعدل العمولة (ثابت بعد الإنشاء)
--commission-max-change-rateالحد الأقصى للتغيير اليومي في معدل العمولة
--min-self-delegationالحد الأدنى من الرموز التي يجب على المشغّل تفويضها ذاتيًا

بعد تأكيد المعاملة، تحقق من مدقّقك:

qorechaind query staking validator $(qorechaind keys show mykey --bech val -a)

تصنيف المجمعات

تستخدم QoreChain نظام تصنيف ثلاثي المجمعات تديره وحدة x/qca (تخصيص الإجماع الكمي). كل 1,000 كتلة، تتم إعادة تصنيف المدققين إلى واحد من ثلاثة مجمعات بناءً على سمعتهم وحصتهم:

المجمعالمعاييرتخصيص الكتل
RPoS (إثبات الحصة القائم على السمعة)السمعة >= المئين السبعين والحصة >= الوسيط40% من الكتل
DPoS (إثبات الحصة المفوَّض)إجمالي التفويض >= 10,000 QOR35% من الكتل
PoS (إثبات الحصة)جميع المدققين النشطين المتبقين25% من الكتل

ضمن كل مجمع، يتم اختيار مقترحي الكتل باستخدام اختيار عشوائي مرجَّح يتناسب مع حصتهم الفعّالة. يضمن هذا التصنيف حصول المدققين ذوي السمعة العالية والتفويض المرتفع على تمثيل عادل، مع السماح في الوقت نفسه للمدققين الأصغر بالمشاركة.

الاستعلام عن تصنيف مجمعك

qorechaind query qca pool-classification $(qorechaind keys show mykey --bech val -a)

عبر JSON-RPC:

curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "qor_getPoolClassification",
"params": ["qorvaloper1..."],
"id": 1
}'

منحنى الربط (Bonding Curve)

يُحدَّد مقدار مكافأة التخزين للمدقق بواسطة منحنى ربط يدمج عوامل متعددة:

R = beta * S * (1 + alpha * log(1 + L)) * Q(r) * P(t)
المتغيرالوصف
Rمقدار المكافأة
betaمعدل المكافأة الأساسي
Sالحصة الفعّالة
alphaثابت تحجيم الولاء
Lمدة الولاء (زمن التخزين المستمر)
Q(r)عامل جودة السمعة، النطاق [0.75 - 1.25]
P(t)مضاعف مرحلة البروتوكول (يُعدَّل عبر دورة حياة الشبكة)

أبرز النقاط:

  • مكافأة مدة الولاء: يحصل المدققون الذين يخزّنون بشكل مستمر على مكافآت متزايدة عبر حد الولاء اللوغاريتمي. وهذا يحفّز الالتزام طويل الأمد.
  • عامل جودة السمعة: يتراوح من 0.75 (سمعة ضعيفة) إلى 1.25 (سمعة ممتازة). تُحسب السمعة من وقت التشغيل، والمقترحات الناجحة، والمشاركة المجتمعية، وجودة التحقق من المعاملات.
  • مضاعف مرحلة البروتوكول: يُعدَّل مع نضج الشبكة عبر مراحل مختلفة (البدء، النمو، النضج).

الخصم (Slashing)

عقوبات المخالفة الأساسية، القابلة للاستعلام حاليًا وقت كتابة هذا الدليل:

qorechaind query slashing params
المعاملالقيمة
نافذة الكتل الموقَّعة10,000 كتلة (نحو 6 ساعات للتراكم)
الحد الأدنى للتوقيع ضمن النافذة95% (يُسجَن دون هذا الحد)
مدة السجن عند التوقف عن العمل600 ثانية (10 دقائق)
نسبة الخصم عند التوقف عن العمل1% من الحصة
نسبة الخصم عند التوقيع المزدوج5% من الحصة

السجن هو مهلة ثابتة مدتها 10 دقائق بعقوبة ثابتة — وهو منفصل عن النموذج التصاعدي أدناه، الذي يضيف عواقب إضافية متصاعدة فوق المخالفات المتكررة على مدى أفق زمني أطول.

الخصم التصاعدي (Progressive Slashing)

تستخدم QoreChain نموذج خصم تصاعدي يصعّد العقوبات على المخالفين المتكررين مع السماح للمدققين بالتعافي بمرور الوقت:

penalty = base_rate * escalation^effective_count * severity
المعاملالقيمة
الحد الأقصى للعقوبة لكل حدث33% من الحصة
عمر النصف للتحلل100,000 كتلة
شدة التوقف عن العمل1.0
شدة التوقيع المزدوج2.0
شدة هجوم العميل الخفيف3.0
  1. تزيد كل مخالفة العدد الفعّال. تؤدي كل مخالفة (توقف عن العمل، توقيع مزدوج، إلخ) إلى زيادة العدد الفعّال للمدقق، مما يؤثر على العقوبات المستقبلية.

  2. تتصاعد العقوبة أسّيًا. تتصاعد العقوبة بناءً على العدد الفعّال وفق الصيغة أعلاه، لذا يواجه المخالفون المتكررون عقوبات أكبر بكثير.

  3. يتحلل العدد الفعّال بمرور الوقت. يتحلل العدد الفعّال بعمر نصف قدره 100,000 كتلة (~7 أيام عند كتل كل 6 ثوانٍ)، مما يسمح للمدققين بالتعافي بعد فترة من السلوك الجيد.

  4. الأحداث الفردية مقابل المخالفات المتكررة. يؤدي حدث توقف عرضي واحد إلى عقوبة طفيفة، بينما تؤدي المخالفات المتكررة إلى عواقب متصاعدة أسّيًا.


تسجيل مفتاح PQC

سجّل مفتاحك العام لتشفير ما بعد الكم (PQC) — ML-DSA-87 — قبل التقدم بطلب ترخيص مدقق أو تشغيل create-validator. هذا الأمر ليس اختياريًا وليس تلقائيًا: تتطلب السلسلة توقيع PQC هجينًا على كل معاملة عبر مسار cosmos، وMsgCreateValidator ليس من أنواع الرسائل المستثناة، وعلى عكس الحساب العادي، الذي يسجّل مفتاحه تلقائيًا عند أول معاملة له، يجب على المدقق تشغيل هذا الأمر بنفسه، على عقدته الخاصة، مسبقًا.

qorechaind tx pqc register-key <pubkey-hex> hybrid \
--from mykey \
--gas 600000 \
-y
المعاملالوصف
<pubkey-hex>مفتاح عام من نوع ML-DSA-87 بحجم 2592 بايت بترميز hex
hybridوضع التسجيل (هجين = كلاسيكي + PQC معًا)
اضبط --gas صراحةً

المفتاح العام ML-DSA-87 بحجم 2,592 بايت، وكتابته على السلسلة تتجاوز حد الغاز الافتراضي البالغ 200,000. دون --gas 600000 (أو أعلى)، تفشل المعاملة برسالة خطأ غامضة out of gas in location: WritePerByte.

تحقق من التسجيل:

qorechaind query pqc key <account-address>

المراقبة

مقاييس Prometheus

تعرض QoreChain مقاييس Prometheus على المنفذ 26660:

http://localhost:26660/metrics

أبرز المقاييس التي يجب مراقبتها:

المقياسالوصف
qorechain_missed_blocks_totalإجمالي الكتل التي فاتت مدقّقك
qorechain_validator_uptimeنسبة وقت التشغيل خلال آخر N كتلة
qorechain_reputation_scoreدرجة السمعة الحالية
qorechain_pool_classificationتخصيص المجمع الحالي (0=PoS، 1=DPoS، 2=RPoS)
qorechain_consecutive_signedالكتل المتتالية الموقَّعة
consensus_heightارتفاع الكتلة الحالي
consensus_roundsجولات الإجماع للارتفاع الحالي

الاستعلام عن درجة السمعة

qorechaind query reputation score $(qorechaind keys show mykey --bech val -a)

عبر JSON-RPC:

curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "qor_getReputationScore",
"params": ["qorvaloper1..."],
"id": 1
}'

فحوصات السلامة

# Node status
qorechaind status | jq '.sync_info'

# Validator signing info (uptime, missed blocks)
qorechaind query slashing signing-info $(qorechaind comet show-validator)

# Check if your validator is in the active set
qorechaind query staking validators --status bonded | grep "my-validator"

أفضل الممارسات التشغيلية

  1. استخدم بنية عقد الحراسة (sentry nodes). شغّل مدقّقك خلف عقد حراسة لحمايته من هجمات DDoS. اكشف فقط عقد الحراسة للشبكة العامة.

  2. أعدّ نظام تنبيهات. اضبط تنبيهات للكتل الفائتة، وانخفاض وقت التشغيل، وإعادة التشغيل غير المتوقعة. فوات بضع كتل أمر طبيعي؛ أما الفوات المستمر فسيؤدي إلى الخصم.

  3. حافظ على وقت تشغيل مرتفع. يكافئ نظام السمعة استمرارية وقت التشغيل. يؤدي التوقف الممتد إلى تدهور عامل جودة سمعتك، مما يقلل المكافآت.

  4. حافظ على تحديث البرمجيات. تابع إصدارات QoreChain وطبّق التحديثات فورًا. نسّق مع مجتمع المدققين عند ترقيات السلسلة.

  5. أمّن مفاتيحك. استخدم وحدة أمان أجهزة (HSM) أو موقّع عن بُعد لمفتاح إجماع المدقق. لا تخزّن المفاتيح أبدًا على نفس الجهاز الذي تعمل عليه العقدة.

  6. سجّل مفتاح PQC. احمِ مدقّقك مستقبلًا من التهديدات الكمية بتسجيل مفتاح ML-DSA-87.

  7. راقب مجمعك. تابع تصنيف مجمعك كل 1,000 كتلة. يمكن أن يؤدي تحسين سمعتك إلى الانتقال من PoS إلى RPoS، مما يزيد بشكل كبير من فرص اقتراح الكتل.


مرجع أوامر المدقق

# Edit validator metadata
qorechaind tx staking edit-validator \
--moniker "new-name" \
--website "https://myvalidator.com" \
--details "Description of my validator" \
--from mykey -y

# Unjail after downtime slashing
qorechaind tx slashing unjail --from mykey -y

# Delegate additional stake
qorechaind tx staking delegate $(qorechaind keys show mykey --bech val -a) \
500000000uqor --from mykey -y

# Withdraw rewards
qorechaind tx distribution withdraw-rewards $(qorechaind keys show mykey --bech val -a) \
--commission --from mykey -y

التحقق من الشبكات المتصلة

اعتبارًا من إصدار السلسلة v3.1.80، يمكن لمدقق QoreChain أيضًا المساعدة في التحقق من الشبكات المتصلة عبر الجسر. هذا الأمر مقيّد بترخيص واختياري:

  1. امتلك الترخيص. يجب أن يمتلك المدقق ترخيصًا فعّالًا من نوع validator_<chain> (أو qcb_bridge) للشبكة المستهدفة. يرفض المنسّق تشغيل عميل خارجي دون ذلك (فشل مغلق).
  2. يوفّر التفعيل العميل تلقائيًا. عند تفعيل الترخيص، توفّر QoreChain عميل الشبكة المطابقة على عقدتك — بتنزيل العميل المثبَّت، وإنشاء إعداداته، وتشغيله تحت إشراف تنسيق QoreChain. لا يتم جلب أي شيء قبل التفعيل.
  3. زوّد مفاتيح وحصة الشبكة. مفاتيح المدقق/الحصة والتوقيع الخاصة بالشبكة الخارجية يوفّرها المشغّل لكل شبكة؛ توفّر QoreChain إطار عمل المشغّلات وبوابة الترخيص المفروضة، وليس حصتك في السلسلة الخارجية.

توجد مشغّلات لجميع شبكات الجسر البالغ عددها 37، مصنَّفة حسب طريقة مشاركة المدقق:

الفئةالمشاركةأمثلة
مدقق بلا إذنالتخزين والتشغيلSolana, Ethereum, Avalanche, Sui, Aptos, Cardano, Tezos, Algorand, Starknet
محدود / بالانتخاب / بالقبولالتخزين، خاضع لحد أقصى أو انتخابBSC, Polygon, Polkadot, TRON, Sei, Injective, NEAR, Hedera
عقدة كاملة من الطبقة الثانية (L2)تشغيل عقدة كاملة (بدون تخزين)Optimism, Base, zkSync Era, Linea, Scroll, Arbitrum
بدون تخزين / قائمة ثقةالمراقبة / المشاركة بدون تخزينBitcoin, Filecoin, XRPL, Stellar
ملاحظة

تثبيت إصدارات العميل (client version pins) هو أفضل جهد ممكن؛ تحقق من إصدار العميل الرسمي (upstream) لشبكتك المستهدفة قبل أي تفعيل في بيئة الإنتاج.

الخطوات التالية