كيفية تشغيل Zebra على Akash Network
دليل خطوة بخطوة لنشر عقدة Zebra كاملة لـ Zcash باستخدام Akash Console.
ما الذي ستقوم بنشره
عقدة Zebra كاملة ستقوم بما يلي:
-> مزامنة سلسلة كتل Zcash بالكامل (أكثر من 100GB للشبكة الرئيسية، وحوالي 40GB للشبكة التجريبية)
-> تكلفة تقارب $15/شهريًا اعتمادًا على أسعار توكن AKT
-> تستغرق من عدة ساعات إلى عدة أيام لإتمام المزامنة بالكامل
-> تستخدم 4 vCPUs و16GB RAM و350GB تخزين (للشبكة الرئيسية) أو 2 vCPUs و8GB RAM و50GB (للشبكة التجريبية)
مهم: ربط المنافذ على Akash
عندما تقوم بكشف منفذ على Akash (على سبيل المثال، المنفذ 8233 لـ Zebra P2P)، فإنه لا يتم ربطه بذلك المنفذ نفسه على عنوان IP العام الخاص بالمزوّد. بدلًا من ذلك، يعيّن المزوّد منفذًا عشوائيًا مرتفعًا (مثل 31234 أو 42567) ويستخدم reverse-proxy لتوجيهه إلى المنفذ 8233 في الحاوية الخاصة بك.
هذا جزء من التصميم - إذ يقوم المزوّدون بتشغيل عدة عمليات نشر، وستحدث تعارضات إذا حاول الجميع استخدام المنفذ 8233 مباشرةً.
ما الذي يعنيه هذا بالنسبة لك:
-> تقوم بإعداد المنفذ 8233 في SDL (منفذ P2P القياسي لـ Zebra)
-> يمنحك Akash عنوان URI مثل provider.com:31234
-> تتصل بك عقد Zcash الأخرى عبر provider.com:31234
-> داخل الحاوية الخاصة بك، يستمر Zebra في الاستماع على 8233
يتم التعامل مع هذا تلقائيًا. فقط استخدم عنوان URI الذي يمنحك إياه Akash.
المتطلبات المسبقة
- تثبيت إضافة المتصفح Keplr Wallet (Chrome/Brave/Firefox)
- توكنات AKT - احصل على 50-100 AKT من منصة تداول (Coinbase, Kraken, Osmosis)
- 5 دقائق للنقر عبر واجهة Console
الخطوة 1: ربط محفظتك
-> انتقل إلى https://console.akash.network
-> انقر على "Connect Wallet" في أعلى اليمين
-> اختر Keplr (أو محفظة Cosmos المفضلة لديك)
-> وافق على الاتصال عندما تظهر نافذة Keplr المنبثقة
يجب أن يظهر رصيد AKT الخاص بك في أعلى اليمين. إذا كان صفرًا، قم بتمويل محفظتك أولًا.
الخطوة 2: إنشاء عملية نشر
-> انقر على زر "Deploy" (الزر الأزرق الكبير، وسط الصفحة)
-> اختر "Build your template" (أو انتقل مباشرةً إلى رفع SDL)
الخيار A: رفع ملف SDL (موصى به)

