ưới $2\text{ms}$.SETTLEDĐẩy sự kiện biến động số dư sang Wallet.Ghi log giao dịch asynchronous sang Kafka để ghi vào Ledger.Phần 2: Thuật Toán Sinh Số Ngẫu Nhiên Minh Bạch (Provably Fair RNG)Để đảm bảo kết quả
https://tn88rz.com/ mỗi phiên cược là ngẫu nhiên tuyệt đối và không thể bị can thiệp bởi cả người chơi lẫn quản trị viên hệ thống (Anti-Manipulation), TN88 triển khai thuật toán Provably Fair dựa trên hàm mã hóa một chiều HMAC-SHA256.1. Công Thức Sinh Kết Quả Của Thuật ToánKết quả của một phiên cược ($R$) được tính toán từ 3 thành phần đầu vào độc lập:$$R = \text{HMAC-SHA256}(\text{Server Seed}, \text{Client Seed} + \text{Nonce})$$Server Seed: Chuỗi ngẫu nhiên do hệ thống tạo ra. Trước khi phiên cược bắt đầu, hệ thống sẽ công bố mã Hash public của Server Seed: $\text{Public Seed Hash} = \text{SHA256}(\text{Server Seed})$.Client Seed: Chuỗi ngẫu nhiên được đóng góp từ phía ứng dụng người dùng hoặc tổng hợp từ SHA256 của các Hash khối Blockchain mới nhất.Nonce: Số thứ tự tăng dần đại diện cho số lượng phiên cược đã diễn ra với Server Seed đó.2. Quy Trình Minh Bạch Và Cho Phép Kiểm Tra (Verification) TRƯỚC PHIÊN CƯỢC SAU PHIÊN CƯỢC
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Hệ thống công bố công khai │ │ Hệ thống tiết lộ công khai │
│ SHA256(Server Seed) │ │ Server Seed nguyên bản │
└──────────────┬───────────────┘ └──────────────┬───────────────┘
│ │
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Client không thể suy ngược │ │ Client tự chạy lại hàm HMAC │
│ ra kết quả trước │ │ để đối soát tính trung thực │
└──────────────────────────────┘ └──────────────────────────────┘
Cam kết trước (Pre-commitment): Người chơi có được $\text{Public Seed Hash}$ trước khi bấm đặt cược, đảm bảo kết quả đã được "chốt" trước và không thể sửa đổi sau khi nhận tiền cược.Minh bạch sau (Post-verification): Khi kết thúc chuỗi phiên, hệ thống giải phóng $\text{Server Seed}$ nguyên bản. Người chơi chỉ cần lấy Server Seed + Client Seed + Nonce chạy qua hàm HMAC-SHA256 trên thiết bị cá nhân để kiểm tra xem kết quả có khớp $100\%$ với kết quả hệ thống đã trả về hay không.Phần 3: Hạ Tầng Mạng Lưới Đồng Bộ Thời Gian Thực (WebSocket Mesh)Sau khi Core Engine tính toán xong kết quả, thách thức tiếp theo là truyền phát (Broadcast) biến động phiên cược tới hàng trăm ngàn ứng dụng client đang mở cùng lúc với độ trễ thấp nhất.1. Kiến Trúc WebSocket Cluster Phân TánTN88 sử dụng cụm máy chủ WebSocket chuyên biệt (xây dựng trên Golang Gorilla / Netty Epoll) độc lập hoàn toàn với Lớp Microservices xử lý logic:[ Core Engine ] ──(Publish Event)──► [ Redis Pub/Sub / NATS ]
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
[ WS Edge Node 1 ] [ WS Edge Node 2 ]
(50,000 Connections) (50,000 Connections)
│ │
▼ ▼
[ Clients 1..50k ] [ Clients 50k..100k ]
Kết nối dài tối ưu (Zero-Copy Non-Blocking I/O): Mỗi Node WebSocket có khả năng duy trì lên tới $100,000$ kết nối đồng thời (Concurrent Connections) nhờ cơ chế lặp sự kiện epoll/kqueue của hệ điều hành.Mạng lưới PUB/SUB: Core Engine chỉ cần phát ra đúng 1 thông báo kết quả vào NATS JetStream / Redis Pub/Sub. Cụm WebSocket Node sẽ tự động nhân bản tin nhắn và đẩy (Push) tới các Socket Channel tương ứng.