Skip to content

Dịch vụ phụ trợ

Phần phụ trợ CloudBank là một dịch vụ Go nguyên khối được xây dựng với Go 1.23, khung Gin HTTP và GORM làm lớp ORM. Nó xử lý xác thực, quản lý ví, khớp lệnh và các hoạt động quản trị.

ngăn xếp công nghệ

ComponentTechnology
LanguageĐi 1.23
HTTP KhungGin
ORMGORM
Giới hạn bộ đệm / tốc độRedis
DatabaseMySQL (thông qua GORM)
AuthenticationJWT (HS256) + EIP-191

Hệ thống ví lưu ký

CloudBank cung cấp ví giám sát cho những người dùng thích trải nghiệm đơn giản hóa mà không cần quản lý khóa riêng của họ.

Quản lý khóa

  • Khóa riêng được mã hóa ở trạng thái lưu trữ bằng AES-256-GCM bằng khóa chính phía máy chủ.
  • Hệ thống phiên bản khóa cho phép xoay khóa chính mã hóa mà không cần mã hóa lại tất cả các khóa được lưu trữ cùng một lúc. Mỗi bản ghi khóa được mã hóa sẽ lưu trữ phiên bản mã hóa của nó và quá trình giải mã sẽ chọn khóa chính chính xác dựa trên phiên bản.
  • Tài liệu chính không bao giờ được ghi lại, không bao giờ được trả về trong phản hồi API và chỉ được giải mã trong bộ nhớ tại thời điểm ký giao dịch.

Authentication

Xác thực người dùng (EIP-191)

Người dùng tiêu chuẩn xác thực bằng cách ký vào tin nhắn thử thách bằng ví Ethereum của họ:

  1. Khách hàng yêu cầu nonce từ máy chủ.
  2. Khách hàng ký số nonce bằng ví của họ (EIP-191 ký tên cá nhân).
  3. Máy chủ khôi phục địa chỉ người ký từ chữ ký và xác minh nó khớp với địa chỉ được xác nhận.
  4. Máy chủ phát hành JWT (HS256) với địa chỉ và thời hạn sử dụng của người dùng.

Xác thực quản trị viên

Điểm cuối quản trị viên sử dụng mô hình xác thực theo lớp:

  • JWT + Khởi động xác thực cơ bản — Tài khoản quản trị viên ban đầu được tạo thông qua Xác thực cơ bản trong quá trình thiết lập nền tảng, sau đó chuyển sang xác thực dựa trên JWT.
  • RBAC — Hai vai trò: RBAC (quyền truy cập đầy đủ bao gồm quản lý người dùng và cấu hình hệ thống) và superadmin (quyền truy cập hoạt động để quản lý và giám sát thị trường).

Giới hạn tỷ lệ

API sử dụng thuật toán nhóm mã thông báo cửa sổ trượt được hỗ trợ bởi Redis:

  • Mỗi khách hàng (được xác định bởi chủ đề JWT hoặc IP) có một nhóm mã thông báo trong Redis.
  • Mã thông báo bổ sung với tỷ lệ cố định qua cửa sổ trượt.
  • Khi nhóm trống, các yêu cầu sẽ nhận được phản hồi 429 Too Many Requests với tiêu đề Retry-After.
  • Các giới hạn tỷ lệ khác nhau áp dụng cho các nhóm điểm cuối khác nhau (ví dụ: điểm cuối giao dịch có giới hạn cao hơn điểm cuối quản trị viên).

Danh sách trắng hợp đồng

Để ngăn ví lưu ký tương tác với các hợp đồng tùy ý, chương trình phụ trợ sẽ thực thi danh sách trắng hợp đồng:

  • Mỗi mục nhập chỉ định một địa chỉ hợp đồng, bộ chọn phương thức được phép (chữ ký hàm 4 byte) và sản phẩm mà mục nhập đó thuộc về.
  • Các giao dịch được xác thực theo danh sách trắng trước khi ký và gửi.
  • Điều này đảm bảo ví lưu ký chỉ có thể gọi các chức năng hợp đồng đã được kiểm toán và đã biết.

Hệ thống rút tiền

Việc rút tiền từ ví lưu ký phải tuân theo các biện pháp kiểm soát an toàn:

  • Giới hạn hàng ngày cho mỗi nội dung — Giới hạn có thể định cấu hình cho số lần rút tiền BNB và USDC của mỗi người dùng mỗi ngày.
  • Xác minh số dư — Phần phụ trợ truy vấn số dư trên chuỗi trước khi xử lý để ngăn chặn thấu chi.
  • Yêu cầu rút tiền vượt quá giới hạn hàng ngày sẽ được xếp hàng để quản trị viên xem xét thủ công.

Hệ thống mời

Việc thu hút người dùng được hỗ trợ bởi hệ thống mời và giới thiệu:

  • Theo dõi giới thiệu — Mỗi người dùng nhận được một mã giới thiệu duy nhất. Đăng ký mới có thể nhập mã giới thiệu, liên kết hai tài khoản.
  • Quản lý chiến dịch — Quản trị viên có thể tạo các chiến dịch mời với cấu trúc phần thưởng và ngày hết hạn có thể định cấu hình.
  • CSV xuất — Dữ liệu giới thiệu và hiệu suất chiến dịch có thể được xuất để phân tích.

Công cụ sổ đặt hàng trong bộ nhớ

Phần phụ trợ bao gồm một công cụ khớp lệnh hiệu suất cao:

  • Đơn đặt hàng được xác thực thông qua chữ ký EIP-712 dữ liệu có cấu trúc.
  • Công cụ khớp lệnh duy trì một sổ lệnh trong bộ nhớ với ưu tiên giá-thời gian — các lệnh có cùng mức giá sẽ được thực hiện theo thứ tự nhận được.
  • Các giao dịch khớp được thanh toán trên chuỗi theo đợt để phân bổ chi phí gas.
  • Công cụ hỗ trợ các loại đơn đặt hàng GTC, GTD, FOK và FAK (xem Sổ đặt hàng & AMM để biết chi tiết).

Ghi nhật ký kiểm tra

Tất cả các hành động quản trị được ghi vào cơ sở dữ liệu với:

  • Dấu thời gian, người dùng quản trị viên ID và loại hành động.
  • Tham số yêu cầu và ID tài nguyên bị ảnh hưởng.
  • IP địa chỉ và tác nhân người dùng.

Nhật ký kiểm tra là không thể thay đổi (chỉ bổ sung) và được giữ lại để đánh giá tuân thủ.

API Cấu trúc

API tuân theo các quy ước RESTful trong các đường dẫn được phiên bản:

/api/v1/auth/*        — Authentication endpoints
/api/v1/markets/*     — Market CRUD and trading
/api/v1/orderbook/*   — Order placement and routing
/api/v1/admin/*       — Administrative operations
/api/v1/wallet/*      — Custodial wallet management
/api/v1/users/*       — User profiles and referrals

Tất cả các điểm cuối đều trả về phản hồi JSON với cấu trúc lỗi nhất quán bao gồm mã lỗi, thông báo mà con người có thể đọc được và ID theo dõi yêu cầu để gỡ lỗi.