GH GambleHub

Düğümler arasındaki veri akışları

(Bölüm: Ekosistem ve Ağ)

1) Öz ve hedefler

Düğümler arasındaki veri akışları, ekosistem rolleri arasındaki olayların, durumların ve eserlerin yönetilen kanallarıdır (doğrulayıcılar/okuyucular/endeksleyiciler/köprüler/ağ geçitleri/depolar/analizler). Hedefler:
  • Öngörülebilirlik: Gecikme/başarı/tazelik ile kararlı SLO'lar.
  • Güvenilirlik: kayıplara, kopyalara, reorglara karşı direnç.
  • Güvenlik ve uyumluluk: şifreleme, imzalar, oturum izni.
  • Ölçeklenebilirlik: coğrafi dağıtım, bölümleme, QoS.

2) Akış taksonomisi

1. Kontrol Düzlemi: yapılandırmalar, phicheflags, yönlendirme/limit politikaları.
2. Veri Düzlemi - olay: etki alanı olayları ('deposit. ',' ödeme. ',' köprü. ').
3. Veri Düzlemi - akış: sinyaller ve canlı metrikler için uzun ömürlü akışlar (gRPC/WebSocket).
4. Batch/Backfill: geçmiş dilimlerin, tekrarların, anlık görüntülerin indirilmesi.
5. Çoğaltma/anti-entropi: durum senkronizasyonu, merclizasyon, CRDT akışları.
6. Telemetri/gözlemlenebilirlik: günlükleri/metrikleri/izleri yan bant, ana UX ile müdahale etmeyin.

Her türün QoS sınıfları ve kendi retray/sipariş kuralları vardır.

3) Topolojiler ve yönlendirme

Hub-and-Spoke: Lastik olarak bölgesel merkezler; Oynar - rol düğümleri.
Mesh/P2P: çoğaltma/dedikodu için kısmi ağ.
Kenar Katmanlı: ince kenar ağ geçitleri (hız sınırı/önbellek) - kalın bölgesel kümeler.
Geo-Routing: Anycast/Latency-Aware LB + ikamet kuralları.

Anahtar - bölümleme: 'partition _ key = chainId' kiracı 'konu' entityId 'öngörülebilir düzen ve ölçek verir.

4) Taşıma ve formatlar

HTTP/2/3, gRPC/QUIC - düşük gecikme, çoğullama, keepalive.
Kafka/Pulsar/NATS - sebat/partiler/tüketici grupları ile kuyruklar.
WebSocket - itme olayları ve canlı yayınlar.
Biçimler: Protobuf/Avro (evrimli şemalar), harici API'ler için JSON.
Bütünlük doğrulaması için hash adresleme ve Merkle makbuzları.

5) Sipariş, teslimat ve sonuçlandırma

Teslimat modeli:
  • En az bir kez (varsayılan; Idempotency/deadup gerekli).
  • Outbox/Inbox + idempotent tüketici ile tam bir kez etkisi.
  • Düzen: parti içinde garanti; Partiler arası düzen garanti değildir.
  • Sonlandırma: durumlar 'gözlemlendi - doğrulandı (K) - kesinleşti - geçersiz (reorg)'; iyimser için - anlaşmazlık penceresi.

6) Idempotence ve dedup

Olaylar için idempotence anahtarı:
  • 'bağımsızlık _ anahtarı = $ {chainId} | $ {block} | $ {tx} | $ {logIndex} | $ {type}'
Kurallar:
  • Upsert by key, veri tekilleştirme penceresinin TTL'si 72 saat ≥.
  • Bir çatışma için, yük "gerçeğin kaynağı" politikasıdır (öncelik, sürüm, imza).
  • HTTP istekleri için, başlık 'Idempotency-Key' + yanıt günlüğüdür.

7) Kuyruklar, geri dönüş ve kotalar

Kuyruklar: anahtarla partiler; "Zehirli" mesajlar için DLQ.
Backpressure: krediler/belirteçler, maksimum uçuş limiti, devre kesici.
Kotalar/QoS: P0 (kritik), P1 (ürün), P2 (toplu). Bölünmüş havuzlar/RPS limitleri/bayt/s/abonelikler.
Kabul kontrolü: "Pahalı" taleplerin erken reddi, aralık/boyuta göre koruma.

8) Tutarlılık ve veri modelleri

