GH GambleHub

توسع عقد الشبكة

(القسم: النظام الإيكولوجي والشبكة)

1) أدوار العقدة وحلقات المرور

المصادقة/الإنتاج (توافق الآراء/الكتلة/المتسلسل): مسار حاسم للانتهاء.
القارئ/الفهرس (قراءة فقط/واجهة برمجة التطبيقات/الأرشيف): يخدم طلبات التطبيقات والتحليلات.
الترحيل/الجسر (عبر المجال): نقل الرسائل/الأصول بين المجالات.
البوابة/الحافة (الدخول/gRPC/WebSocket/QUIC): تلقي طلبات العملاء، حد السعر، ذاكرة التخزين المؤقت.
القياس عن بعد/إمكانية الرصد: جمع المقاييس/السجلات/الآثار، العينات الاصطناعية.

كل دور له SLO الخاص به وميزانية الخطأ وسياسة التوسع.

2) نماذج التحجيم

2. 1 زيادة الحجم

زيادة وحدة المعالجة المركزية/إدارة السجلات والمحفوظات/إدارة التنمية المستدامة/مركز التحقيقات الوطني. سريع للقمم، ولكنه محدود بالحديد ويمكن أن يزيد التكلفة لكل وحدة مرور.

2. 2 مقياس

إضافة نسخ طبق الأصل خلف الموازين/قوائم الانتظار. يتطلب الغباء والسياسات اللزجة والنصاب القانوني والمخابئ المتسقة (أو إعاقتهم).

2. 3 التنوع الوظيفي

الفصل بين الواجبات: يتم عزل عقد توافق الآراء ؛ RPC/API - بشكل منفصل ؛ الفهرس/المحفوظات - بشكل منفصل ؛ الجسر/المرسل - بشكل منفصل.

2. 4 مقياس جغرافي

المجموعات الإقليمية (EU/US/AP) + anycast/GeoDNS/Latency Aware LB ؛ التكرار مع وضع الصيغة النهائية/زمن الانتهاء والمخابئ المحلية

2. 5 الشحن/التقسيم

الفصل حسب المفاتيح (chainId، shard، their) لقوائم الانتظار/الفهارس ومخازن الأعمدة.

3) مسار الطلب: الموازنة، التخزين المؤقت، QoS

التوازن L4/L7: الفحوصات الصحية، اللزجة بالرمز المميز/التعقب، قاطع الدائرة، الطرد الخارجي.

المخابئ:
  • على حافة الهاوية (TTL قصيرة للقراءة المتكررة RPCs) ؛
  • داخل المعالج (قراءة، كتابة الفهارس) ؛
  • المخابئ السلبية (غير موجودة).
  • فئات QoS: P0 (الانتهاء/الجسر/المدفوعات)، P1 (المنتج)، P2 (السائب/الأرشيف).
  • الضغط الخلفي: الرموز/الاعتمادات، تقييد طلبات الموافقة، قوائم الانتظار مع DLQ.
  • القبول: المرشح المسبق (auth، الحدود، geo/العقوبات)، الرفض المبكر للطلبات «باهظة الثمن».

4) إدارة الحالة: لقطات، تقليم، أرشيف

Full/Pruned: عقد مقلمة لـ RPC ؛ أرشيف - للاستفسارات بأثر رجعي في تجمع منفصل.
لقطات/مزامنة سريعة: لقطات منتظمة، تمهيد سريع للنسخ المتماثلة الجديدة.
تخزين ساخن/دافئ/بارد: حالة ساخنة على NVMe، كتل تاريخية - S3/object مع مؤشرات.
Garbadge-collect/compaction: النوافذ المجدولة، وليس أثناء القمم.
DA/Batch puffers (for L2/bridges): ضمانات التسليم وفترة التنظيف مع إيصالات إثبات.

5) قوائم الانتظار والبث

الدخول: Kafka/Pulsar/NATS с مفتاح التقسيم = 'chainId' shard' topic'.
مجموعات المستهلكين: التوسع حسب الأطراف، المعالج الخفي (outbox/inbox).
DLQ و retrai: تراجع أسي، حجر صحي للرسائل السامة.
الأمر المتفق عليه: داخل الطرف من أجل الحتمية.

6) تحسين النقل والشبكات

QUIC/HTTP/2: تعدد الإرسال، تصحيح رأس السطر.
ضبط TCP: BBR/CUBIC، زيادة المخازن الاحتياطية، "SO _ REUSEPORt'.
Kernel/eBPF: مكدس شبكة متسارع، تجزئة ثابتة للتوازن.
تفريغ NIC и تثبيت IRQ к NUMA.
gRPC: بارامترات الحفظ/البينغ، قيود الحد الأقصى للطيران.
WebSocket: مجموعات الاتصال، ping/pong، الحد من الاشتراكات لكل عميل.

7) الموثوقية: النصاب القانوني، التدهور، اختبارات الفوضى

