WinUpGo
Aramak
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
Cryptocurrency casino Crypto Casino Torrent Gear, çok amaçlı torrent aramanızdır! Torrent Dişli

Denge ve cüzdanlar: çoklu cüzdan mimarisi

1) Neden çoklu cüzdan ve hangi hedefler

Bir "denge = sayı" girişi iGaming'in gerçekliğini kapsamaz. Ayrı cüzdanlara/alt hesaplara ihtiyaç vardır: gerçek para (nakit), bonus fonları, bahis havuzu, freespins, bilgisayar puanları, bazen para cüzdanları (EUR/USD/BRL).

Mimarinin hedefleri şunlardır:
  • Para doğruluğu (çift giriş, denetlenebilirlik).
  • Silme politikaları (örneğin, önce bonus/vager, sonra nakit).
  • Hız (p95 API ≤ 250-400 ms, gerçek zamanlı bahis/yerleşim).
  • Güvenlik ve uyumluluk (KYC/AML, sorumlu oyun limitleri, düzenleyiciler).
  • Ölçek: Zirveler - on binlerce işlem/saniye, milyarlarca gönderi/ay.

2) Veri modeli: "Ledger + Subwallets"

Minimal varlıklar

Hesap: oyuncu/marka/pazar.

Cüzdan: '{tip: CASHBONUSBAHISFSPUANLAR, para birimi, durum} '.
LedgerEntry (двойная запись): 'debit _ account', 'credit _ account', 'amount', 'currency', 'operation _ id', 'category', 'created _ at'.
Gönderme: atomik iş operasyonu, 2 + LedgerEntry'yi birleştirir.
Hold/Reservation: Bahis/para çekme için fonların geçici olarak bloke edilmesi.
Politika: yazma/kredi önceliği kuralları.
FXRate: kurs/hassasiyet/yuvarlama kuralları.
Limit: Gün/ay/sorumlu oyun.

Tablo örneği (basitleştirilmiş)

sql
- Çift giriş için bilanço hesapları (işletme dahil)
Hesaplar (id, owner_user_id, tür, para birimi, durum,...)

- Gönderme (çift giriş, ticari işleme referans)
ledger_entries (id, posting_id, debit_account_id, credit_account_id, amount_minor, para birimi, kategori, operation_id, created_at)

- Tutar (rezervler)
(id, account_id, amount_minor, para birimi, sebep, expires_at, devlet, operation_id, created_at)

- Silme politikaları (öncelikler)
spend_policies (id, market, wallet_priority jsonb, updated_at)

- Çapraz döviz kurları fx_rates (ccy_from, ccy_to, oran, hassasiyet, valid_from)

Kural: Gerçek, işlem günlüğünde ('ledger _ entries') yaşar. Mevcut denge ya bir agregadır (materyalize anlık görüntü) ya da bir dergiden hesaplanır (pahalı, ancak yalnızca doğru).


3) Cüzdan türleri ve davranışları

ÇantaCurÜst üste gelebilirYazılabilirÖzel kurallar
NAKITGerçek paraPSP/manuel tahakkuklar/iadelerTeklifler, satın almalar, para çekme işlemleriAML/KYC'yi etkiler; İşlemler kaydedilir
BONUSBonus paraPromosyon/KampanyalarOranlar (kurallara göre)Doğrudan görüntülenmez, vager çalıştırıldığında Cash'e dönüştürülür
BAHIS"Dondurulmuş" bonusların muhasebeleştirilmesiBahis bonusundan otomatikOyun sağlayıcısı lehine yazılarYerleştir/İptal Et Yayın Kuralı
FS (FreeSpins)Döndürme paketleriKampanyalarYuvalarda geri ödemeNakit eşdeğeri T&C'de sabittir
PUANSadakat/compsAktiviteMağaza/durumlarPara değil; AML raporlarına dahil değildir

4) Silme politikaları ve öncelik sırası

Fonların kaynağı için algoritmayı açıkça resmileştirin: Örnek (slotlar/casinolar):

