> 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/rome-zk-evm/prover-host.md).

# مضيف المُثبِت

اضبط وحضّر مضيف GPU الذي يُثبت دفعات Rome ZK EVM باستخدام ZisK 1.3.1-alpha.

يمكن للعقدة ترتيب المعاملات ونشر الدُفعات دون الحاجة إلى GPU. وهي تحتاج إلى مُثبِت لإضفاء النهائية على أي جذر على سولانا. في الإصدار v0.3.0، يشغّل المُثبِت ZisK 1.3.1-alpha مع الضيف المبني لبادئة سلسلة الكتل الخاصة بك. وهو يثبت دفعات صندوق الوارد واحدة تلو الأخرى، ويتحقق من كل برهان محليًا، ثم ينشره إلى التسوية.

الـ [دليل المضيف الكامل للمُثبِت](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/PROVER-HOST.md) يحتوي على خطوات الإعداد والاسترداد. استخدمه مع [دليل تشغيل شبكة التطوير](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/RUN-ON-DEVNET.md).

## تحجيم المضيف

استخدم Ubuntu 22.04 أو أحدث بمعمارية x86-64 وبطاقة NVIDIA GPU واحدة مع أكثر من 30 GB من الذاكرة. تقبل سكربت الإعداد بطاقة GPU بسعة تقارب 32.2 GB أو أكثر. تطلب خطوة البرهان النهائية نحو 30 GB، لذا فإن بطاقة 24 GB صغيرة جدًا. يجب أن يكون تعريف NVIDIA 525.60.13 على الأقل.

اسمح بما لا يقل عن **128 GB من ذاكرة RAM** و **125 GB من مساحة القرص الحرة** في موقع تثبيت ZisK. كان أرشيف مفتاح البرهان 1.3.1-alpha بحجم 5.1 GB وأرشيف مفتاح PLONK بحجم 21.9 GB. بعد أن أنشأ الإعداد ملفاتِه الثابتة، بلغ حجما دليلَي المفاتيح 21 GiB و26 GiB. يضيف البرهان الأول ملفات ذاكرة التخزين المؤقت. سجّل مضيف CPU إجمالي 102.1 GB بعد برهان واحد، ولم يُقَس نمو ذاكرة التخزين المؤقت على GPU.

أفادت مكتبة البرهان 1.3.1-alpha بأنها استخدمت 24.7 GB في المخزن المؤقت الرئيسي للعمل و5.6 GB للعودية على دفعة تقارب 3 ملايين خطوة. ولم يُسجَّل الحد الأقصى لاستخدام العملية كاملةً في هذا الإصدار. استخدم تشغيل GPU على شبكة التطوير مضيفًا بذاكرة RAM سعتها 176 GB؛ ولم يُسجَّل أيضًا الحد الأقصى لاستخدام RAM لديه. استخدم 128 GB كتقدير للتحجيم، وليس كحد أقصى مقاس.

## ما الذي تم قياسه

استغرقت دفعة شبه فارغة نحو **17 ثانية**، بما في ذلك تغليف PLONK، على مضيف يضم واحدًا من **96 GB RTX PRO 6000**، و48 نواة CPU و176 GB من RAM. ظهر ما يقارب 95 GB من ذاكرة GPU قيد الاستخدام. هذا ما احتفظ به هذا التشغيل، وليس الحد الأدنى لذاكرة GPU لكل دفعة. لم تُقَس الدفعات الأكبر على GPU.

أكمل Rome عدد 116 من دفعات شبكة التطوير شبه الفارغة في نحو 35 دقيقة على تلك البطاقة. وهذا مهم عندما تكون السلسلة قد أنتجت كتلًا فارغة أثناء انتظار مفتاح التحقق: يجب على المُثبِت أن يعالجها بالترتيب قبل أن يتمكن من الوصول إلى الحالة الأحدث.

## شغّل سكربت الإعداد