اقرأ/اكتب النصاب (إذا كان ذلك ممكنًا)، سياج القائد.
أوضاع التحلل: بسهولة، «الانتهاء فقط»، إيقاف تشغيل الطرق الثقيلة.
هندسة الفوضى: التأخير/الخسائر، إعادة التشغيل، فشل القرص/الشبكة، سيناريوهات «إعادة الربط عالية السرعة».

8) SLI/SLO والأهداف

SLI (مثال):
  • p95 RPC latency by method class;
  • معدل النجاح ؛ Leue-lag p95;
  • p95 (للسكك الحديدية/الجسور) ؛
  • وقت التقاط الأحذية ؛
  • نمو/يوم الدولة ؛ تشبع وحدة المعالجة المركزية/IO.
SLO (معالم):
  • P0 RPC p95 ≤ 400 ms ؛ توافر ≥ 99. 95%;
  • التتابع النهائي p95 ≤ 3 دقائق ؛
  • P0 p95 ≤ 2 с;
  • Bootstrap قارئ جديد ≤ 30 мин (سريع المزامنة + لقطة) ؛
  • حرق ميزانية الخطأ على نافذة ساعتين ≤ 2 ×.

9) إمكانية الملاحظة والتنبيه

المقاييس: الكمون (مخطط النسيج)، RPS، الأخطاء (حسب الفصل)، تأخر الانتظار، GC/كومة، قرص io، p2p الأقران، معدل النميمة.
الآثار: «تتبع - هوية» من طرف إلى طرف خلال edge→RPC→indeksator→khraneniye→most.
جذوع الأشجار: هيكل، ارتباط بـ 'طلب _ معرف'.
التنبيهات: معدل الحرق P0، تأخر الانتظار، عدد الأقران أقل من العتبة، إعادة الارتفاع، لقطة انجراف.

10) أنماط القياس الذاتي

HPA/VPA (K8s): по CPU/latency/RPS/queue-lag ؛ KEDA بطول التوبياري.
قياس الخطوات: بيانات عن الذروة النهارية ؛ التنبؤ بواسطة ML/الموسمية.
قطع الغيار الدافئة: نسخ طبق الأصل للإحماء بدون حركة مرور (ترويج رشيق).
الطرح الآمن: كناري + طرد خارجي + SLO- гейты.

11) السلامة والعزلة

MTLS/تثبيت المفاتيح ؛ RBAC/ABAC لكل طريقة ؛ حدود QoS لكل org/مستأجر.
حد السعر ودرع DoS: الرموز، الكابتشا للعربات الصغيرة العامة، الكشف عن الشذوذ.
الإدارة السرية: رموز قصيرة العمر، تناوب.
صناديق الرمل: بول منفصلة للأرشيف/العملاء العامون.

12) التشكيلات المرجعية

12. 1 K8s: بوابة RPC (مقياس)

yaml apiVersion: apps/v1 kind: Deployment metadata: { name: rpc-gateway }
spec:
replicas: 6 strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 2, maxUnavailable: 0 } }
selector: { matchLabels: { app: rpc-gateway } }
template:
metadata: { labels: { app: rpc-gateway, qos: P0 } }
spec:
containers:
- name: gateway image: org/rpc-gateway:2. 4. 1 ports: [{ containerPort: 443 }]
resources:
requests: { cpu: "1", memory: "2Gi" }
limits:  { cpu: "4", memory: "6Gi" }
env:
- { name: MAX_CONCURRENCY, value: "400" }
- { name: CACHE_TTL_MS, value: "200" }
readinessProbe: { httpGet: { path: /healthz, port: 443 }, initialDelaySeconds: 5, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /livez, port: 443 }, initialDelaySeconds: 10, periodSeconds: 10 }
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: rpc-gateway-hpa }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: rpc-gateway }
minReplicas: 6 maxReplicas: 36 metrics:
- type: Pods pods:
metric:
name: request_latency_p95_ms target:
type: AverageValue averageValue: 350m  # 350 мс

12. 2 مبعوث: تحديد الأولويات والطرد من الخارج

yaml clusters:
- name: readers type: EDS lb_policy: LEAST_REQUEST outlier_detection:
consecutive_5xx: 5 interval: 2s base_ejection_time: 30s circuit_breakers:
thresholds:
- priority: DEFAULT max_connections: 20000 max_pending_requests: 5000 max_requests: 20000 health_checks:
- timeout: 1s interval: 3s http_health_check: { path: /healthz }
route_config:
request_headers_to_add:
- header: { key: x-trace-id, value: "%REQ(X-TRACE-ID)%" }
weighted_clusters:
clusters:
- name: readers weight: 100

12. 3 كافكا: التقسيم حسب المجال

yaml topic: "rpc. events"
partitions: 48 replicationFactor: 3 config:
retention. ms:  604800000 # 7 days max. message. bytes: 1048576 min. insync. replicas: 2 cleanup. policy: delete

12. 4 سياسة QoS والحدود

