الخدمات
يعني تشغيل نسخة من القنوات الخاصة امتلاك خدمات Docker Compose التالية:
| الحاوية | الدور |
|---|---|
private-channel-postgres-primary | قاعدة بيانات حالة عقدة الكتابة (PostgreSQL 16) |
private-channel-postgres-replica | قاعدة بيانات حالة عقدة القراءة (نسخة متدفقة) |
private-channel-postgres-indexer | قاعدة بيانات المفهرس والمشغّل |
private-channel-write-node | يستقبل المعاملات وينفّذها (المنفذ 8900، حلقة الاسترداد فقط) |
private-channel-read-node | يعالج استعلامات القراءة عبر RPC (المنفذ 8901، حلقة الاسترداد فقط) |
private-channel-gateway | يوجّه الطلبات بين عقدتَي الكتابة والقراءة؛ يُطبّق RBAC (المنفذ 8899) |
private-channel-indexer-solana | يراقب سولانا بحثاً عن أحداث Deposit عبر Yellowstone gRPC |
private-channel-indexer-private-channel | يراقب القناة بحثاً عن أحداث Burn عبر استطلاع RPC |
private-channel-operator-solana | يصدر رموز القناة عند تأكيد الإيداعات |
private-channel-operator-private-channel | يستدعي ReleaseFunds على الشبكة الرئيسية عند تأكيد عمليات السحب |
private-channel-auth | خدمة JWT/RBAC اختيارية (ملف تعريف Docker: auth) |
حاويات المراقبة (prometheus، grafana، cadvisor) مضمّنة أيضاً.
البوابة
تحتوي هذه الإعدادات على قيم افتراضية مناسبة لإعداد Docker Compose على devnet. قم بتجاوزها فقط عند تشغيل البوابة خارج Docker أو النشر على بيئة الإنتاج.
| متغير البيئة | القيمة الافتراضية | مطلوب | الوصف |
|---|---|---|---|
GATEWAY_PORT | 8899 (devnet) | لا | منفذ الاستماع |
GATEWAY_WRITE_URL | http://write-node:8900 (قيمة ملف بيئة devnet؛ لا قيمة افتراضية ثنائية) | نعم | عنوان URL لعقدة الكتابة - يتم توجيه sendTransaction هنا |
GATEWAY_READ_URL | http://read-node:8901 (قيمة ملف بيئة devnet؛ لا قيمة افتراضية ثنائية) | نعم | عنوان URL لعقدة القراءة - يتم توجيه جميع طرق RPC الأخرى هنا |
GATEWAY_CORS_ALLOWED_ORIGIN | * | لا | قيمة رأس Access-Control-Allow-Origin |
JWT_SECRET | - | لا | يُفعّل RBAC؛ يجب أن يتطابق مع JWT_SECRET الخاص بخدمة المصادقة |
AUTH_DATABASE_URL | - | إذا تم تعيين JWT_SECRET | قاعدة بيانات المصادقة للتحقق من ملكية المحفظة |
AUTH_DATABASE_MAX_CONNECTIONS | 10 | لا | حجم مجموعة اتصالات قاعدة بيانات المصادقة |
METRICS_PORT | 9101 | لا | منفذ مقاييس Prometheus |
RUST_LOG | info | لا | مستوى السجل |
GATEWAY_WRITE_URLوGATEWAY_READ_URLيستخدمان أسماء مضيفي خدمة Docker Compose (write-node،read-node) عند التشغيل داخل Docker. استخدم مكافئاتlocalhostفقط عند تشغيل الملف الثنائي للبوابة مباشرةً خارج Docker.القيمة الافتراضية المضمّنة في الملف الثنائي للبوابة لـ
GATEWAY_PORTهي8898. يضبط كلٌّ من.env.exampleو.env.devnetالقيمة على8899، وهي ما يستخدمه إعداد Docker Compose فعلياً (versions.envيحتوي فقط على إصدارات سلسلة الأدوات والصور، وليس منافذ الخدمات). تنطبق القيمة الافتراضية8898فقط عند تشغيل الملف الثنائي مباشرةً دون ملف بيئة.
القيمة الافتراضية لـGATEWAY_CORS_ALLOWED_ORIGIN هي *، مما يسمح لأي مصدر بالاتصال
بالبوابة من المتصفح. قيّد هذا بالمصدر الفعلي لتطبيقك
قبل أي نشر على بيئة الإنتاج.
عقدة الكتابة وعقدة القراءة
يتوفر مرجع إعدادات عقدة الكتابة وعقدة القراءة الكامل في
docs/CONFIG.md
داخل المستودع.
خدمة المصادقة
| متغير البيئة | مطلوب | الوصف |
|---|---|---|
JWT_SECRET | نعم | مفتاح التوقيع HS256؛ يجب أن يتطابق مع JWT_SECRET الخاص بالبوابة |
AUTH_PORT | لا (الافتراضي 8903) | منفذ الاستماع |
AUTH_DATABASE_URL | نعم | سلسلة اتصال PostgreSQL لقاعدة بيانات المصادقة |
CORS_ALLOWED_ORIGIN | لا (الافتراضي *) | قيمة رأس Access-Control-Allow-Origin لهذه الخدمة (مستقلة عن GATEWAY_CORS_ALLOWED_ORIGIN الخاصة بالبوابة) |
AUTH_DATABASE_MAX_CONNECTIONS | لا (الافتراضي 10) | حجم مجموعة اتصالات قاعدة بيانات المصادقة |
مرجع منافذ الخدمات
| الخدمة | منفذ المضيف | الربط |
|---|---|---|
| البوابة | 8899 | جميع الواجهات |
| عقدة الكتابة | 8900 | حلقة الاسترداد فقط |
| عقدة القراءة | 8901 | حلقة الاسترداد فقط |
| المدفق | 8902 | داخلي فقط (expose، غير منشور للمضيف)؛ ليس جزءاً من حزمة devnet |
| خدمة المصادقة | 8903 | جميع الواجهات |
| مقاييس المشغّل | 9102, 9103 | جميع الواجهات |
| Grafana | 37429 | جميع الواجهات |
| Prometheus | 9090 | جميع الواجهات |
| cAdvisor | 8080 | جميع الواجهات |
ملاحظة أمنية: منافذ عقدة الكتابة وعقدة القراءة مرتبطة بحلقة الاسترداد (
127.0.0.1) فقط. البوابة وخدمة المصادقة ومقاييس المشغّل وGrafana وPrometheus وcAdvisor كلها منشورة على كل واجهات الشبكة في إعداد Docker Compose على devnet. قم بتأمينها بجدار حماية على مستوى المضيف أو الشبكة لأي بيئة تتجاوز التطوير المحلي؛ يغطي RBAC فقط طرق JSON-RPC الخاصة بالبوابة، وليس هذه الخدمات الأخرى. المدفق هو الاستثناء: فهو تغذية داخلية غير مصادَق عليها لا ينشرها Docker للمضيف أبداً.
متطلبات الشبكة
راجع
docs/TECHNICAL_REQUIREMENTS.md
في المستودع للاطلاع على قواعد جدار الحماية ومتطلبات النطاق الترددي.
Is this page helpful?