Parti/düğüm içinde oku-yaz.
Bölgeler/taraflar arasında Nihai Tutarlılık.
Bazı kümelerin (sayaçlar, kümeler) çatışmasız çoğaltılması için CRDT.
Anlık görüntüler + hızlı önyükleme ve deterministik yeniden oynatma için günlükler.

9) Güvenlik ve güven

Düğümler arasında mTLS, anahtar sabitleme, rotasyon.
Mesaj/webhook imzaları, zaman damgası ve yeniden oynatma karşıtı pencereler.
Hareket halindeyken/dinlenirken şifreleme; Bölgesel anahtarların ayrımı.
PII-minimization: tokenization, etiketlerde/metriklerde kişisel verilerin yasaklanması.

10) Verimlilik: paketleme, sıkıştırma, önbellek

Gruplama: Genel yükü azaltmak için küçük mesajların gruplandırılması.
Sıkıştırma: Güvenli sözlüklerle zstd/gzip.
Nakit: olumsuz cevaplar ve "sıcak" dizinler; TTL ve olayla maluliyet.

11) Veri diyagramları (referanslar)

Akış/lot kaydı

sql
CREATE TABLE streams (
name TEXT PRIMARY KEY,
partitions INT,
qos TEXT,        -- P0    P1    P2 retention_days INT,
schema_version TEXT
);

CREATE TABLE offsets (
stream TEXT, partition INT, consumer_group TEXT,
offset BIGINT, updated_at TIMESTAMPTZ,
PRIMARY KEY (stream, partition, consumer_group)
);

Olay günlüğü (idempotent uppert)

sql
CREATE TABLE events_core (
id UUID PRIMARY KEY,
idempotency_key TEXT UNIQUE,
ts TIMESTAMPTZ,
partition_key TEXT,
type TEXT,
payload JSONB,
status TEXT,      -- observed    confirmed    finalized    invalidated signature TEXT
);

DLQ/Karantina

sql
CREATE TABLE dlq (
id UUID PRIMARY KEY,
stream TEXT, partition INT, offset BIGINT,
reason TEXT, payload JSONB, ts TIMESTAMPTZ
);

12) Politikalar (YAML)

QoS ve Limitler

yaml qos:
P0: { ack_timeout_ms: 2000, retries: 3, backoff_ms: [100,400,800], rps_per_org: 1500 }
P1: { ack_timeout_ms: 5000, retries: 2, rps_per_org: 800 }
P2: { best_effort: true, rps_per_org: 200 }
limits:
max_message_bytes: 1048576 max_stream_subscriptions_per_client: 20

Sonlandırma ve pencereler

yaml finality:
eth-mainnet: { k: 12 }
polygon:   { k: 256 }
optimistic: { k: 0, challenge_minutes: 20 }

Yönlendirme/İkamet

yaml routing:
prefer_local_region: true fallback: [nearest_healthy, master_hub]
residency:
eu: ["eu"]
uk: ["uk"]

13) Gözlemlenebilirlik: SLI/SLO

SLI (çekirdek):
  • Gecikme süresi p95/p99 (giriş, çıkış, akış başına/QoS).
  • Başarı oranı/düşme oranı.
  • Queue Lag p95 ve taraflara göre tüketici gecikmesi.
  • Tazelik p95 (yutmak - tüketmek).
  • Reorg/Invalid Rate (eğer onchain ise).
  • Dedup Verimliliği (% alır idempotently emilir).
  • Geo-Hit Oranı (yerel olarak servis verilir).
SLO (yer işaretleri):
  • P0 gecikme süresi p95 ≤ 400 ms; Başarı ≥ 99. 95%; Kuyruk-lag p95 ≤ 2 с; Tazelik p95 ≤ 60 с.
  • Dedup verimliliği ≥ %99; DLQ ≤ 0. Trafiğin %1'i.

Panolar: Akışlar Çekirdek/Gecikme ve Tazelik/QoS ve Hatalar/Coğrafi/Güvenlik (mTLS/imzalar).

14) Tüketici kalıpları

Giden Kutusu/Gelen Kutusu: atomik yayınlama ve idempotent uygulama.
Tam olarak bir kez etkisi: Son uygulanan anahtarı ve sürümü saklayın.
Filigranlar: geç veriler.
Idempotent Yan Etkileri: Yalnızca anahtar ve yanıt günlüğü içeren harici sorgular.