yaml qos:
P0:
rps_limit_per_org: 1500 queue_lag_p95_ms: 2000 retry: { attempts: 3, backoff_ms: [100,400,800] }
P1:
rps_limit_per_org: 800
P2:
rps_limit_per_org: 200 admissions:
denylist_methods: ["eth_getLogs(>10k blocks)"]
heavy_query_guard: { max_range_blocks: 5000, require_token: true }

13) مخططات البيانات واستفسارات العينات

13. 1 مقاييس العقدة (دليل)

sql
CREATE TABLE node_metrics (
ts TIMESTAMPTZ,
node_id TEXT, role TEXT, region TEXT,
rps INT, latency_p95_ms INT, errors_5xx INT,
queue_lag_ms INT, cpu NUMERIC, mem NUMERIC, io_wait NUMERIC
);

13. 2 معدل التحكم في SLO والحرق

sql
SELECT date_trunc('hour', ts) AS h, role,
AVG(latency_p95_ms) AS p95,
100. 0 SUM(CASE WHEN latency_p95_ms <= 400 THEN 1 ELSE 0 END)/COUNT() AS slo_hit_pct
FROM node_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY 1,2;

13. 3 تخطيط الأحمال

sql
SELECT region, role,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY rps) AS rps_p95,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY queue_lag_ms) AS lag_p95
FROM node_metrics
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY region, role;

14) لوائح التشغيل

يوميًا: تقرير SLO، دلتا السعة، حالة اللقطات، صحة الأقران.
أسبوعيًا: مراجعة الحدود/QoS، اختبار DR (bootstrap من لقطة)، فحص التقليم والضغط.
قبل الإصدار: طرح الكناري، بوابات SLO والمقاييس الملاحظة، خطة التراجع.
محاسبة التكاليف: CTS لكل 1 ألف طلب، TPS_per_$ (الكفاءة لكل دولار).

15) حوادث قواعد اللعبة

ألف - انفجار زمن الانتقال RPC p95

1. تمكين P2-throttle وأخذ عينات أقل ؛ 2) زيادة نسخ البوابة/القارئ ؛

2. نقل بعض حركة المرور إلى المخبأ فقط. 4) فتح تحليل الأساليب الساخنة، إذا لزم الأمر - رفض القواعد.

باء - تأخر الانتظار في الحافلة> SLO

1. المستهلكون التلقائيون (KEDA)، 2) إعادة توزيع الحفلات، 3) إيقاف الوظائف بالجملة مؤقتًا.

جيم - انخفاض عدد الأقران عند التحقق/التتابع

1. إعادة تشغيل وحدات p2p، 2) تغيير المقاعد، 3) التحقق من شبكة ACL/NAT، 4) حماية التبديل.

دال - نسخة طبق الأصل جديدة طويلة الأمد

1. التحول إلى لقطة جديدة، 2) رفع عرض نطاق IO، 3) إزالة فهارس الأرشيف مؤقتًا.

هاء - إعادة تنظيم/تأخير الجسر

1. توسيع K-chargements/window، 2) تمكين وضع «الانتهاء فقط»، 3) إعلام المستهلكين.

16) قائمة التنفيذ المرجعية

1. تحديد أدوار الموقع وميزانيات مكاتب الإحالة/الأخطاء.
2. للاضطلاع بالمهام التالية: توافق الآراء/RPC/indexer/archive/bridge/edge.
3. مكّن التوازن، QoS، والضغط الخلفي، واصطف مع DLQ.
4. قم بإعداد لقطات/مزامنة سريعة، تقليم وترتيب.
5. قم بتوصيل المقاييس/المسارات/السجلات ولوحات القيادة وتنبيهات معدل الحرق.
6. إعداد القياس الذاتي (HPA/KEDA) وإطلاقات الكناري.
7. إجراء اختبارات الفوضى وتمارين DR المنتظمة.
8. إدخال أنظمة التشغيل ومراقبة التكاليف.

17) مسرد

الضغط الخلفي - آليات للتحكم في تدفق المدخلات أثناء الحمل الزائد.
DLQ - «قائمة انتظار ميتة» لرسائل المشكلة.
التقليم - احذف الحالة التاريخية خارج النافذة الحالية.
Fast-sync/Snapshot هي طريقة متسارعة لمزامنة نسخة طبق الأصل جديدة.
الطرد الخارجي - استبعاد الحالات المتدهورة من المسبح.
معدل الحرق - معدل استهلاك الميزانية عن طريق الخطأ مقارنة بمعدل استهلاك الميزانية.

خلاصة القول: إن توسيع نطاق عقد الشبكة ليس فقط «إضافة نسخ طبق الأصل»، ولكن نظام الهندسة المعمارية، و QoS، وإدارة الدولة، والصرامة التشغيلية. من خلال اتباع هذا الإطار (فصل الأدوار، وقوائم الانتظار، والمخابئ، والقابلية للمراقبة، ومسؤوليات SLO الواضحة)، يكتسب النظام البيئي أداءً يمكن التنبؤ به، وذروة المرونة، والتكلفة القابلة للتحكم لكل وحدة مرور.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.