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

إصدار SX — عفريت الخادم

إصدار SX (تجربة الخادم - Server eXperience) هو العقدة الخفيفة بلا واجهة: عفريت إضافةً إلى سطر أوامر إدارة كامل، مبني للخوادم والأتمتة. الثنائي هو lightnode-sx. هذا هو خط v3.1.2 للعقدة الخفيفة (إصدارها الخاص، منفصل عن إصدار السلسلة).

التثبيت​

الثنائيات الجاهزة هي الطريق الأسهل — عميل العقدة الخفيفة يعمل بشكل أصلي على ست منصات بلا أي تبعيات أصلية: لينكس (amd64، arm64)، ماك macOS (Intel، Apple Silicon)، وويندوز (amd64، arm64) — أي 12 ثنائيًا إجمالًا بين إصداري SX وUX. حجم كل ثنائي نحو 16 ميغابايت — حمِّله وشغِّله، بلا مكتبات منفصلة يجب تثبيتها.

تحقَّق من المجموع الاختباري قبل تشغيله. يحمل بيان الإصدار على https://download.qore.host/<net>/lightnode/latest.json قيمة sha256 لكل ثنائي، إضافةً إلى ملف SHA256SUMS منفصل يغطي الإصدار بأكمله. أعِد حساب بصمة ما حمَّلته وقارنها بقيمة البيان — هذه ليست ملاحظة هامشية، بل هي الفارق بين تشغيل الثنائي الذي بُني فعلًا وتشغيل أيًّا كان ما هبط على ذلك الرابط:

shasum -a 256 lightnode-sx-<platform> # macOS/Linux
# or: certutil -hashfile lightnode-sx-<platform>.exe SHA256 # Windows

يمكنك أيضًا بناء الثنائي من المصدر أو تشغيله عبر Docker.

البناء من المصدر​

تتطلب العقدة الخفيفة Go 1.26.1. تشفيرها ما بعد الكمّي هو تطبيق بلغة Go خالصة (بلا CGO، بلا مكتبة أصلية)، لذا فإن البناء المتقاطع لأي من المنصات الست المدعومة يعمل بنفس الطريقة التي يعمل بها أي ثنائي Go آخر:

go build -o build/lightnode-sx ./cmd/lightnode-sx/

ينتج هذا build/lightnode-sx. شغِّله مباشرة، أو انسخه إلى PATH الخاص بك. قبل التسجيل، تحقَّق من سلامة حزمة التوقيع ما بعد الكمّي عبر selftest.

Docker​

تتوفر تهيئة Docker. تُبنى خدمة SX من Dockerfile.sx:

docker compose up lightnode-sx

تحفظ حاوية SX بياناتها في وحدة تخزين مسمّاة مركَّبة عند /root/.qorechain-lightnode وتقرأ عنوان RPC للسلسلة من متغير البيئة QORECHAIN_RPC_ADDR.

التهيئة​

تقرأ العقدة الخفيفة ملف إعدادات TOML. افتراضيًا تبحث عن config.toml في الدليل الرئيسي (~/.qorechain-lightnode/config.toml). عادةً لا تكتب هذا الملف يدويًا — يُنشئه لك معالج onboard — لكن من المفيد فهم الخيارات.

ينطبق علمان دائمان على كل أمر:

  • --config <path> — أشِر إلى ملف إعدادات في موقع غير افتراضي.
  • --home <dir> — تجاوز الدليل الرئيسي المستخدَم للبيانات والمفاتيح (الافتراضي ~/.qorechain-lightnode).

أكثر خيارات التهيئة صلةً، على مستوى الاستخدام:

الخيارما يتحكم به
chain_idمعرّف الشبكة (مثل qorechain-diana على شبكة الاختبار، qorechain-vladi على الشبكة الرئيسية).
rpc_addrنقطة نهاية RPC للسلسلة التي يتصل بها العفريت. اتركها فارغة للتشغيل في الوضع المحلي فقط.
primary_addr / witness_addrsنقطة نهاية RPC الأساسية، ونقاط نهاية الشهود التي تُثبَت الترويسة المُبلَّغ عنها في مقابلها — راجع لماذا تشغِّل عقدة خفيفة. وجود شاهد واحد مميّز وقابل للوصول على الأقل هو ما ينقل Assurance من trusted-single-source إلى corroborated-across-sources.
trust_period / max_clock_driftنافذة ثقة العميل الخفيف (مثل 168h) وانحراف الساعة المسموح به.
data_dirحيث تخزِّن العقدة قاعدة بياناتها وترويساتها.
keyring_backend / key_nameخلفية حلقة المفاتيح (file أو os) واسم مفتاح المشغِّل.
[delegation]تشغيل/إيقاف المراكمة التلقائية، فترة المراكمة، الحد الأدنى للمكافأة للمطالبة، مجموعة المُدققين، أوزان التقسيم، إعادة التوازن، والحد الأدنى للسمعة.
[telemetry]ما إذا كان القياس عن بُعد مفعَّلًا وفترات تحديث المُدققين والشبكة والجسر واقتصاد الرمز.
log_level / log_formatمستوى تفصيل التسجيل (debug, info, warn, error) والصيغة (text أو json).
يجري التحقق من نقاط نهاية الشهود عند بدء التشغيل

