مولّدات المشاريع وأداة qorollup CLI
تنقل ثلاث أدوات سطر أوامر مشروع QoreChain من الصفر إلى نقطة بداية مكتوبة الأنواع وقابلة للبناء. وهي موجّهة لمطوري التطبيقات (dApps) ومشغّلي rollup الذين يعملون بـ Node.js:
create-qorechain-dapp(0.10.0) يولّد تطبيقًا لامركزيًا من أحد ثلاثة قوالب، مبنيًا على QoreChain SDK.create-qorechain-rollup(0.8.0) يولّد مشروع rollup من أحد ستة قوالب، مبنيًا على حزمة تطوير Rollup بلغة TypeScript.qorollup، أمر الحزمة@qorechain/rdk-cli(0.8.0)، هو سطر أوامر المشغّل: فحوص ما قبل التشغيل، وإنشاء rollup ومراقبته، وقراءة المعاملات الحية.
تعكس الصفحة الحزم المنشورة كما ثُبّتت من npm في 27 أكتوبر 2026. الأدلة المفاهيمية هي نشر Rollup ومرجع SDK CLI.
الابتكارات
- توليد غير تفاعلي لأنظمة CI. لكل سؤال علَم مقابل:
--templateو--networkو--package-managerو--yes(قبول القيم الافتراضية) و--no-install. يستطيع خط إنتاج توليد مشروع وبناءه بأمر واحد ودون طرفية. - القوالب مثبَّتة على الحزم الحالية. تعتمد قوالب dApp على
@qorechain/sdk^0.10.0(وقالب EVM على@qorechain/evm) وقوالب rollup على@qorechain/rdk^0.8.0. كان مولّد سابق (0.8.0) يكتب نطاقات تُحَلّ إلى SDK لا يستطيع التوقيع للشبكات الحية؛ ولا يحدث ذلك مع المولّد الحالي. - قوالب rollup تُرمّز إعدادًا صالحًا لكل حالة استخدام. يضبط كل قالب rollup توليفة من التسوية والمُسلسِل (sequencer) وإتاحة البيانات والغاز والآلة الافتراضية تقبلها مصفوفة التوافق في RDK، ويطبع المولّد الرهان الحي وحرق الإنشاء قبل أن تنشئ أي شيء.
- أمر ما قبل التشغيل يسمّي ما هو مفقود. يفحص
qorollup doctor(وnpm run doctorداخل قالب rollup) أن نقطة REST تردّ، وأن معاملات الوحدة قابلة للقراءة، وأن نقطة النهاية هي الشبكة التي طلبتها، وأن موقّعًا مُعدّ، ويطبع سطرًا واحدًا لكل فحص. وداخل القالب يتحقق أيضًا من إعداد rollup مقابل مصفوفة التوافق. - توقيع هجين موصول في القوالب. تتصل قوالب rollup عبر
signer.tsصغير يشتق مفتاح ML-DSA-87 للحساب من عبارتك الاسترجاعية (أو يأخذ بذرة مع مفتاح خاص خام) ويوقّع توقيعًا هجينًا، وهو ما تشترطه الشبكات على مسار Native. ويفعل قالب dApp rollup-appالشيء نفسه ويعمل كتجربة جافة ما لم تضبطQORE_BROADCAST=1. - تجارب جافة. يتحقق
qorollup create ... --dry-runمن الإعداد، ويطبع الرهان والحرق، ويذكر أنه كان سيرسلMsgCreateRollupدون بث. - مخرجات مقروءة آليًا. يطبع
qorollup ... --jsonبصيغة JSON للسكربتات.
طريقة الاستخدام
توليد dApp
# interactive
npm create qorechain-dapp my-dapp
# non-interactive
npx create-qorechain-dapp my-dapp --template fullstack-web --network testnet --package-manager npm --yes
| القالب | ما يولّده | السكربتات |
|---|---|---|
evm-solidity | عقد Solidity Counter مع أثر مُجمَّع مسبقًا، وسكربت viem ينشره ويستدعيه باستخدام @qorechain/evm. الملفات: contracts/Counter.sol وcontracts/Counter.artifact.ts وscripts/deploy.ts و.env. | deploy |
fullstack-web | صفحة Vite وReact وTypeScript تقرأ أرصدة عنوان (ونظرة عامة على الاقتصاد الرمزي) باستخدام @qorechain/sdk. الملفات: index.html وsrc/App.tsx وsrc/main.tsx وvite.config.ts و.env. | dev وbuild وpreview وtypecheck |
rollup-app | سكربت Node يستخدم createRollupClient وcreateMultilayerClient من SDK لبناء رسائل rollup والسلسلة الجانبية أو سلسلة الدفع. الملفات: src/index.ts والإعدادات المعتادة. تجربة جافة افتراضيًا. | start وtypecheck |
| العلَم | المعنى |
|---|---|
-t, --template <name> | evm-solidity أو fullstack-web أو rollup-app |
--network <name> | testnet أو mainnet |
--package-manager <pm> | pnpm أو npm أو yarn |
-y, --yes | تخطّي الأسئلة واستخدام القيم الافتراضية |
--no-install | عدم تثبيت الاعتماديات |
-h, --help, -v, --version | المساعدة، الإصدار |
مثال مُختبَر (من مركز المطورين؛ شُغّل في 27 أكتوبر 2026 في مجلد فارغ، مع npx من سجل npm العام): يولّد قالب الويب ويبنيه. الملاحَظ: Done! Created my-dapp وvite build ناجح. يطبع البناء تحذيرًا بحجم الحزمة، وهو غير ضار.
npx -y create-qorechain-dapp my-dapp --template fullstack-web --network testnet --package-manager npm --yes
cd my-dapp && npm run build
قبل تشغيل تطبيق الويب، افتح ملف .env المولَّد: يشير إلى http://localhost:1317 وhttp://localhost:8545، فاضبط VITE_QORE_REST_URL على https://api-testnet.qore.host (أو https://api.qore.host للشبكة الرئيسية) وVITE_QORE_EVM_RPC_URL على https://evm-testnet.qore.host (أو https://evm.qore.host).
توليد مشروع rollup
npm create qorechain-rollup my-rollup
# non-interactive
npx create-qorechain-rollup my-rollup --template defi-rollup --network testnet --package-manager npm --yes
| القالب | الملف التعريفي | التسوية / المُسلسِل / DA / الغاز / الآلة الافتراضية | ملفات إضافية |
|---|---|---|---|
defi-rollup | defi | zk-SNARK، مخصّص، أصلي، EIP-1559، EVM | مُثبِت مرجعي (src/prover.ts) ودائرة تجريبية تحت circuits/ |
gaming-rollup | gaming | قائم على الأساس (based)، based، أصلي، غاز ثابت، آلة افتراضية مخصّصة | لا شيء |
nft-rollup | nft | تفاؤلي، مخصّص، QoreChain Native، مع مسار طعن | src/challenge.ts |
enterprise-rollup | enterprise | based، based، أصلي، غاز مدعوم، EVM | لا شيء |
custom-rollup | custom | مضبوط بالكامل، كل حقل موثَّق | لا شيء |
multivm-rollup | multivm | rollup على EVM يستدعي عقود QoreChain Native عبر precompile الاستدعاء بين الآلات الافتراضية | contracts/CrossVmCaller.sol وsrc/crossvm-call.ts |
يحتوي كل قالب على rollup.config.ts (الإعداد) وsrc/client.ts وsrc/signer.ts وsrc/create.ts وsrc/submit-batch.ts وsrc/query-status.ts وsrc/doctor.ts وsrc/status.ts و.env و.env.example وملف README و.github/workflows/deploy.yml. السكربتات: create وsubmit-batch وquery-status وdoctor وstatus وtypecheck. تُشرح الملفات التعريفية المسبقة في الإعدادات المسبقة.
الخيارات هي نفسها في مولّد dApp، مع أسماء القوالب الستة أعلاه. القالب multivm-rollup يظهر في --help لكنه غير مذكور في README الحزمة، الذي يذكر خمسة.
مثال مُختبَر (مركز المطورين، 27 أكتوبر 2026، npx من npm في مجلد فارغ). الملاحَظ: Created my-rollup (defi-rollup template) ونجاح tsc --noEmit. أُعيد التوليد نفسه وnpm run typecheck مع 0.6.2 في اليوم نفسه، بالنتيجة نفسها.
npx -y create-qorechain-rollup my-rollup --template defi-rollup --network testnet --package-manager npm --yes
cd my-rollup && npm run typecheck
الخطوات التالية كما يطبعها المولّد: npm install، ثم ملء مفتاح المشغّل في .env، ثم npm run doctor، ثم npm run create، ثم npm run query-status. يحتوي .env المولَّد أصلًا على نقاط نهاية الشبكة التجريبية العامة (https://api-testnet.qore.host وhttps://rpc-testnet.qore.host وhttps://evm-testnet.qore.host) وحقول مفاتيح فارغة: QORE_MNEMONIC أو QORE_OPERATOR_PRIVATE_KEY_HEX (مع QORE_PQC_SEED_HEX لبذرة ما بعد الكم). لا تُودع ذلك الملف في المستودع أبدًا.
أداة qorollup CLI
npm install -g @qorechain/rdk-cli
qorollup --version # prints the installed version (0.8.0 is current)
qorollup doctor --network testnet
يمكنك أيضًا تشغيلها دون تثبيت: npx @qorechain/rdk-cli doctor.
| الأمر | ما يفعله |
|---|---|
doctor | فحص ما قبل التشغيل: نقاط النهاية ومعاملات الوحدة وتطابق الشبكة والموقّع والرصيد والإعداد |
params | يطبع معاملات الوحدة الحية |
create --rollup-id <id> | ينشئ rollup (--profile و--stake-uqor و--dry-run) |
status <id>، watch <id> | الحالة والصحة، أو عرض حي (--interval <ms>) |
advise <id> | نصيحة من QCAI Copilot (راجع QCAI Copilot) |
suggest "<use case>" | يقترح ملفًا تعريفيًا لحالة استخدام |
receipt <id> <batch> | يبني إيصال تسوية (--verify و--out <file>)، راجع إيصالات التسوية |
watchtower <id> | إطار الطعن لـ rollup التفاؤلية، راجع برج المراقبة |
pause، resume، stop <id> | انتقالات دورة الحياة (للمنشئ فقط) |
keygen | يولّد مفتاح مشغّل (عبارة استرجاعية وعنوان) |
manifest export، manifest import | تصدير بيان rollup أو استيراده |
withdraw --file <json> | يجمّع عملية سحب ويرسلها (--dry-run) |
faucet <address> | يطلب أموال الشبكة التجريبية (يتطلب QORE_FAUCET_URL) |
الأعلام العامة: --network testnet|mainnet (الافتراضي testnet) و--rest و--rpc و--evm-rpc (تجاوز نقاط النهاية، أو QORE_REST_URL وQORE_RPC_URL وQORE_EVM_RPC_URL) و--mnemonic أو --key (أو QORE_MNEMONIC وQORE_OPERATOR_PRIVATE_KEY_HEX) و--profile defi|gaming|nft|enterprise|custom و--json و-y, --yes و-h, --help و-v, --version.
doctor. شغّله قبل أي شيء يرسل معاملة. المخرجات الملاحَظة في 27 أكتوبر 2026 مع 0.6.2 ودون ضبط موقّع، على الشبكة التجريبية (طبعت الشبكة الرئيسية الشيء نفسه، مع qorechain-vladi وhttps://api.qore.host؛ تطبع الأداة شرطات طويلة، معروضة هنا كواصلات عادية):
Preflight (testnet - qorechain-diana):
✓ REST endpoint reachable - https://api-testnet.qore.host
✓ Module parameters readable - min stake 10000 QOR, burn 1%
✓ Network matches expectation - client is testnet (qorechain-diana)
! Signer configured - no signer (Set QORE_OPERATOR_PRIVATE_KEY_HEX or QORE_MNEMONIC to create/operate.)
All checks passed.
السطر الذي يبدأ بـ ! تحذير ولا يُفشل التشغيل؛ وغياب الموقّع مشكلة فقط حين تريد إنشاء rollup أو تشغيله. ينتهي الأمر بالرمز 0 حين لا يفشل أي فحص.
مثال مُختبَر. من مركز المطورين: قراءة معاملات الوحدة الحية دون مفتاح. فشل على 0.6.1 (لم يطبع الأمر شيئًا وانتهى بالرمز 0) وأُعيد تشغيله على 0.6.2:
npx -y @qorechain/rdk-cli params --network testnet --rest https://api-testnet.qore.host
الملاحَظ مع 0.6.2 عبر npx وعبر تثبيت عام وعبر الرابط المحلي node_modules/.bin/qorollup (ومع 0.7.0 عبر الرابط المحلي، حيث طبع qorollup --version القيمة 0.7.0): تُطبع معاملات الوحدة (الحد الأقصى للـ rollups 200، الحد الأدنى للرهان 10000 QOR، حرق الإنشاء 1%، نافذة الطعن 3600 ث، الحد الأقصى لـ blob إتاحة البيانات 2,097,152 بايت، الاحتفاظ بالـ blobs 432,000 كتلة، الحد الأقصى للدفعات لكل كتلة 10). وتجربة جافة لعملية إنشاء، لوحظت أيضًا:
qorollup create --rollup-id my-roll --profile defi --dry-run --network testnet
# Create rollup "my-roll" (profile defi, zk/evm)
# Stake 10000 QOR - burned on creation: 100 QOR
# Dry run OK - would submit MsgCreateRollup (no broadcast).
طريقة الوصول
- المتطلبات المسبقة. Node.js 20 أو أحدث ومدير حزم. تكتب المولّدات ملفات، وما لم تمرّر
--no-installفإنها تثبّت الاعتماديات، لذا تحتاج إلى وصول شبكي إلى سجل npm. عملاء RDK بلغات Python وRust وGo وJava مكتبات وليس لها مولّد؛ راجع نشر Rollup. - الشبكات ونقاط النهاية. الشبكة الرئيسية
qorechain-vladi(معرّف سلسلة EVM 9801): REST https://api.qore.host، RPC https://rpc.qore.host، EVM https://evm.qore.host. الشبكة التجريبيةqorechain-diana(معرّف السلسلة 9800): المضيفات نفسها مع-testnetبعد التسمية الأولى، مثلhttps://api-testnet.qore.host. قراءة البيانات وdoctorوparamsوsuggestو--dry-runلا تحتاج إلى حساب. - الحسابات والمفاتيح. أي شيء يرسل معاملة يحتاج إلى حساب مشغّل ممول وعبارته الاسترجاعية أو مفتاحه الخاص، يُزوَّد عبر متغيرات البيئة أو الأعلام، ولا يُودَع في المستودع أبدًا. إنشاء rollup يحتاج إلى الحد الأدنى من الرهان (10,000 QOR على الشبكتين، قُرئ حيًا في 27 أكتوبر 2026)، يُحرق منه 1% عند الإنشاء. يُنشئ
qorollup keygenمفتاحًا جديدًا؛ وعلى الشبكة التجريبية تأتي أموال الاختبار من صنبور Dashboard، أو منqorollup faucetمع ضبطQORE_FAUCET_URL. - التوقيع الهجين. معاملات مسار Native تحتاج إلى توقيع secp256k1 مع توقيع ML-DSA-87. تشتق القوالب مفتاح ما بعد الكم من عبارتك الاسترجاعية؛ أما أوامر المعاملات في
qorollupفلا تفعل (انظر الحدود أدناه). - التكاليف. الأدوات مجانية (Apache-2.0). على السلسلة، الحد الأدنى للرسوم 0.1 uqor لكل وحدة غاز؛ وينطبق على الإنشاء رهان rollup والحرق المذكوران أعلاه.
أين نُشرت
| السجل | الحزمة | الإصدار | الرابط |
|---|---|---|---|
| npm | create-qorechain-dapp (الأمر create-qorechain-dapp) | 0.10.0 | https://www.npmjs.com/package/create-qorechain-dapp |
| npm | create-qorechain-rollup (الأمر create-qorechain-rollup) | 0.8.0 | https://www.npmjs.com/package/create-qorechain-rollup |
| npm | @qorechain/rdk-cli (الأمر qorollup) | 0.8.0 | https://www.npmjs.com/package/@qorechain/rdk-cli |
| npm | @qorechain/rdk (المكتبة التي تستخدمها القوالب) | 0.8.0 | https://www.npmjs.com/package/@qorechain/rdk |
المصدر: https://github.com/qorechain/qorechain-sdk/tree/main/cli (مولّد dApp) وhttps://github.com/qorechain/qorechain-rdk/tree/main/cli (مولّد rollup) وhttps://github.com/qorechain/qorechain-rdk/tree/main/packages/rdk-cli (qorollup). إصدار RDK 0.8.0 منشور أيضًا على PyPI وcrates.io وMaven Central ووكيل وحدات Go (جرى التحقق في 31 أكتوبر 2026). وجميعها Apache-2.0.
الحدود والمشكلات المعروفة
- الخيار
--network mainnetلم يغيّر الملفات المولَّدة في تشغيل اختباري. في 27 أكتوبر 2026 وُلّدfullstack-webوcustom-rollupمع--network mainnet؛ وظل.envالمولَّد يحمل نقاط نهاية localhost (dApp) أوQORE_NETWORK=testnetمع نقاط نهاية الشبكة التجريبية (rollup)، وأنشأApp.tsxالخاص بـ dApp عميلًا من نوعtestnet. اضبط الشبكة ونقاط النهاية بنفسك في.env، وفيsrc/App.tsxلقالب الويب. - لا يوجد rollup على أي من الشبكتين بعد (جرى التحقق في 27 أكتوبر 2026). لم يُجرَّب أي مسار معاملات في أدوات rollup على rollup حي. تحقق من كل شيء على الشبكة التجريبية أولًا، واقرأ RDK 0.8.0: التغييرات والحدود.
- قالب
defi-rollupلا يستطيع تسوية دفعة. تسوية ZK غير قابلة للاستخدام بعد على أي من الشبكتين (تسجيل المفاتيح مخطط له في إصدار السلسلة v3.2.7)، ولم تكن دائرته التجريبية لتجتاز فحص الإثبات في السلسلة على أي حال. ابتداءً من 0.7.0 يتوقف القالب قبل الإرسال، فلا ينفق بعد الآن رسومًا على دفعة ترفضها السلسلة دائمًا. استخدم قالبًا بتسويةoptimisticإلى أن يتغير ذلك (راجع ZK وSTARK وعمليات السحب). - قالب
multivm-rollupيعتمد على شيء غير مفعَّل. precompile الاستدعاء بين الآلات الافتراضية على0x0000000000000000000000000000000000000901غير مفعَّل على أي من الشبكتين، لذا لا يفعل الاستدعاء من عقد شيئًا؛ ويتحقق القالب من ذلك وعقده مكتوب ليتراجع (revert) بدلًا من أن يفشل بصمت (راجع متعدد الأجهزة الافتراضية). - أوامر المعاملات في
qorollupتحتاج إلى مفتاح ما بعد الكم (0.7.1 وما بعده). تُوقّعcreateوpauseوresumeوstopوwithdrawتوقيعًا هجينًا (ML-DSA-87 + secp256k1) كما تتطلب الشبكتان، باستخدام مفتاح مُستخرج من--mnemonic/QORE_MNEMONICومطابَق مع السلسلة، أو--pqc-seed/QORE_PQC_SEED_HEXمع--key؛ وبدون ذلك يرفض الأمر الإرسال. في 0.7.0 وما قبله كانت هذه الأوامر توقّع توقيعًا كلاسيكيًا فقط وكانت الشبكتان ترفض كل واحدة منها؛ قم بالترقية، أو استخدم مشروعًا مولَّدًا (سكربتاته توقّع توقيعًا هجينًا)، أو RDK بلغة TypeScript معpqcKeypair، أو CLI السلسلة. أما القراءات وdoctorوparamsوreceiptو--dry-runفلم تكن تحتاج إلى مفتاح قط. لم يُختبر على شبكة حية: لا يوجد rollup. - بعض مساعدات
qorollupليس لديها ما تتحدث إليه بعد. طبعadviseمقابل الشبكة التجريبية في 27 أكتوبر "advisory unavailable" لأسطح الرسوم والشبكة والاحتيال ووكيل RL (ردّت العقدة بـ 501 أو "method does not exist") ولـ rollup غير موجود. وأعادsuggestملفًا تعريفيًا معsource: fallback، مما يدل على استخدام القائمة الافتراضية المضمّنة بدلًا من خدمة المساعد. اقرأ التحذيرات. rollup-appلا يبثّ إلا حين تطلب. يعمل كتجربة جافة افتراضيًا؛ ومعQORE_BROADCAST=1يسجّل مفتاح ML-DSA-87 للحساب مرة واحدة ويوقّع توقيعًا هجينًا. قيم rollup النموذجية فيه توضيحية: خذ أسماء الملفات التعريفية الحقيقية والرهان من الإعدادات المسبقة.fullstack-webيعرض خطأ على زر الاقتصاد الرمزي. تستدعي تلك اللوحة دالة JSON-RPC من نوعqor_لا تقدّمها نقاط النهاية العامة؛ أما البحث عن الرصيد فيعمل. استبدلها بقراءة REST مثلclient.rest.getBurnStats().evm-solidityيحتاج إلى أكثر من حساب ممول. إرسال معاملة EVM على QoreChain يحتاج أيضًا إلى مفتاح ML-DSA-87 مسجَّل ونافذة تفويض EVM مفتوحة، تُعدّ من مسار Native (راجع دليل EVM). لم يُشغَّل سكربتdeployالخاص بالقالب على شبكة حية من أجل هذه الصفحة.create-qorechain-dapp --versionيطبع0.5.1مع أن الحزمة المثبَّتة هي 0.10.0 (جرى التحقق في 27 أكتوبر 2026). اقرأ الإصدار منpackage.jsonأو من السجل.- ملفات README الخاصة بالحزم قديمة. يذكر README الخاص بـ
create-qorechain-dappقالبين وREADME الخاص بـcreate-qorechain-rollupخمسة؛ بينما يعرض--helpثلاثة وستة. ثق بـ--help. - الإصدارات قبل 0.6.2 لا تعمل من npm. طبع
qorollup0.6.1 وما قبله، مثبَّتًا عبر npm بأي طريقة، لا شيء وانتهى بالرمز 0، وطبع--versionالقيمة0.4.1. إذا اضطررت للبقاء على 0.6.1 فشغّلnode node_modules/@qorechain/rdk-cli/dist/index.js <command>؛ وإلا فقم بالترقية. - نسخ الاعتماديات (في 0.6.x فقط). يعتمد
@qorechain/rdk0.6.2 وما قبله على@qorechain/sdk^0.9.0، لذا فإن مشروعًا ثبّت أيضًا SDK 0.10.0 كان يحمل نسخة SDK 0.9.x ثانية متداخلة. ابتداءً من 0.7.0 تعتمد المجموعة على@qorechain/sdk^0.10.0وتشارك نسخة واحدة.