Dự án

Dành cho nhà phát triển

Mã của FAIRDRUM mở theo giấy phép MIT: hợp đồng, trang web, các script khởi chạy và bài kiểm thử nằm chung trong một kho mã (liên kết sẽ xuất hiện ở đây sau khi công bố). Dưới đây là phần tóm tắt cách mọi thứ được xây dựng và cách chạy bản sao của riêng bạn.

Cấu trúc

Thư mụcBên trong có gì
programs/fairdrum/Hợp đồng viết bằng Rust và Anchor 1.2.2. Các con số của trò chơi nằm trong consts.rs, các phép tính nằm trong engine.rs và math.rs dưới dạng hàm thông thường, nên bài kiểm thử chạy không cần mạng.
app/Trang web: Vite và TypeScript, các trang nằm trong app/src/pages/, phần ứng dụng khách của hợp đồng và phần làm việc với Switchboard nằm trong app/src/chain/. Các bảng số trên trang web được tạo từ consts.rs, vì vậy không lệch với hợp đồng.
scripts/Khởi chạy: phát hành token, khởi tạo, kiểm tra các cấu hình đã ghi, kiểm thử trên devnet, các khoản chi trả dịch vụ, “bot trực” (không bắt buộc).
docs/ARCHITECTURE.md (cách mọi thứ được xây dựng), LAUNCH.md (khởi chạy từng bước), AUDIT.md (tự kiểm tra bảo mật và các vấn đề còn bỏ ngỏ).
e2e/Các bài kiểm tra trang web trong trình duyệt thật, với ví giả và mạng giả.

Dự án không có máy chủ và cơ sở dữ liệu: trang web gồm các tệp thông thường và đọc dữ liệu trực tiếp từ hợp đồng.

Chạy trên máy của bạn

Cần Node.js 20.19 trở lên và Rust để kiểm thử hợp đồng.

npm install
npm run dev                         # trang web trên localhost, không có hợp đồng, ở chế độ demo
npm test                            # kiểm thử phần ứng dụng khách
cargo test -p fairdrum --release    # kiểm thử hợp đồng
npm run build                       # trang web trong thư mục dist/
npm run build:single                # phiên bản ngoại tuyến: các tệp html riêng lẻ, mở bằng cách nhấp đúp

Hướng dẫn khởi chạy từng bước trên devnet và mạng chính, kèm các lệnh và phần giải quyết những lỗi thường gặp: docs/LAUNCH.md trong kho mã.

Cấu hình không cần build lại

Tệp config.json nằm cạnh các trang và được đọc mỗi lần tải trang, nên địa chỉ hợp đồng, nút mạng và các liên kết có thể thay đổi mà không cần build. Nếu programId để trống, chế độ demo sẽ được bật.

{
  "programId": "địa chỉ chương trình sau khi khởi chạy",
  "cluster": "mainnet-beta",
  "rpc": "https://...",
  "swapUrl": "liên kết đổi FAIRDRUM, khi có",
  "links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}

Địa chỉ trang web, mô tả các trang và mã xác nhận cho quản trị web được đặt trong app/seo.json và app/pages.json; lệnh npm run gen:html tạo lại từ đó các trang, sơ đồ trang web và robots.txt.

Kiểm tra mã

Kiểm thử

Logic của hợp đồng được kiểm tra không cần mạng, kể cả bằng một “cơn bão” hàng chục nghìn thao tác ngẫu nhiên: sau mỗi thao tác, số token trong kho phải bằng chính xác các nghĩa vụ. Bài kiểm thử này đã được kiểm chứng bằng “đột biến”: nếu trong phép tính lệch dù chỉ một đơn vị nhỏ nhất, nó sẽ thất bại.

Những gì chưa được kiểm tra

Bản build cho Solana, hoạt động thực với Switchboard và kiểm toán độc lập: xem trạng thái dự án. Kiểm tra nội bộ không thay thế kiểm toán, và docs/AUDIT.md liệt kê những gì còn bỏ ngỏ.

Đối chiếu với mạng

Sau khi khởi chạy, hãy đối chiếu mã đã công bố với chương trình trên mạng theo hướng dẫn “Kiểm tra tính công bằng”. Địa chỉ chương trình và token có ở trang “Liên kết chính thức”.

Nếu trang web fairdrum.to không truy cập được

Token của bạn không biến mất đi đâu cả.

Số dư trong game được lưu trong hợp đồng, không phải trên trang web. Trang web chỉ là lớp vỏ tiện lợi, và bạn có thể rút từ bất kỳ bản sao nào của nó.

  1. Kiểm tra bạn đã gõ đúng địa chỉ và mở trang web từ dấu trang đã lưu. Nếu chỉ riêng trang này không truy cập được, hãy chờ: đôi khi nhà cung cấp hosting gặp sự cố tạm thời.
  2. Mở một bản sao của trang web: kho mã là mã nguồn mở, còn trang web chỉ là các tệp thông thường. Hãy tải phiên bản ngoại tuyến hoặc tự build bản của bạn (npm run build), đặt cạnh đó tệp config.json với địa chỉ chương trình thật (bạn có thể đối chiếu địa chỉ này trên trang “Liên kết chính thức” và trong trình khám phá blockchain) rồi mở qua bất kỳ máy chủ web đơn giản nào, ví dụ npx vite preview.
  3. Kết nối cùng một ví. Số dư, hạng và chuỗi sẽ được đọc từ hợp đồng, và việc rút hoạt động giống như trên trang web chính.
  4. Đừng nhập cụm từ khôi phục trên bất kỳ “bản sao” nào. Trang web không bao giờ yêu cầu điều này: bất kỳ bản sao nào yêu cầu đều là giả mạo.

Hãy kiểm tra bản sao trang web lấy từ nguồn của người khác: so sánh mã với kho mã của dự án. Nếu không, bạn không biết mình sẽ ký thứ gì. An toàn hơn là tự build.

Giấy phép

MIT: bạn có thể đọc, sao chép, sửa đổi và chạy mã, kể cả cho mục đích thương mại, miễn là giữ lại văn bản giấy phép. Giấy phép áp dụng cho mã, không áp dụng cho tên và địa chỉ fairdrum.to: một bản fork với quy tắc khác không được tự nhận là dự án này.