يُرفَض أي شاهد على نفس المضيف الذي عليه العنوان الأساسي — إذ إن نقطة نهاية مخترَقة ستوافق ببساطة على نفسها، فلا تُثبِت شيئًا. كما يُرفَض شاهد نصّي غير مشفَّر عبر http:// على مضيف بعيد، لأن أي مهاجم قادر على إعادة كتابة ذلك الاتصال يمكنه الرد كأنه كل شاهد في آن واحد؛ أما http:// على العنوان المحلي (loopback) فمقبول. وجِّه الشهود إلى نقاط نهاية RPC لديك أسباب مستقلة للثقة بها.

تفعِّل إعدادات التفويض الافتراضية المراكمة التلقائية على فترة 1h وإعادة التوازن المدركة للسمعة — راجع المكافآت والمراقبة لما تفعله هذه.

التشغيل الأول: onboard​

عند أول إطلاق، سيتوقف start ويوجِّهك إلى معالج التهيئة الأولية إن لم يوجد ملف إعدادات بعد. شغِّل المعالج:

build/lightnode-sx onboard

يرشدك onboard خلال الإعداد في أربع خطوات:

  1. الاختبار الذاتي لـ PQC — يشغِّل دورة Dilithium-5 الكاملة (نفس فحوص selftest). إذا فشلت حزمة PQC، يرفض المعالج المتابعة.
  2. نقطة نهاية RPC للسلسلة — الصق رابط RPC الخاص بـ QoreChain، أو اتركه فارغًا للتشغيل في الوضع المحلي فقط بينما لا حاجة لاتصال بالسلسلة. إذا قدّمت رابطًا، يختبر المعالج إمكانية الوصول حيًّا.
  3. المفتاح الخاص للمُدقق — الصق مفتاحًا خاصًا بصيغة Dilithium-5 مرمَّزًا بالست عشري، أو اكتب g (أو generate) لسك زوج مفاتيح جديد على هذه العقدة.
  4. الحفظ — يكتب config.toml ويخزِّن المفتاح في حلقة المفاتيح.
الوضع المحلي فقط

إذا تركت نقطة النهاية فارغة، يبدأ العفريت في الوضع المحلي فقط: تُمارَس حزمة PQC بالكامل، لكن العقدة لا تتزامن مع أي سلسلة. أعد تشغيل onboard بمجرد أن تكون نقطة نهاية سلسلتك جاهزة لتوجيه العقدة إليها.

يكتب onboard دائمًا فوق الإعدادات النشطة. استخدم --config للكتابة إلى مسار غير افتراضي، أو --non-interactive للفشل السريع بدلًا من المطالبة (مفيد في CI).

التشغيل: start​

بمجرد أن تكتب التهيئة الأولية ملف إعدادات، ابدأ العفريت:

build/lightnode-sx start

يزامن العفريت الترويسات، ويتعقب التفويضات، ويقدم القياس عن بُعد حتى يُقاطَع. إذا أردت عمدًا البدء دون ملف إعدادات (محلي فقط، بلا RPC للسلسلة)، مرِّر --skip-onboarding-check.

التحقق من حزمة PQC: selftest​

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

lightnode-sx selftest

يشغِّل selftest خمسة فحوص مقابل Dilithium-5 (ML-DSA-87) ويكتمل في أقل من ثانية:

  1. توليد المفاتيح — توليد زوج مفاتيح جديد.
  2. التوقيع — توقيع رسالة اختبارية.
  3. التحقق (توقيع صالح) — تأكيد أن التوقيع يتحقق بالمفتاح العام المطابق.
  4. رفض التوقيع المعبوث به — اقلب بايتًا من التوقيع؛ يجب أن يرفضه التحقق.
  5. رفض الرسالة المعبوث بها — اقلب بايتًا من الرسالة؛ يجب أن يرفضها التحقق.

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

أوامر الإدارة​

يتضمن سطر أوامر SX أوامر لفحص حالة العقدة وإدارة المفاتيح:

الأمرالغرض
statusعرض حالة مزامنة العقدة والعميل الخفيف (معرّف السلسلة، أحدث ارتفاع، حالة اللحاق بالركب).
keys create <name>إنشاء مفتاح Dilithium-5 جديد.
keys listسرد المفاتيح في حلقة المفاتيح.
keys import <name> <hex-privkey>استيراد مفتاح خاص مرمَّز بالست عشري.
keys export <name>تصدير مفتاح خاص بالست عشري.
registerطباعة أمر التسجيل على السلسلة لهذه العقدة — راجع التسجيل والترخيص.
validatorsسرد المُدققين المربوطين.
delegationعرض التفويضات الحالية من قاعدة البيانات المحلية.
rewardsعرض مكافآت الستيكينغ المعلَّقة.
networkعرض القياس عن بُعد للشبكة (الترويسات المتزامنة الأخيرة) من قاعدة البيانات المحلية.
versionطباعة إصدار الثنائي.

لتفاصيل الستيكينغ والمكافآت والمراقبة راجع المكافآت والمراقبة. للتسجيل على السلسلة، راجع التسجيل والترخيص.