1. İlk olarak, WAGER'dan yazın (eğer bahis aktifse).

2. Sonra BONUS'tan tükenene kadar.

3. Geri kalanı ise nakittir.

Örnek (spor):

1. İlk CASH (regülatör/vergi).

2. Sonra BONUS (freebet), WAGER'a çevirerek.

"Politika kararını" Gönderilerde bir özellik olarak kaydedin, böylece destek ve denetim "neden yazdıklarını" görür.


5) Para ve işlemlerin yaşam döngüsü

Depozito

1. 'POST/cüzdan/depozito' - bekleyen bir giriş oluşturun (PSP sosisinin gelen kutusu).

2. Webhook PSP (HMAC imzası, 'operation _ id'ile idempotency) - kredi NAKIT, kategori =' MEVDUAT '.

3. 'wallet _ updated' olayını yayınlıyoruz.

Oranı

1. 'POST/bet/place' - kaynak hesapta bir bekletme (rezerv) oluşturun (CASH/BONUS/WAGER).

2. Oranı onaylarken, bekletmenin transferi - borç kaynağı, sağlayıcının hizmet "yerleşim" hesabının kredisi -.

3. İptal üzerine - serbest bırakma bekletme.

Yerleşim (sonuç)

Kazanç: Sağlayıcının "uzlaştırma" hesabının borçlandırılması - kredi CASH veya poliçe WAGER - BONUS - CASH.

Kayıp: Sağlayıcının "masrafını" oyuncuya kredi vermeden bir işlemle kapatın.

1. KYC/AML kontrolü, sorumlu oyun limitleri.

2. Para çekme miktarını tutun.

3. PSP'nin başarısı - son borç CASH - kredi hesabı "ödeme".

4. PSP - serbest bırakma bekletmesi başarısız oldu.


6) Idempotence ve tam olarak bir kez "anlam içinde"

Her yerde 'operation _ id' (UUID/geliştirilmiş ULID) benzersiz bir dizin ile. Yeniden talep - geçmiş işlemin durumu.

PSP/oyun sağlayıcısı webhooks: 'Event _ id + signature'ile tekilleştirilmiş gelen kutusu tablosu. İşleme - idempotent işçi (Outbox desen).

İstemci için HTTP üzerinde Idempotency-Key; 24-72 saat ≥ TTL'yi saklayın.


7) Rezervler ve tutarlar

Hold bir silme işlemi değil, mevcut bakiyenin "dondurulması'dır.

Kurallar:
  • Tutma ömrü: saniyeler - dakikalar (oran) veya saatler (çıkış).
  • Tutma kısmen veya tamamen söndürülebilir (kısmi yerleşme).
  • Süresi dolduğunda - otomatik sürüm ve olay.
  • 'Hold _ id' ↔ 'bet _ id/withdraw _ id' ilişkisini koruyun.

8) Para birimleri, FX ve yuvarlama

Parasal miktarlar - küçük birimler (sent), tip - tam sayı.

Banka yuvarlama (yarım ila çift yuvarlak) veya T&C tarafından

FX: 'CASH (EUR)' ↔ 'CASH (USD)' cüzdanları bölmek daha iyidir. Ayrı bir işlem olarak dönüştürme:
  • 'Borç EUR, kredi FX_EURUSD' ve' borç FX_EURUSD, kredi USD '- denetim için şeffaf.
  • Bir anlaşmazlıkta kursa otomatik olarak "ulaşmak" yasaktır; Tüm kurallar FX politikasındadır.

9) Sorumlu oyun ve limitler

Depozito/Bahis/Kayıp/Oturum limitleri (gün/hafta/ay), soğuma, kendini dışlama.

Bekletme/borçlandırmadan önce ön kontrol olarak uygulanır.

Arıza günlükleri - ayrı bir denetim günlüğünde, destek ve düzenleyici tarafından kullanılabilir.


10) Cüzdan etrafında dolandırıcılık karşıtı sinyaller