الخيار B: استخدام محرر SDL
إذا كنت تريد لصق SDL يدويًا:
-> انسخ محتويات zebra-akash.yml
-> الصقها في محرر SDL
-> عدّل حسب الحاجة (انظر قسم الإعدادات أدناه)
-> انقر على "Create Deployment"
الخطوة 3: مراجعة واعتماد الإيداع
سيعرض لك Console ما يلي:
-> إيداع النشر: حوالي 5 AKT (ستستعيده عند إغلاق عملية النشر)
-> التكلفة التقديرية: بناءً على تسعير SDL الخاص بك
انقر على "Approve" ووقّع المعاملة في Keplr.
الخطوة 4: اختيار مزوّد
بعد حوالي 30 ثانية، سترى عروضًا من المزوّدين. يعرض كل عرض ما يلي:
-> السعر لكل block (بـ AKT أو USDC)
-> التكلفة الشهرية التقديرية
-> تفاصيل المزوّد (مدة التشغيل، المنطقة، إلخ)
لا تختر الأرخص فقط. تحقّق من:
-> نسبة مدة التشغيل % (استهدف > 95%)
-> المنطقة (الأقرب إليك = زمن استجابة أفضل، لكن ذلك لا يهم كثيرًا لعقد البلوكشين)
-> حالة التدقيق (علامة صح خضراء = أكثر موثوقية)
انقر على "Accept Bid" لدى المزوّد الذي اخترته ووقّع في Keplr.
الخطوة 5: انتظار اكتمال النشر
سيقوم Console بما يلي:
-> إنشاء عقد الإيجار مع المزوّد الذي اخترته
-> إرسال manifest (يخبر المزوّد بما يجب تشغيله)
-> تشغيل الحاوية الخاصة بك
يستغرق هذا 1-2 دقيقة. سترى تحديثات الحالة في واجهة المستخدم.
الخطوة 6: التحقق من أنه يعمل
بمجرد اكتمال النشر، سترى:
-> تبويب Services: يعرض خدمة zebra الخاصة بك مع الحالة
-> تبويب Logs: سجلات الحاوية المباشرة
-> تبويب Leases: تفاصيل حول عملية النشر الخاصة بك (DSEQ، المزوّد، التكلفة)
تحقّق من السجلات
انقر على Logs ويجب أن ترى Zebra وهو يبدأ التشغيل:
Code-highlight
Loading config from environment variables
Mainnet network selected
Listening for peer connections on [::]:8233
Starting initial sync...
ستستغرق المزامنة من ساعات إلى أيام حسب الشبكة. راقب ما يلي:
-> ارتفاع block heights
-> اتصالات الأقران (يُفترض أن تكون 10-30 نظيرًا)
-> عدم وجود أخطاء متكررة
الخطوة 7: احصل على عنوان عقدتك
انقر على تبويب Leases، ثم URIs.
سترى شيئًا مثل:
Code-highlight
zebra-8233: provider-hostname.com:31234
هذا هو نقطة النهاية العامة لـ P2P الخاصة بعقدتك. ستتصل بك عقد Zcash الأخرى عبر هذا العنوان.
لاحظ ربط المنفذ: لقد قمت بإعداد المنفذ 8233 في SDL، لكن Akash عيّنه إلى منفذ عام مختلف (31234 في هذا المثال). هذا طبيعي - راجع قسم "ربط المنافذ على Akash" في الأعلى إذا كان هذا يربكك. يمكن الوصول إلى عقدتك عبر أي منفذ يعرضه Akash هنا، وليس بالضرورة 8233.
إذا قمت بتمكين RPC (وهو معطّل افتراضيًا ومعلّق في SDL)، فسترى أيضًا نقطة نهاية RPC هنا مع المنفذ المعيّن الخاص بها.
خيارات الإعداد
التبديل إلى الشبكة التجريبية
يفترض SDL افتراضيًا استخدام الشبكة الرئيسية. لاستخدام الشبكة التجريبية بدلًا من ذلك:
-> قم بتعليق إعداد الشبكة الرئيسية في قسم env:
Code-highlight
# - "ZEBRA_NETWORK__NETWORK=Mainnet"
# - "ZEBRA_NETWORK__LISTEN_ADDR=[::]:8233"
-> أزل التعليق عن إعداد الشبكة التجريبية:
Code-highlight
- "ZEBRA_NETWORK__NETWORK=Testnet"
- "ZEBRA_NETWORK__LISTEN_ADDR=[::]:18233"
-> حدّث المنفذ المكشوف في قسم expose:
Code-highlight
# Comment out Mainnet port:
# - port: 8233
# as: 8233
# to:
# - global: true
# proto: tcp
# Uncomment Testnet port:
- port: 18233
as: 18233
to:
- global: true
proto: tcp
-> اختياري: قلّل الموارد للشبكة التجريبية في profiles.compute.zebra.resources:
Code-highlight
cpu:
units: 2 # Down from 4
memory:
size: 8Gi # Down from 16Gi
storage:
- size: 50Gi # Down from 150Gi
-> اختياري: خفّض التسعير في profiles.placement.akash.pricing:
Code-highlight
amount: 5000 # Down from 10000
تمكين وصول RPC
يكون RPC معطّلًا افتراضيًا لأسباب أمنية. لتمكينه:
للشبكة الرئيسية:
-> أزل التعليق في قسم env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:8232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> أزل التعليق عن منفذ RPC الخاص بالشبكة الرئيسية في expose:
Code-highlight
- port: 8232
as: 8232
to:
- global: false # Keep internal for security
proto: tcp
للشبكة التجريبية:
-> أزل التعليق في قسم env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:18232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> أزل التعليق عن منفذ RPC الخاص بالشبكة التجريبية في expose:
Code-highlight
- port: 18232
as: 18232
to:
- global: false
proto: tcp
تحذير: إذا قمت بتعيين global: true لـ RPC، فأنت تكشفه للإنترنت. يستخدم Zebra مصادقة ملفات تعريف الارتباط افتراضيًا، لكن مع ذلك - لا تفعل هذا إلا إذا كنت تعرف ما الذي تقوم به.
تذكير بربط المنافذ: حتى إذا كشفت RPC عالميًا، سيقوم Akash بربطه بمنفذ عشوائي مرتفع (وليس 8232/18232). تحقّق من عناوين URI في عملية النشر الخاصة بك لمعرفة نقطة النهاية العامة الفعلية. بالنسبة إلى global: false (موصى به)، لا يمكن الوصول إلى نقطة نهاية RPC إلا داخل شبكة نشر Akash، وليس من الإنترنت العام.
تمكين المقاييس (Prometheus)
لسحب المقاييس لأغراض المراقبة:
-> أزل التعليق في env:
Code-highlight
- "ZEBRA_METRICS__ENDPOINT_ADDR=0.0.0.0:9999"
-> أزل التعليق عن منفذ المقاييس في expose:
Code-highlight
- port: 9999
as: 9999
to:
- global: false
proto: tcp
ضبط الموارد/التسعير
إذا كنت لا تحصل على عروض أو تريد تحسين التكلفة:
بالنسبة إلى المزوّدين ذوي المواصفات المنخفضة، قلّل في قسم profiles.compute.zebra.resources:
-> CPU: units: 2 (الحد الأدنى لسرعة مزامنة معقولة)
-> Memory: size: 12Gi (الحد الأدنى للاستقرار)
-> Storage: size: 120Gi (الحد الأدنى للشبكة الرئيسية)
لجذب المزيد من العروض، قم بالزيادة في profiles.placement.akash.pricing:
-> الشبكة الرئيسية: جرّب amount: 1000000 uakt/block
-> الشبكة التجريبية: جرّب amount: 1000000 uakt/block
تحديث عملية النشر الخاصة بك
هل تحتاج إلى تغيير الإعدادات بعد النشر؟
-> انتقل إلى My Deployments في Console
-> ابحث عن عملية نشر Zebra الخاصة بك
-> انقر على "Update Deployment"
-> عدّل SDL
-> انقر على "Update" ووافق في Keplr
ملاحظة: سيؤدي التحديث إلى إعادة تشغيل الحاوية الخاصة بك. ستستأنف العقدة من حالتها المحفوظة (التخزين الدائم)، لكن توقّع توقّفًا لمدة 1-2 دقيقة.
المراقبة
عبر Console
-> تبويب Logs: سجلات الحاوية المباشرة
-> تبويب Shell: احصل على shell داخل الحاوية (مفيد لتصحيح الأخطاء)
-> تبويب Events: أحداث Kubernetes (عديمة الفائدة غالبًا ما لم يكن هناك خلل)
عبر RPC (إذا كان مفعّلًا)
إذا قمت بتمكين RPC، يمكنك الاستعلام عن عقدتك كعقدة zebrad كاملة عادية (لأنها كذلك بالفعل!)
إغلاق عملية النشر الخاصة بك
عندما تنتهي أو ترغب في التوقف عن الدفع:
-> انتقل إلى My Deployments
-> ابحث عن عملية نشر Zebra الخاصة بك
-> انقر على "Close Deployment"
-> أكّد ووقّع في Keplr
سيتم رد إيداعك البالغ 5 AKT. يجب أن يحتفظ المزوّد بـ التخزين الدائم، لكن لا تعتمد على ذلك - تعامل معه كما تتعامل مع أي مزوّد سحابي آخر.
استكشاف الأخطاء وإصلاحها
خطأ "Insufficient funds"
أنت بحاجة إلى المزيد من AKT. قم بتمويل محفظة Keplr الخاصة بك.
عدم ظهور أي عروض
أحد الاحتمالات التالية:
-> التسعير الخاص بك منخفض جدًا (قم بزيادة amount في SDL)
-> متطلبات الموارد الخاصة بك مرتفعة جدًا بالنسبة إلى المزوّدين المتاحين (قلّل CPU/الذاكرة/التخزين)
-> انتظر مدة أطول (أحيانًا يستغرق ظهور العروض 60-90 ثانية)
عملية النشر عالقة في "pending"
قد يكون المزوّد يواجه مشكلات. أغلق عملية النشر وجرّب مزوّدًا آخر.
تُظهر سجلات Zebra "No peers connected"
هذا طبيعي خلال الدقائق الأولى. سيكتشف Zebra الأقران تلقائيًا. إذا استمر الأمر بعد أكثر من 10 دقائق، فقد تكون لديك مشكلة في الشبكة (وهو أمر غير مرجّح على Akash).
أخطاء "Out of memory" في السجلات
لقد قلّلت الإنفاق على RAM أكثر من اللازم. أغلق عملية النشر وأعد نشرها بذاكرة لا تقل عن 12Gi (ويوصى بـ 16Gi).
المزامنة تستغرق وقتًا طويلًا جدًا
عرّف "وقتًا طويلًا جدًا":
-> ساعات: طبيعي
-> أيام: طبيعي أيضًا للشبكة الرئيسية عند البدء من الصفر
-> أسابيع: هناك مشكلة ما، تحقّق من السجلات بحثًا عن أخطاء
إدارة التكلفة
راقب إنفاقك في Console:
-> My Deployments -> عملية النشر الخاصة بك -> يعرض تقدير "Cost per month"
-> سينخفض رصيد محفظة Keplr الخاصة بك مع مرور الوقت
عندما ينخفض رصيدك كثيرًا، سيقوم Akash بإغلاق عملية النشر تلقائيًا. قم بتعبئة محفظتك بشكل دوري أو أعد إعداد التنبيهات.
خفض التكاليف
-> استخدم الشبكة التجريبية للاختبارات غير الإنتاجية (أرخص بنسبة 50%)
-> قلّل CPU/الذاكرة إذا لم تكن بحاجة إلى مزامنة سريعة
-> اختر مزوّدين أرخص (ليس دائمًا خيارًا حكيمًا - مدة التشغيل مهمة)
الشبكة الرئيسية مقابل الشبكة التجريبية
Code-highlight
----------------------------------------------------------------------------------
| | Mainnet (default) | Testnet |
---------------------------------------------------------------------------------|
| Purpose | Production Zcash blockchain | Testing and development |
| Network | ZEBRA_NETWORK__NETWORK=Mainnet | ZEBRA_NETWORK__NETWORK=Testnet |
| P2P Port | 8233 | 18233 |
| RPC Port | 8232 | 18232 |
| Sync time | Days | Hours |
| Storage | 350GB+ | 50GB |
| Resources | 4 CPU / 16GB RAM | 2 CPU / 8GB RAM |
| Cost | ~$15/month | ~$5/month |
----------------------------------------------------------------------------------
ابدأ بالشبكة التجريبية إذا كنت تختبر فقط عملية النشر. راجع قسم "التبديل إلى الشبكة التجريبية" أعلاه لمعرفة الإعدادات.
موارد إضافية
Akash Console: https://console.akash.network
وثائق Akash: https://akash.network/docs/
وثائق Zebra: https://zebra.zfnd.org/
مستكشفات Zcash: https://zechub.wiki/guides/blockchain-explorers
Akash Discord: https://discord.akash.network (لمشكلات المزوّد)