كورنوكوبياس
EnglishEnglish

إعداد خادم التجمع (Pool Server Setup)

مهارات مفيدة

تشغيل خادم التجمع يتطلب معرفة تقنية متقدمة. فيما يلي بعض المهارات التي قد تحتاجها لتشغيل خادم تجمع بنجاح:

  • فهم عام لـ Docker ( https://docker.com )
  • تشغيل الأوامر عبر سطر الأوامر (Windows أو Linux).
  • فهم أساسيات الشبكات والجدران النارية وإعدادات أجهزة التوجيه (الراوتر) على الإنترنت.
  • قراءة سجلات الأحداث (Logs) للمساعدة في استكشاف الأخطاء وإصلاحها.

قبل البدء

قبل بدء عملية الإعداد قد ترغب في التأكد من أن شبكتك تدعم تحويل المنافذ (Port Forwarding) بشكلٍ مباشر. للقيام بذلك، ابدأ بإيجاد IP العام الخاص بك. أغلب محركات البحث - مثل Google - تعرضه عند البحث عن "What is my IP?".

بعدها افتح موجّه الأوامر (cmd على Windows)، واكتب الأمر tracert X.X.X.X مع استبدال X ب IP العام الخاص بك. سيعرض Trace Route (أو tracert) عدد "القفزات" (hops) من موقعك إلى IP آخر. إذا ظهرت قفزة واحدة فقط فهذا يعني غالبًا أن تحويل المنافذ متاح. إذا رأيت أكثر من قفزة، تواصل مع مزود خدمة الإنترنت (ISP) قبل المتابعة.

مثال:

tracert [your_ip_address]

النتيجة المتوقعة:

1 <1 ms <1 ms <1 ms 199-119-153-199-119-153-27.cpe.sparklight.net [199.118.152.28]

(الأرقام لا تهم، المهم أن تظهر سطرًا واحدًا فقط)


إنشاء إعدادات خادم التجمع

إذا كان اللاعب مالكًا لعُقدة (Node)، فسيظهر له في الواجهة قسم لإدارة خوادم التجمع. انقر على رابط إدارة خوادم التجمع، ثم اضغط “Create Pool Server”.

أدخل اسم التجمع. يُفضّل أن يكون الاسم موجزًا وواصفًا للتجمع - خصوصًا إذا كنت ستشغّل عدة خوادم تجمع وربما خوادم عامة أيضًا.

بعد إنشاء خادم التجمع ستظهر لك مفتاح وصول سري (Secret Access Key). سيُستخدم هذا المفتاح عند تشغيل خادم التجمع، وهو ما يمكّن البرمجية من معرفة إعداداتها وإرسال بيانات الأداء لعُقدك بما يؤثر على المكافآت. احفظ هذا المفتاح في مكان آمن.


تحديث مفتاح الوصول لخادم التجمع

يجب الحفاظ على سرّية مفتاح الوصول، ولكن إن اشتبهت - لأي سبب - بأنه قد تسرّب، انتقل إلى قسم إدارة خوادم التجمع في حسابك. اعرض تفاصيل خادم التجمع المعني، ثم انقر زر تحديث مفتاح الوصول. سيُعرض المفتاح مرّة واحدة فقط. نوصي فورًا باستبدال المفتاح في ملف الإعدادات docker-compose.yml لأن المفتاح القديم سيتوقف عن العمل. بعد التحديث، أعد تشغيل الحاوية بالأمر:

docker compose up -d

تفويض عقدة الملفات

آخر خطوة عند إنشاء خادم التجمع هي تفويض عُقدة له. يمكن تشغيل خادم تجمع بلا عقدة، لكن لن يُخصَّص أي عمل له إن لم تُفوَّض إليه عقدة واحدة على الأقل.

للتفويض انتقل إلى قسم Node في حساب اللاعب، واختر عقدة غير مُفوَّضة. اضغط زر delegate node. عند ظهور نافذة الحوار، ستتمكن من اختيار التجمعات المتاحة. اختر التجمع واضغط OK.


تثبيت Docker

تم اختيار Docker لتوزيع تقنية خادم التجمع للأسباب التالية:

  1. العزل (Isolation): يعمل Docker بحاويات تمنع تطبيقات النظام من التأثير على الحاوية وبالعكس.
  2. سهولة الإعداد: معظم الإعدادات تُضمَّن أثناء بناء الصورة (Image). لتشغيلها، يكفي تحديد عدد قليل من المتغيّرات.
  3. تعدد المنصات: Docker يعمل على Windows وLinux وMac، وكذلك على الكثير من أجهزة NAS والسيرفرات السحابية. ملاحظة: Cornucopias لن تختبر كل منصة. التزم بـ Windows وLinux لأفضل دعم. يُمكنك تشغيل الصور ببيئات أخرى على مسؤوليتك مع مراقبة الأداء.

Windows

أفضل طريقة على Windows هي Docker Desktop. نزّل وثبّت من الرابط:

https://www.docker.com/products/docker-desktop/

كما يدعم Docker Desktop أنظمة Mac وLinux المكتبية - اتبع تعليمات المنصة المناسبة.

Linux

قد يكون تشغيل Docker على Linux أعقد قليلًا. يمكنك استخدام Docker Desktop على توزيعات سطح المكتب، لكن هنا سنركّز على تثبيت Docker Engine عبر سطر الأوامر (نهج الخادم). راجع توثيق Docker لأحدث خطوات التثبيت:

https://docs.docker.com/engine/install/

بعد اكتمال التثبيت، يفترض أن يُظهر الأمر التالي عدم وجود حاويات قيد التشغيل:

docker ps

إنشاء وصول عام

إتاحة الوصول العام لخادم التجمع هي غالبًا أصعب خطوة. احذر لأنك قد تفتح شبكتك الداخلية للإنترنت العام. نفّذ ذلك على مسؤوليتك. ولا تقم إلا بتمرير المنافذ المطلوبة فقط إلى مضيفك الداخلي - إعادة توجيه كل حركة الإنترنت إلى مضيف داخلي غير مُستحسنة.

  • أولًا حدّد رقم المنفذ العام. إذا كنت خلف NAT (كالمنزل)، فعليك تهيئة تحويل منفذ 8001/tcp في الراوتر.
  • وجّه هذا المنفذ إلى IP الداخلي الذي يعمل عليه خادم التجمع وعلى نفس المنفذ 8001/tcp.
    • مثال: تحويل 8001/tcp في الراوتر إلى 192.168.1.22:8001/tcp.
  • قد يتغيّر IP الداخلي تلقائيًا في بعض الشبكات، لذا من الأفضل ضبط ** IP ثابت** للمضيف الداخلي.

قد تختلف عناوين IP والمنافذ حسب الإعدادات، ويجب أن يستطيع خادم التجمع التكيّف مع تكوينات متعددة.

إذا شغّلت الخادم على AWS، فقم بضبط Security Group للسماح باتصالات tcp على المنفذ 8001/tcp.

بعض الفيديوهات المفيدة لإعداد Port Forwarding:


اختيار مساحة التخزين المؤقت

اختر موقعًا على جهازك لتخزين ملفات الـ Cache. اعتبارات مفيدة:

  1. أي قرص يملك مساحة كافية؟ قد تحتاج إلى 100 جيجا عند بدء المشروع بالتوسّع.
  2. سرعة القرص مهمة. أقراص NVMe أسرع بكثير من الأقراص الميكانيكية. قد تختار قرصًا ميكانيكيًا لسعة أكبر، لكن التحقق من سلامة ملفات الكاش سيستغرق أطول. (هناك تحسينات مخططة ستخفف هذا الأثر مستقبلًا).

بعد اختيار مجلد الكاش يمكنك بدء تشغيل الحاوية.


تشغيل الحاوية

هناك طرق متعددة لإدارة الحاوية: أمر طويل عبر الطرفية، أو عبر تطبيق سطح المكتب. الأوامر الطويلة عرضة للأخطاء، وإنشاء الحاوية من التطبيق مرهق أيضًا. لذلك يُعد Docker Compose الخيار الأفضل لتحديد طريقة تشغيل الحاوية. بعض المصطلحات:

  • Docker Image: صورة تحتوي البرنامج والاعتمادات (Dependencies).
  • Docker Container: مثالٌ قيد التشغيل من الصورة، يحمل حالة منفصلة. لتحديثه لصورة أحدث تحتاج عادةً إلى إعادة إنشائه.
  • YAML: ملف تكوين Docker Compose باسم docker-compose.yml.

قبل التشغيل، ألقِ نظرة على المتغيرات التي ستحتاج لتحديثها في ملف التكوين.


المتغيّرات البيئية

المتغيّر القيمة الوصف
FILENODES_POOL_API_URL https://filenodes.api.conucopiasweb.io غير مُستحسن تعديله: اسم المضيف الذي تُستقبل عبره التعليمات. قد يتغيّر عند الانتقال من بيئة Staging إلى Production.
FILENODES_POOL_ACCESS_KEY مفتاح فريد لكل خادم تجمع مفتاحه الخاص للمصادقة والتخويل للمشاركة.
FILENODES_POOL_PUBLIC_PORT 8001 المنفذ العام لوصول العملاء إلى ملفات الكاش.
FILENODES_POOL_PUBLIC_HOST None غير مُستحسن تعديله: استخدمه فقط إذا تعذّر على خدمة filenodes تحديد IP بشكل صحيح.
FILENODES_POOL_PUBLIC_PATH cache غير مُستحسن تعديله: لتغيير المسار الأساسي لروابط الوصول إلى ملفات الكاش.

تهيئة Docker Compose

فيما يلي مثال لملف Docker Compose. أنشئ مجلدًا على جهازك بمساحة حرة كافية (100-250 جيجابايت)، ثم أنشئ ملف docker-compose.yml. انسخ القالب وحدّث مفتاح الوصول و الوصول العام ومسار الكاش بعناية، ثم احفظ الملف وانتقل للتشغيل.


الإعداد خطوة بخطوة

  1. أنشئ مجلد العمل - مثلًا: D:\CornPoolServer.
    1. افتح مستكشف الملفات في المكان المرغوب.
    2. انقر يمينًا واختر New → Folder.
    3. سمِّ المجلد واضغط Enter.
    4. ادخل إلى المجلد الجديد.
  2. أنشئ داخله مجلدًا للكاش - مثلًا: D:\CornPoolServer\cache
    1. انقر يمينًا واختر New → Folder.
    2. سمِّ المجلد (cache) واضغط Enter.
    3. لا تدخل هذا المجلد في الخطوة التالية؛ لاحقًا ستتمكن من مشاهدة ملفات الكاش تتكوّن بداخله.
  3. باستخدام محرر نصوص (أو Notepad) أنشئ ملف docker-compose.yml داخل مجلد العمل - مثال: D:\CornPoolServer\docker-compose.yml. ملاحظة: في Notepad استخدم “Save As…” واختر “All Files” وتأكد من أن الامتداد .yml.
  4. انسخ قالب Docker Compose أدناه داخل الملف. تنبيه: المسافات البادئة (Indentation) مهمة.
  5. هل تريد للحاوية أن تعيد التشغيل دائمًا؟ للاختبار أو الإدارة اليدوية غيّر قيمة restart إلى no.
  6. حدّث مفتاح الوصول بلصق المفتاح الذي حصلت عليه.
  7. تأكد من أن المنفذ العام يطابق إعداد تحويل المنفذ في الراوتر.
  8. اضبط مسار الكاش بربطه بمسار النظام المحلي - مثال: D:\CornPoolServer\Cache:/cache.

مثال docker-compose.yml مع تهيئة الكاش لمسار محدد

name: cornucopias
services:
  pool-server:
    image: public.ecr.aws/cornucopias/nodes/pool-server:latest
    ports:
      - "8001:8001"
    restart: unless-stopped # إذا أردت تشغيله يدويًا استبدل “unless-stopped” بـ “no”
    environment:
      FILENODES_POOL_ACCESS_KEY: <PASTE ACCESS KEY HERE>
      FILENODES_POOL_PUBLIC_PORT: 8001
    volumes:
      - D:\CornPoolServer\Cache:/cache

تشغيل Docker

تشغيل Docker سهل. لا تدع سطر الأوامر يُربكك - وإن احتجت المساعدة، لا تتردد.
  1. افتح PowerShell أو cmd.
Open PowerShell or cmd
فتح PowerShell أو CMD
  1. انتقل إلى مجلد العمل.
Change to working folder
الانتقال إلى مجلد العمل
  1. شغّل خادم التجمع بالأمر:
Start pool server
تشغيل خادم التجمع عبر Docker Compose
docker compose up -d