Cihaz kümeleri/ASN'ler, sık sık küçük para yatırma - büyük para çekme, yıkama modelleri.

BIN/ülke/cihaz tarafından 'depozito/içinde' hız sınırları.

Alıcılar için blok listeleri (cüzdanlar/IBAN), "katırlar" listesi.

Cüzdan olayları - puanlama özelliği mağazasında (giriş/para yatırma/oran).


11) Tutarlılık ve performans

True vs önbellek

Gerçek defterde yazılı. "Get balance" API'si için, gerçekleştirilmiş anlık görüntüyü saklayın ('user _ id + wallet _ type _ balance_minor, version').

Yazma: veritabanındaki bir işlem önbelleği geçersiz kılar.

"Ağır" akışta (canlı), para çekme/büyük bahis uygun olmadan önce kısa-TTL 1-5 s + zorunlu doğruluk kontrolü.

Haşlama

'User _ id' (modül/sıralama) ile sharding, CASH vs BONUS için ayrı shard havuzları.

Kısayol tuşları (VIP/botlar) - 'user _ id'tarafından birleştirme isteğinde bulunun.

Eşzamansız toplamalar (arka planda 'gönderme' - "anlık görüntü güncellemesi" oluşturun).


12) API sözleşmeleri (pseudo)

Denge

http
GET/v1/cüzdanlar? Türleri = NAKIT, BONUS
200 {"cüzdan": [
{"type ": "CASH ", "currency ": "EUR ", "available": 12050," hold": 500," version": 1942}, {"type ": "BONUS ", "currency ": "EUR ", "available": 3000," wager _ req": 15000}
]}

Bahis (bekletme ile)

http
POST/v1/bahisler/yer
{"bet _ id":'b _ 123 "," amount ": 500," currency ":" EUR "," source _ policy ":" casino _ default "," idempotency_key":"ik_abc"}
^ 201 {"status": "HELD", "hold _ id":'h _ 789 "," expires _ in ": 30}

Yerleşim

http
POST/v1/bets/settle
{"bet _ id":'b _ 123 "," result ":" WIN "," payout ": 1250}
^ 200 {"status ": "SETTLED "," cash _ delta": + 1250}
http
POST/v1/para çekme
{"puld _ id":'w _ 456 "," amount ": 10000," currency ":" EUR "," method ":" sepa "," idempotency_key":"ik_def"}
^ 202 {"durum ": "BEKLEMEDE ", "next _ check _ sec ": 2, "durum _ url": "/v1/para çekme/w _ 456"}

13) İlanların örnekleri (çift giriş)

Depozito €100 (PSP ücreti €1, commis. hesap - ayrı)


Borç: PSP_Settlements (EUR) 10000
Kredi: Kullanıcı. NAKIT (EUR) 10000

Debit: Kullanıcı. NAKIT (EUR) 100 (ücret değişimi)
Kredi: PSP_Fees (EUR) 100

BONUS'tan 5 € bahis yapın (WAGER'a transfer)


Debit: Kullanıcı. BONUS (EUR) 500
Kredi: Kullanıcı. BAHIS (EUR) 500 (bahise geçin)
Debit: Kullanıcı. BAHIS (EUR) 500
Kredi: Sağlayıcı. Yerleşim (EUR) 500 (oran kapalı yazılı)

12 € kazanın. 5- NAKIT OLARAK


Debit: Sağlayıcı. Uzlaşma (EUR) 1250
Kredi: Kullanıcı. NAKIT (EUR) 1250

Silme işlemini gerçekleştirme (HOLD servis hesabı aracılığıyla gerçekleştirme)


Debit: Kullanıcı. NAKIT (EUR) 500
Kredi: Kullanıcı. HOLD (EUR) 500 (hold tarafından oluşturulan)
-- anlaşmada
Debit: Kullanıcı. HOLD (EUR) 500
Kredi: Sağlayıcı. Uzlaşma (EUR) 500
-- iptal üzerine
Debit: Kullanıcı. HOLD (EUR) 500
Kredi: Kullanıcı. NAKIT (EUR) 500

14) Denetim, değişmezlik ve uyumluluk

WORM/log için bağışıklık (nesne depolama/WAL arşivi).

Meta-günlüklere erişin: sınırları okuyan/değiştiren, manuel ayarlamalar yapan (yalnızca gerekçe ile "ayarlama-gönderme" yoluyla).

GDPR/düzenleyiciler: 5-10 yıl boyunca işlemlerin saklanması (yargı yetkisine göre), oyuncu için yerleşimlerin şeffaflığı (silme/bahis tarihi).


15) Hata toleransı ve DR

