البنية والمفاهيم
QoreChain هي سلسلة طبقة أولى (Layer 1) واحدة تُشغّل ثلاثة أجهزة افتراضية للعقود الذكية جنبًا إلى جنب، مع حسابات مشتركة ورمز مشترك.
نموذج الأجهزة الافتراضية الثلاثة (triple-VM)
| الجهاز الافتراضي | العقود | سطح العميل في الـ SDK |
|---|---|---|
| QoreChain Native | عقود Rust/Wasm (وقت تشغيل CosmWasm) | client.cosmwasm() ومساعِدات queryContractSmart / execute في @qorechain/sdk |
| محرك QoreChain EVM | Solidity / Vyper | @qorechain/evm (محوّل viem) |
| SVM | برامج Solana | @qorechain/svm (محوّل @solana/web3.js) |
تتعامل الطبقة الأصلية (Cosmos) مع التحويلات المصرفية والستيكينغ والحوكمة ووحدة
x/crossvm التي تُوجّه الرسائل بين أزمنة التشغيل.
أسطح القراءة
يتحدث الـ SDK إلى عقدة عبر عدة نقاط نهاية:
- Cosmos REST (LCD) — أرصدة بنكية، معلومات الحساب، استعلامات الوحدات.
- Consensus RPC — يُستخدم لتوقيع/بث المعاملات الأصلية ولعميل قراءة QoreChain Native.
- EVM JSON-RPC — استدعاءات
eth_*وnet_*وweb3_*وtxpool_*المعيارية على نقاط النهاية العامة. مساحة الأسماءqor_*الخاصة بـ QoreChain وأجهزة EVM precompiles غير متاحة هناك بعد (انظر أدناه). - SVM JSON-RPC — RPC متوافق مع Solana لزمن تشغيل SVM (للقراءة فقط على نقاط النهاية العامة؛ إرسال معاملات SVM معطّل على مستوى الشبكة بأكملها).
على العُقد التي تُفعّلها، تكشف مساحة أسماء JSON-RPC المسماة qor_* عمليات القراءة
الخاصة بـ QoreChain مثل اقتصاد الرمز، وحالة مفتاح PQC، ووضع التوقيع الهجين،
والرسائل المتبادلة بين الأجهزة الافتراضية، وإحصاءات الشبكة. في TypeScript تكون
هذه دوالًا مُحدّدة الأنواع على client.qor (QorClient)؛ والسطح نفسه موجود في
SDKs الخاصة بـ Python وGo وRust. على نقاط النهاية العامة استخدم مسارات REST بدلًا
من ذلك (على سبيل المثال GET /qorechain/pqc/v1/account/{address} لحالة مفتاح PQC
وGET /qorechain/burn/v1/stats لإحصاءات الحرق).
غير متاح بعد: لا يوجد إصدار منشور من العقدة يقدّم مساحة أسماء JSON-RPC المسماة
qor_، ولذلك تعيد كل استدعاءاتqor_*الرمز-32601(الطريقة غير موجودة) على كل نقطة نهاية عامة اليوم. راجع مساحة الأسماءqor_.
الرموز والفئات
- رمز العرض: QOR.
- الفئة الأساسية: uqor، بمعدّل 10^6 وحدة أساسية لكل QOR.
أجرِ دائمًا حسابات الأموال بالوحدات الأساسية. يوفّر الـ SDK تحويلات دقيقة بحيث لا تفقد أبدًا الدقة بسبب الفاصلة العائمة:
import { toBase, fromBase } from "@qorechain/sdk";
toBase("1.5"); // "1500000" (QOR -> uqor)
fromBase("1500000"); // "1.5" (uqor -> QOR)
ملاحظة: يُمثّل زمن تشغيل EVM رمز QOR بـ 18 خانة عشرية (اصطلاح EVM)، وهو ما يختلف عن قاعدة Cosmos لـ
uqorالبالغة 10^6. يَفترض عميل@qorechain/evm18 خانة عشرية للعرض. تحقق من القيمة الخاصة بشبكتك المستهدفة.
العناوين
يمكن التعبير عن مادة المفتاح نفسها بثلاث صيغ للعناوين:
- native — bech32 ببادئة
qor(qor1…)، يستخدم المُصادِقونqorvaloper. - EVM —
0x…، بمجموع اختباري EIP-55. - SVM — base58 للمفتاح العام ed25519.
راجع الحسابات والتوقيع بـ PQC لمعرفة مسارات الاشتقاق.
بين الأجهزة الافتراضية (Cross-VM)
تتيح وحدة x/crossvm الخاصة بـ QoreChain للعقود على جهاز افتراضي إطلاق إجراءات
على آخر. يعمل مسار EVM→native على السلسلة عبر جهاز precompile الجسر بين الأجهزة
الافتراضية (@qorechain/evm؛ غير مفعّل على الشبكتين العامتين بعد)، ويوفّر الـ SDK مساعِدات قراءة REST مُحدّدة الأنواع
(getCrossVmMessage، getPendingCrossVmMessages، getCrossVmParams) بالإضافة إلى
client.qor.getCrossVmMessage(...) لتتبّع حالة الرسالة. على نقاط النهاية العامة
لا تُقدَّم مساعِدات REST ولا client.qor؛ اقرأ الرسائل عبر
connectQueryClients(rpc).crossvm. راجع
دليل بين الأجهزة الافتراضية.