ثبّت تعريف NVIDIA وأعد التشغيل إذا لزم الأمر. من جذر المستودع، شغّل سكربت الإصدار بصلاحيات root. اضبط `ZISK_HOME` على الدليل الذي سيقيم فيه ZisK ومفاتيحه. استخدم القيمة نفسها في إعداد الرول أب الخاص بك `.env`:

```sh
sudo ZISK_HOME=/opt/zisk bash deploy/rollup/prover/setup-prover-host.sh
sudo ZISK_HOME=/opt/zisk bash deploy/rollup/prover/setup-prover-host.sh --check
```

يثبّت السكربت بناء ZisK الخاص بـ GPU، ومفاتيح البرهان وPLONK الخاصة به، ومكتبات النظام التي يحتاجها، ووقت تشغيل NVIDIA الخاص بـ Docker. ويضبط حد الذاكرة المقفلة على غير محدود. سجّل الخروج ثم ادخل مرة أخرى حتى يسري هذا الحد على الصدفة الخاصة بك. ثم يتحقق من GPU والتعريف، والبرامج الثنائية المثبتة، والمفاتيح، وحد الذاكرة، ووقت تشغيل الحاوية.

قبل تشغيل المُثبّت، يتحقق من SHA-256 الخاص بالمُثبّت. ويتحقق من كلا أرشيفي المفاتيح قبل فك ضغط أيٍّ منهما، ويتحقق من `cargo-zisk` و `cargo-zisk-dev` البرامج الثنائية الخاصة بـ GPU قبل أن يشغّلها السكربت. وينشئ الملفات الثابتة اللازمة للتجميع وبرهان PLONK. إذا فشل تشغيل ما، فأعد تشغيل السكربت. ويتخطى تنزيل المفاتيح عندما تكون المفاتيح المثبتة متطابقة بالفعل مع البيان المثبت.

لا يتحقق السكربت من كل جزء من تثبيت ZisK. يقوم المُثبّت بجلب حزمة ثنائية ويشغّل مُثبّت سلسلة الأدوات الخاصة به قبل أن يتحقق السكربت من البرنامجين الثنائيين المثبتين لـ GPU. ولا تخضع البرامج التنفيذية الأخرى والملفات المصدرية في تلك الحزمة للتحقق من التجزئة بواسطة هذا السكربت. يذكر الدليل الكامل هذا القيد ويحتوي على الأوامر اللازمة للتحقق من كل تنزيل على حدة.

## وصّله بسلسلتك

يحتاج المُثبِت إلى ELF الخاص بالضيف المطابق، وبيانات التحقق الوصفية الخاصة به، ونفس مفاتيح البرهان 1.3.1-alpha. اضبط `PROVER=on` وإعدادات الضيف وZisK في إعدادات الرول أب، ثم شغّل `./rollup init` و `./rollup up`. يبني التشغيل الأول صورة المُثبِت من مصدر v0.3.0. صورة العقدة وحدها لا تحتوي على المُثبِت.

قبل كل بدء، يتحقق المُثبِت من مفاتيح البرهان المثبتة مقابل البيان المثبت SHA-256. يشمل ذلك أسماء الملفات ومحتوياتها. تُستثنى ملفات شجرة الثوابت التي تم إنشاؤها وملفات ثوابت GPU لأنها تختلف باختلاف المضيف. تؤدي أيّ مطابقة غير صحيحة إلى إيقاف المُثبِت مع `KeysShaMismatch`لا تغيّر البيان فقط لجعل تثبيت غير متطابق يبدأ؛ ثبّت الإصدار الذي يطابق ضيف السلسلة والمفتاح المسجّل.

شغّل `./rollup check` بعد البدء. يتحقق من خدمة المُثبِت، ومفتاح التحقق النشط، وتأخر التسوية والمُثبِت. وتعرض [دليل المراقبة](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/MONITORING.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/rome-zk-evm/prover-host.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.