Multi-AZ zorunlu; Cüzdan için DR-bölgesi: bölgedeki çoğaltmayı senkronize edin, async - bölgeye; PITR etkinleştirilmiştir.

Bekleme durumunu destekleyin - yalnızca kontrol listesiyle manuel olarak (split-brain hariç).

Haftalık kontrolü geri yükle (test-geri yükleme), kontrol raporlarının miktarının mutabakatı.


16) Cüzdan gözlemlenebilirliği

SLI: 'deposit _ succcess _ ratio', 'withdraw _ success _ ratio', 'bet _ hold _ latency _ p95', 'settlement _ latency _ p95'.

Тех: 'ledger _ postings _ rate', 'db _ connections _ saturation', 'queue _ lag _ seconds', 'hold _ expired _ rate'.

Uyarılar: Piyasadaki PSP başarı düşüşü, 'hold _ expired _ rate' büyümesi, oyun sağlayıcısı senkronize değil (onay yok> N dk).


17) Test ve kalite kontrol

PSP/oyun sağlayıcıları ile sözleşme testleri (web kitapları/imzalar).

Mülke dayalı para testleri: borçların toplamı = = her Gönderimdeki kredilerin toplamı.

Fuzz/kaos: PSP/sağlayıcı gecikmeleri, webhook tekrarları, ağ flappies.

Load: seri bahisler (60-120 s), soaks (4-8 h), 'queue _ lag' kontrolü ve p99.


18) Üretime hazırlık kontrol listesi

  • Çift defter girişi, 'operation _ id'ile Gönderme yoluyla yapılan tüm işlemler.
  • Açık harcama politikaları ve öncelik sırası (gönderme ile devam eder).
  • TTL/kısmi yerleşme/sona erme, bahis/çekilme ile iletişim ile tutar.
  • Gelen Kutusu/Giden Kutusu, HMAC webhooks, tüm sınırlarda idempotency.
  • Bireysel CASH/BONUS/WAGER/FS/POINTS cüzdanları; para birimlerine bölünür.
  • FX ve küçük yuvarlama; Dönüşüm - ayrı bir işlem.
  • Tutmak/borçlandırmak için sorumlu oyun sınırları; Denetim hatası.
  • Önbelleği oku (kısa TTL) + kritik eylemlerden önce gerekli doğruluk kontrolü.
  • PITR/yedeklemeler/DR komut dosyaları; Manuel teşvik, düzenli DR egzersizleri.
  • Panolar/uyarılar SLI + teknik; WORM kayıtları ve erişim kayıtları.
  • Yük/kaos testleri; PSP/sağlayıcıları ile mutabakat raporları.

Özgeçmiş Özeti

Çoklu cüzdan mimarisi "birçok denge numarası'değil, çift giriş, harcama politikaları, rezervasyon ve denetim ve oyuncular için şeffaf bir iz olan bir finansal sistemdir. Gerçeği günlükte tutun, tutucular ve idempotans kullanın, cüzdanları ve para birimlerini ayırın, mutabakatı otomatikleştirin ve DR. Bu şekilde cüzdan UX için hızlı, para için doğru ve en yüksek yüklere ve düzenleyici kontrollere karşı dayanıklı olacaktır.

× Oyuna göre ara
Aramaya başlamak için en az 3 karakter girin.