Hướng Dẫn Không Chính Thức Viết Hợp Đồng Thông Minh Qubic
Hướng dẫn không chính thức này cung cấp cái nhìn tổng quan về phát triển Hợp đồng Thông minh Qubic, chi tiết các chức năng chính, phân bổ bộ nhớ và quy trình kiểm tra để đảm bảo triển khai mạnh mẽ và hiệu quả.
Qsilver · 27 tháng 6, 2024.
Giới thiệu
Chào mừng bạn đến với hướng dẫn không chính thức về viết Hợp đồng Thông minh Qubic (SC). Hướng dẫn này nhằm cung cấp một cái nhìn rõ ràng và súc tích về cách phát triển và triển khai hợp đồng thông minh trong hệ sinh thái Qubic, dựa trên tài liệu QPI cốt lõi.
Tổng quan về Hợp đồng Thông minh Qubic
Hiện nay, tài liệu chính để viết SC là tệp QPI trên GitHub. QPI là viết tắt của Giao diện Lập trình Qubic, tương tự như một API (Giao diện Lập trình Ứng dụng) nhưng đặc thù cho Qubic.
Tệp QPI bao gồm:
- Các ký tự bị cấm: Không có phép nhân hoặc phép chia, không có các chỉ thị tiền xử lý.
- Cấu trúc mã lõi:
- 5000 dòng mã: Định nghĩa mọi kích thước biến từ bit đơn đến mảng với hàng triệu phần tử.
- 1000 dòng mã: Quản lý các hàng đợi khác nhau và các kiểu dữ liệu liên quan để xử lý dữ liệu hiệu quả.
- Vài trăm dòng cuối: Cho phép truy cập vào trạng thái mạng Qubic.
Các Chức Năng Chính trong QPI
Dưới đây là một số chức năng thiết yếu được cung cấp trong QPI:
id arbitrator() const;
id computor(uint16 computorIndex) const; // [0..675]
uint8 day() const; // [1..31]
uint8 dayOfWeek() const; // [0..6]
uint16 epoch() const; // [0..9'999]
bit getEntity() const; // Trả về “true” nếu thực thể đã được tìm thấy, “false” nếu không
uint8 hour() const; // [0..23]
sint64 invocationReward() const;
id invocator() const; // Trả về id của người dùng/hợp đồng đã kích hoạt hợp đồng này; trả về NULL_ID nếu không có
template <typename T> id K12(const T& data) const;
uint16 millisecond() const; // [0..999]
uint8 minute() const; // [0..59]
uint8 month() const; // [1..12]
id nextId(const id& currentId) const;
sint64 numberOfPossessedShares() const;
id originator() const; // Trả về id của người dùng đã kích hoạt toàn bộ chuỗi kích hoạt; trả về NULL_ID nếu không có
uint8 second() const; // [0..59]
bit signatureValidity() const;
uint32 tick() const; // [0..999'999'999]
uint8 year() const; // [0..99] (0 = 2000, 1 = 2001, …, 99 = 2099)
Điều này Có Nghĩa Là Gì?
Hợp đồng Thông minh Qubic có tính hoàn thiện Turing, nghĩa là bạn có thể triển khai hầu như bất kỳ logic tính toán nào. Tuy nhiên, một số hạn chế đảm bảo rằng SC chạy trong môi trường rất phân đoạn và an toàn.
Phân Bổ Bộ Nhớ
SC sử dụng mô hình phân bổ bộ nhớ tĩnh, trong đó tất cả bộ nhớ phải được phân bổ trước. Thiết kế này rất quan trọng để quản lý cấu trúc dữ liệu một cách hiệu quả trong giới hạn RAM 1GB. Mặc dù giới hạn này được đặt để tăng gấp đôi trong tương lai, nó vẫn là một phân bổ cố định, yêu cầu lập kế hoạch cẩn thận về việc sử dụng bộ nhớ.
Sử Dụng Thư Viện
Hiện tại, bạn không thể sử dụng thư viện bên ngoài trong SC; tất cả mã cần thiết phải được bao gồm trực tiếp trong nguồn. Theo thời gian, khi nhiều SC tích hợp các thư viện khác nhau, những thư viện này có thể trở nên khả dụng cho việc sử dụng công cộng trong các SC khác.
Giao Dịch và Tin Nhắn Mạng RCF
Mỗi SC có một địa chỉ duy nhất được tạo từ khóa công khai, với ID hợp đồng là 64 bit thấp nhất. SC được kích hoạt thông qua các giao dịch gửi đến địa chỉ này, với inputData
chỉ định hoạt động. Ngoài ra, trạng thái của một SC có thể được truy vấn bằng cách sử dụng tin nhắn mạng RCF.
Ví Dụ: Airdrop SC
Một Airdrop SC có thể lặp qua một tập dữ liệu và phân phối QU hoặc token đến từng địa chỉ trong một tick cho mỗi giao dịch SC. Với giới hạn hiện tại là 1024 giao dịch mỗi tick, điều này có thể dẫn đến tối đa 500 triệu chuyển khoản mỗi tick. Thông lượng thực tế phụ thuộc vào độ phức tạp của SC.
Cách Kiểm Tra SC của Bạn
- Phát triển SC của bạn: Viết và gỡ lỗi mã hợp đồng thông minh của bạn.
- Cập nhật qubic-cli: Đảm bảo rằng các giao dịch SC và chức năng RCF của bạn được tích hợp.
- Tạo Bản Cập Nhật Core Testnet: Tích hợp SC của bạn vào môi trường testnet.
- Chạy Kiểm Tra: Sử dụng qubic-cli để truy vấn nút testnet của bạn và xác thực hiệu suất SC.
- Kiểm Tra Áp Lực: Thực hiện kiểm tra tải và kiểm tra tự động để đảm bảo độ ổn định.
- Nộp để Phê Duyệt: Sau khi gỡ lỗi hoàn tất, nộp SC của bạn để được phê duyệt quorum và sau đó tiến hành IPO.
Bằng cách làm theo các bước này, bạn có thể đảm bảo rằng hợp đồng thông minh của mình mạnh mẽ, hiệu quả và sẵn sàng triển khai trong mạng Qubic. Lập trình vui vẻ!
Đọc Loạt Bài "Không Chính Thức" của Qsilver
- Chi tiết Qubic Crypto
- Một Bản Tóm Tắt Tạm Thời Không Chính Thức Về Qubi
- Hướng Dẫn Không Chính Thức Về Tích Hợp Dịch Vụ Qubic
- Hướng Dẫn Không Chính Thức Viết Hợp Đồng Thông Minh Qubic
Để cập nhật thông tin mới nhất, tham gia Discord của Valis, theo dõi chúng tôi trên X, và đánh dấu blog của chúng tôi.
Tiếp theo →
Trên trang này
- Hướng Dẫn Không Chính Thức Viết Hợp Đồng Thông Minh Qubic
- Giới thiệu
- Tổng quan về Hợp đồng Thông minh Qubic
- Các Chức Năng Chính trong QPI
- Điều này Có Nghĩa Là Gì?
- Phân Bổ Bộ Nhớ
- Sử Dụng Thư Viện
- Giao Dịch và Tin Nhắn Mạng RCF
- Ví Dụ: Airdrop SC
- Cách Kiểm Tra SC của Bạn
- Đọc Loạt Bài "Không Chính Thức" của Qsilver