15) Bozma modları

Sadece kesinleşmiş mod: Sadece kesinleşmiş olaylar yayınlıyoruz.
Sadece referans kitapları için önbellek, ağır yöntemleri dondurmak.
Akışlar için gaz P2 ve "diyet modu" (azaltılmış yenileme hızı).
İkincil API'ler için salt okunur.

16) Kesinti süresiz sürümler ve geçişler

Akışlar ve Tüketiciler tarafından Mavi-Yeşil/Kanarya.
Şema-ilk: yalnızca alan ekle; MAJOR - konuların paralel versiyonları.
Ofset geçişler: gölge tüketiciler, gecikme/başarı karşılaştırması, anahtarlama.

17) Çalışma Yönetmelikleri

Günlük: SLO raporu (gecikme/başarı/gecikme/tazelik), imza denetimi, DLQ kontrolü.
Haftalık: partilerin/kotaların gözden geçirilmesi, DR testi (anlık görüntüden önyükleme), Dedup Verimliliği analizi.
Aylık: kaos testleri (kayıp/jitter, broker hatası, reorg-burst), kesinlik pencerelerinin revizyonu.
Serbest bırakılmadan önce: kanarya ≥120 dakika, SLO kapıları, geri alma planı.

18) Playbook olayları

A. Kuyruk-Gecikme/Tüketici-Gecikme patlaması

1. Tüketicileri/KEDA'yı artırmak; 2) partilerin yeniden dağıtılması; 3) P2 ve toplu işleri dondurun; 4) "sıcak" anahtarların analizi.

B. p95 Gecikme P0 Büyüme

1. P2-throttle, P0 önceliklendirme; 2) ölçekli ağ geçitleri/brokerler; 3) sadece referans kitapları için önbellek; 4) aykırı-çıkarma.

C. yüksek DLQ/dublaj

1. Idempotence anahtarını kontrol edin/TTL; 2) dedup güçlendirmek; 3) gürültülü üreticiyi sınırlayın; 4) düzeltmeden sonra tekrar oynatın.

D. Drift şemaları/sözleşmeleri

1. Katı modu etkinleştir (geçersiz olanları kes); 2) Üreticiyi bilgilendirmek; 3) adaptörü serbest bırakın; 4) astarları güncelleyin.

E. İkamet/imza ihlali

1. İhracat/kanal birimi; 2) anahtarların/setlerin dönüşü; 3) denetim ve ölüm sonrası; 4) politikaları güncellemek.

19) Uygulama kontrol listesi

1. Akış türlerini ve bölümleme anahtarını tanımlayın.
2. K/anlaşmazlık pencereleri ile idempotence/dedup ve sonuçlandırmayı etkinleştirin.
3. Kuyrukları, QoS'u, kotaları ve geri çıkışı yapılandırın.
4. mTLS/İmzalar ve İkamet Politikası'nı çalıştırın.
5. Şemaları/kayıtları (akışlar, ofsetler, dlq) ve SLI/SLO telemetrisini girin.
6. Kanarya/mavi-yeşil ve kesintisiz devre geçişlerini organize edin.
7. Bozulma modları ve olay oyun kitapları üzerinde çalışın.

20) Sözlük

Geri baskı - giriş yük kontrolü (krediler/belirteçler/limitler).
DLQ - sorunlu mesajlar için "ölü kuyruk".
CRDT - koordinasyon olmadan çatışma çözümü olan veri yapıları.
Kesinlik - olayın/durumun geri döndürülemezliği.
Tam olarak bir kez etkisi - en az bir kez teslimat üzerinde tekrar güvenli sonuç.
Filigran - Geç olaylar için ilerleme işareti.
Outlier-ejection - havuzdan bozulmuş örneklerin dışlanması.

Alt satır: Düğümler arasındaki veri akışları sadece bir "kuyruk ve dinleyici'değil, sistemik bir düzen, sonuçlandırma, idempotency, güvenlik ve gözlemlenebilirlik disiplinidir. Standart bölümleme anahtarları, QoS/kotalar, katı şemalar ve SLO'lar, bozulma modları ve oyun kitaplarıyla birlikte, ekosisteme ölçek ve denetim altında istikrarlı veri iletim kanalları sağlar.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.