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

الجديد في QORel

تسرد هذه الصفحة ما يضيفه كل إصدار من QORel. وهي موجّهة إلى المشغّلين الذين يقررون الانتقال من Hermes، أو من إصدار سابق من QORel، وهي تذكر فقط ما يفعله الإصدار، بوصفه سلوكًا يمكن التحقق منه. يستند QORel إلى Hermes 1.13.3 (من Informal Systems، Apache-2.0)؛ وكل تغيير أدناه فوق ذلك الأساس. وما لم يُدرج هنا يتصرف كما يتصرف في Hermes.

0.1.0​

الإصدار الأول. لشبكة الاختبار فقط. تحتوي صفحة الإصدارات على الملفات.

الابتكارات​

  • توقيع هجين ما بعد كمومي لـ QoreChain. اضبط signing = 'qorechain-hybrid' على سلسلة فيُلحق QORel توقيع ML-DSA-87 (/qorechain.pqc.v1.PQCHybridSignature) بوصفه خيار الامتداد الحرج الوحيد في كل معاملة، ثم يوقّع الجسم النهائي بـ secp256k1. والرسالة التي يوقّعها المفتاح ما بعد الكمومي هي sign bytes من الإصدار 2، التي تتحقق منها شبكتا QoreChain. لا يمكن الجمع بين extension_options الثابتة وهذا الوضع، ويُرفض ملف الإعدادات إذا وُجدت.
  • التوقيع القياسي دون تغيير. مع signing = 'standard' (الافتراضي) تكون صيغة المعاملة مطابقة لـ Hermes بايتًا ببايت، لـ Cosmos Hub وOsmosis وأي سلسلة أخرى مبنية على Cosmos SDK.
  • الحزمة qorel-signer. البدائية ما بعد الكمومية (PqSigner، مع MlDsa87Signer)، وقواعد السلسلة (SignBytesFramer)، وموقِّع الامتداد الذي يستدعيه المُرحِّل (TxExtensionSigner) واجهات منفصلة. وتمر محاكاة الغاز وتحديد حجم الدفعات عبر المسار نفسه، فيُحتسب دائمًا الحجم الإضافي البالغ نحو 4.7 كيلوبايت وغاز التحقق.
  • qorel keys add يشتق المفتاح ما بعد الكمومي. على سلسلة هجينة يشتق مفتاح ML-DSA-87 من العبارة السرية والحساب نفسيهما باشتقاق محفظة QoreChain، ولا يخزّن منه سوى البذرة ذات 32 بايت، بجانب المفتاح، باسم <key name>.pqc. ولا يُطبع أي سر.
  • qorel keys register-pqc. يرسل MsgRegisterPQCKeyV2 مرة واحدة، مع إثبات حيازة على الشبكات من الإصدار v3.2.3 فما فوق. وهو متكرر الأثر بلا ضرر (لا يُرسل شيء إذا كان المفتاح نفسه مسجّلًا) ويرفض الإرسال إذا كان للحساب مفتاح مختلف. ولا يوجد --no-proof إلا للشبكات الأقدم من v3.2.3.
  • qorel keys pqc-status. يطبع هل المفتاح مسجّل، وهل يطابق المفتاح المحلي، وهل ثبتت الحيازة، وأي sign bytes تتحقق منها السلسلة، وready_to_relay.
  • فحص أمان قبل الإرسال. قبل كل معاملة إلى سلسلة هجينة يتحقق QORel من أن المفتاح محمّل ومسجّل ومطابق للمفتاح المحلي، وأن إصدار sign-bytes معروف. ومع pqc.sign_bytes = 'auto' يقرأ الإصدار من سجلات الترقيات المطبّقة في السلسلة، ويعيد قراءته كل دقيقة، ويعيد قراءته بعد أي رفض بالرمز codespace pqc والرمز 21. وعند أي إخفاق لا يُرسل شيء ولا يُنفق رسم؛ ويبلّغ health-check بالسبب.
  • سعر الغاز من سوق الرسوم. يقرأ dynamic_gas_price.backend = 'cosmos-evm-feemarket' الرسم الأساسي في QoreChain، وله حد أدنى 0.1 uqor لكل وحدة غاز.
  • اكتشاف سوء السلوك على سلاسل ibc-go v10. يقرأ QORel الترويسة من معاملة MsgUpdateClient لأن ibc-go v10 لم يعد يضمّنها في أحداث update_client. ويعطّل Hermes 1.13 الأصلي الاكتشاف على هذه السلاسل.
  • عمّال الحزم يصمدون أمام تحديد المعدل. يبقى العمّال قيد التشغيل بينما فشلت محاولة ترحيل أو مسح، ويعيدون المحاولة عند كل فترة مسح. وفي Hermes يتوقف العامل أيضًا بعد clear_interval x 5 كتل دون أحداث IBC جديدة حتى لو فشلت آخر جولة مسح، فكانت الحزمة المعلّقة في تلك اللحظة تنتظر الحزمة التالية على القناة أو إعادة التشغيل.
  • ملفات مفاتيح للمالك وحده. كان Hermes يكتب ملفات المفاتيح بقيمة umask الافتراضية. ويكتب QORel الملفين <key name>.json و<key name>.pqc بصلاحيات 0600. والمفاتيح المضافة بإصدار أقدم من Hermes تحتفظ بصلاحياتها القديمة؛ تحقق منها بالأمر ls -l.
  • ملف تنفيذي qorel. ملف تنفيذي واحد، qorel، بمجموعة أوامر Hermes مضافًا إليها أوامر المفاتيح ما بعد الكمومية. ويُبنى أيضًا ملف تنفيذي hermes بواجهة الأوامر نفسها من شجرة المصدر.
  • إصدارات مع إثبات المصدر. أرشيفات لـ Linux وmacOS، وحزم .deb و.rpm مع وحدة systemd مُحصَّنة، وصيغة Homebrew، وصورة حاوية متعددة المعماريات موقّعة بـ cosign. وتأتي ملفات الإصدار مع SHA256SUMS وشهادات البناء. راجع التثبيت.
  • اختبار شبكة تطوير محلية. يتضمن المستودع scripts/qorel-devnet/، الذي يبني محليًا عقدة QoreChain وسلسلة اختبار ibc-go v10 ويشغّل اختبار ICS-20 شاملًا في الاتجاهين: تسجيل المفتاح، وإنشاء العميل والاتصال والقناة، والتحويلات في الاتجاهين، وفكّ رمز محوَّل، وحزمة منتهية المهلة جرى مسحها واستردادها، وتحويل أرسله QORel نفسه.

