> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ar/canton-zk-evm/run-it-locally.md).

# شغّله محليًا

شغّل الفحوصات، والبروفة من دون GPU، والعرض المحلي لـ Ostia على GPU.

تُشغّل البرامج النصية المزوَّدة شبكة اختبار محلية. يحتفظ Canton بحالته في الذاكرة، لذا فإن كل إعادة تشغيل تُهمل تلك الحالة وتُنشئ شبكة جديدة. يثبت العرض التوضيحي الخاص بوحدة معالجة الرسوميات الكتل. يستخدم التمرين إثباتًا بديلًا ولا يحتاج إلى وحدة معالجة رسوميات.

تصف هذه الصفحة الالتزام `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. اقرأ ملف [دليل الشبكة](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/network/README.md) و [دليل العرض التوضيحي](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md). شغّل الأوامر أدناه من `canton-zk-evm` جذر المستودع.

## ما تحتاج إليه

| العمل                    | المتطلبات                                                                                                                               |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| فحوصات المستودع          | Docker، `bash`, `curl`, `jq`, `openssl` وPython 3. تستخدم اختبارات Rust `rust-toolchain.toml`.                                          |
| اختبارات تكامل Canton    | Linux x86-64 وJava 21 ووصول إلى الشبكة.                                                                                                 |
| تمرين العرض التوضيحي     | Linux x86-64 وDocker وJava 21 وRust وPython 3.12 أو أحدث.                                                                               |
| اختبارات المستعرض        | Node 22.18 أو أحدث.                                                                                                                     |
| شبكة GPU والعرض التوضيحي | Linux x86-64، ووحدة معالجة رسوميات NVIDIA مع تثبيت برنامج تشغيلها، وDocker، وRust، وPython 3.12 أو أحدث، `jq`, `curl`, `openssl` وZisK. |

الـ [ملف README الخاص بالمستودع](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/README.md#running-the-tests) يسرد متطلبات الاختبار. يستخدم مثبّت GPU `sudo` و `apt` على Debian أو Ubuntu ويحتاج إلى نحو 100 غيغابايت من مساحة القرص الحرة. يثبّت حزم النظام ويغيّر حدود قفل الذاكرة. يجلب أداة الشبكة Java 21 إذا كان غير موجود. انظر [مضيف المُثبت](/ar/canton-zk-evm/prover-host.md) للاطلاع على العتاد الذي تم اختباره؛ لم يتم تحديد الحد الأدنى لذاكرة GPU.

## شغّل الاختبارات

ابدأ بالفحوصات السريعة من [CONTRIBUTING.md](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/CONTRIBUTING.md#building-and-testing):

```sh
tests/static.sh                  # الأوتاد، والتسلسل الأوّلي، وأسطر الترخيص متوافقة
tests/refuses_missing_flag.sh    # عملية تشغيل reth ترفض علمًا مفقودًا أو خاطئًا
tests/fixtures.sh                # الإثبات المسجّل متّسق
gateway/build.sh --check         # كود البوابة المُلتزم به هو ما يُترجم إليه Gateway.sol (Docker)
```

يوفّر ملف README في المستودع هذه الفحوصات أيضًا. وهي لا تحتاج إلى GPU:

```sh
tests/udp_control.sh             # يفشل فحص UDP على حاوية تحتوي على مستمع UDP (من دون reth)
tests/discovery.sh               # يبدأ reth المثبّت، ويتحقق من أنه لا يملك نظراء، ثم يوقفه
tests/network_static.sh          # reth فقط عبر launch.sh، وتهيئة Canton، ونتيجة الدخان المسجّلة
tests/network_checks.sh          # فحص تثبيت المترجم، ومعرّف DAR، والإيقاف على برنامج VK آخر (من دون GPU)
tests/canton_network.sh          # Canton المثبّت، وحزمة Daml الحقيقية، وخطوة Advance واحدة (Linux x86-64 وJava 21 وPython 3؛ من دون GPU)
gateway/tests/run.sh             # البوابة على reth حقيقي، بدأت مع إيقاف اكتشاف الأقران (Docker وcurl وjq وPython 3 مع الحزم الموجودة في demo/requirements.txt)
tests/guest-repro.sh             # تشغيل بناء الضيف يتم في مجلد ثابت واحد، لذا لا يغيّر مجلد المصدر ملف ELF (بدائل لأدوات ZisK؛ اجتاز الفحص نفسه على ZisK الحقيقي في 2026-10-04، انظر guest/README.md)
tests/demo_static.sh             # أوتاد العرض التوضيحي، ومفتاح العبث والتجاوز في التسلسل الأوّلي، ونتائجه المسجّلة (من دون GPU)
tests/demo_explorer_static.sh    # صور المستعرض مثبتة، وما يُعطى لحاويته (من دون Docker)
(cd explorer && npm ci && npm test)  # اختبارات المستعرض، مقابل بدائل (Node 22.18+؛ تستخدم CI ‏EXPLORER_NODE_IMAGE في PINS)
(cd guest/rules && cargo test)   # قواعد السلسلة وتجزئتها (يحتاج إلى Rust)
```

## أجرِ التمرين من دون GPU

```sh
tests/demo_rehearsal.sh          # العرض التوضيحي والمستعرض مع إثبات بديل (Linux x86-64 وDocker وJava 21 وRust وPython 3.12+؛ من دون GPU)
```

يشغّل reth الحقيقي، وCanton، وحزمة Daml، والمعيار المرمّز، والبنّاء. يتحقق المكوّن الجانبي من أرجل البوابة مقابل براهين التخزين، بينما يجيب بديل عن `التحقق` استدعاء. لا يثبت التمرين كتلة ولا يتحقق من إثبات معرفي صفري حقيقي.

كما يتحقق أيضًا من المستعرض والنافورة. يجب أن يرفض فحص Verify في المستعرض الإثبات البديل. ال [ملف README للعرض التوضيحي](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md#the-rehearsal) يصف مدى تغطية التمرين.

## ابدأ الشبكة المحلية على GPU

ثبّت ZisK باستخدام `prover/install.sh` قبل بدء الشبكة. ابدأ reth دائمًا عبر المشغّل المزوَّد؛ `network/up.sh` يستخدمه.

```sh
network/up.sh       # الأدوات، وبناء الضيف، وreth، والمكوّنات الجانبية، والمُبرهن، وCanton، والسلسلة
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) network/smoke.sh    # كتلة فارغة واحدة، مُثبتة ومُلتزم بها
network/down.sh
```

`up.sh` يبني الضيف ويرفض مفتاح برنامج أو جذر ZisK أو تجزئة قواعد تختلف عن القيم المسجّلة. تحتوي الشبكة على مُزامِن واحد وثلاثة مشاركين. يشغّل المشاركان operator وconfirmer مكوّنًا جانبيًا لكل منهما. ويستضيف المشارك المسمى users أطراف الاختبار والقارئ.

يُثبّت اختبار الدخان كتلة فارغة، ويتحقق من رأس السلسلة وسجل الكتلة لدى القارئ، ويتحقق من أن reth جعلها نهائية. تُحفظ الحالة والسجلات في `state/`، أو `CZE_STATE_DIR` عندما تكون مضبوطة.

## شغّل الحالات الخمس للعرض التوضيحي على GPU

استخدم شبكة محلية جديدة للعرض التوضيحي:

```sh
demo/prepare.sh
CZE_GENESIS_FILE=$PWD/state/demo/genesis.json network/up.sh
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) network/smoke.sh      # اختياري: كتلة فارغة واحدة أولًا
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) demo/run.sh
network/down.sh
```

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

لتصدير من المصدر من دون `.git`, اضبط `CZE_SOURCE_COMMIT` على التجزئة الكاملة للالتزام المستخدم في التصدير. لتضمين النافورة، يجب إعداد تسلسلها الأوّلي المموّل قبل بدء الشبكة؛ انظر [المستكشف](/ar/canton-zk-evm/explorer.md) ودليل العرض التوضيحي الكامل.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ar/canton-zk-evm/run-it-locally.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