جُرّب على شبكة الاختبار​

  • أول قناة IBC على شبكة اختبار QoreChain، وهي transfer/channel-0 على qorechain-diana إلى channel-600 على شبكة اختبار Cosmos Hub العامة (معرّف السلسلة provider)، يرحّلها QORel. العملاء هما 07-tendermint-0 و07-tendermint-466، والاتصالان connection-0 وconnection-315.
  • اختُبرت التحويلات في الاتجاهين (1 QOR صادر، 0.1 ATOM وارد، 0.4 QOR أُعيد) والاسترداد التلقائي لتحويل بمهلة ثانية واحدة عبر رسالة انتهاء مهلة. نجحت جميع معاملات المُرحِّل الثلاث عشرة على qorechain-diana.
  • عرض جانب القراءة للقناة في تحويل الأصول.

ليس في هذا الإصدار​

  • ترحيل IBC v2. وهو غير منفَّذ في QORel بعد، وهو المرحلة التالية.
  • ترحيل Ethereum (Eureka). لم يبدأ.
  • الترحيل على الشبكة الرئيسية. لا توجد قناة IBC مفتوحة على الشبكة الرئيسية بعد.
  • إصدار لـ Windows.
  • الحزمة qorel-signer على crates.io. النشر متعذّر؛ والحزمة في المستودع عند crates/qorel-signer، فاستخدم اعتمادية git.

الترقية​

لا يوجد إصدار سابق من QORel. للانتقال من Hermes 1.13 إلى QORel 0.1.0:

  1. ثبّت qorel بجانب hermes أو بدلًا منه (التثبيت).
  2. احتفظ بملف config.toml لديك. تبقى السلاسل التي ليس فيها signing على التوقيع القياسي وتتصرف كما كانت.
  3. غيّر اسم الأمر في ملفات الخدمة لديك من hermes إلى qorel. مجلد مخزن المفاتيح (~/.hermes/keys افتراضيًا) لا يتغير، ولهذا تركّب صورة الحاوية بياناتها عند /home/nonroot/.hermes.
  4. تحقق من صلاحيات ملفات المفاتيح بالأمر ls -l؛ فالمفاتيح الجديدة 0600، والأقدم تحتفظ بصلاحياتها.

تنطبق ملاحظات ترقية Hermes الأصلية في UPGRADING.md بالمستودع على كل من يأتي من إصدار Hermes أقدم من 1.6.