Bài viết
Chia sẻ kiến thức của bạn.
Các kỷ nguyên và bộ xác thực hoạt động như thế nào trong cơ chế PoS của Sui?
Tôi đang cố gắng hiểu khía cạnh này của Mạng Sui bởi vì tôi đang xây dựng, gỡ lỗi hoặc triển khai thứ gì đó chạm vào khu vực này. Tôi muốn giải thích chi tiết về cách cơ chế hoặc tính năng này hoạt động, cùng với cách sử dụng CLI có liên quan, cấu trúc mã di chuyển hoặc các khái niệm kiến trúc. Mục tiêu của tôi là đạt được đủ sự rõ ràng để áp dụng kiến thức này vào một dự án thực tế — cho dù đó là hợp đồng thông minh tùy chỉnh, hệ thống NFT, tích hợp ví hay công cụ DeFi. Mạng Sui có những tính năng độc đáo so với chuỗi EVM, vì vậy tôi đặc biệt quan tâm đến điều gì khiến nó khác biệt và điều đó ảnh hưởng như thế nào đến các thực tiễn phát triển tốt nhất. Sẽ rất hữu ích nếu có mã mẫu, ví dụ dòng lệnh hoặc các lỗi điển hình để theo dõi, đặc biệt là khi sử dụng Sui CLI, SDK hoặc triển khai trên localnet/testnet. Cuối cùng, tôi muốn tránh những sai lầm phổ biến, tuân theo các nguyên tắc bảo mật tốt nhất và đảm bảo rằng chức năng tôi đang làm việc hoạt động như mong đợi trong các điều kiện thực tế.
- Sui
- Architecture
- SDKs and Developer Tools
- Transaction Processing
Câu trả lời
7Cơ chế Proof-of-Stake (PoS) của Sui tích hợp các kỷ nguyên và bộ xác thực để đảm bảo an ninh mạng và sự đồng thuận, khác biệt đáng kể so với chuỗi EVM. Dưới đây là giải thích chi tiết phù hợp với mục tiêu phát triển của bạn:
Thời đại ở Sui
Sui hoạt động trong các khoảng thời gian rời rạc được gọi là các kỷ nguyên, mỗi thời gian kéo dài khoảng 24 giờ (có thể định cấu hình, mặc định 864.000 khe với tốc độ ~ 150ms mỗi khe). Các kỷ nguyên quản lý các thay đổi của bộ xác thực và các tham số đồng thuận:
-
- Cấu trúc*: Mỗi kỷ nguyên bắt đầu với các thông số cài đặt giao dịch hệ thống (ví dụ: ngưỡng đặt cược, phần thưởng) và kết thúc bằng một trạm kiểm soát hoàn tất các thay đổi trạng thái.
-
- Chuyển đổi*: Người xác thực đề xuất một kỷ nguyên mới thông qua lệnh gọi di chuyển hệ thống, yêu cầu thỏa thuận 2f+1 (trong đó f là số lượng tối đa các trình xác thực bị lỗi). Điều này kích hoạt thời gian cấu hình lại trong đó mạng tạm dừng một thời gian ngắn.
-
- Mục đích*: Các kỷ nguyên cho phép cập nhật bộ xác thực động, ủy quyền lại cổ phần và điều chỉnh tham số mà không dừng chuỗi.
Bộ xác thực và PoS
Sui sử dụng mô hình PoS được ủy quyền trong đó người xác thực được chọn dựa trên các mã thông báo SUI được đặt cược:
- Bầu chọn: Người xác thực phải đặt cược một số tiền tối thiểu (ví dụ: 30 SUI, có thể điều chỉnh) và thu hút sự ủy thác từ người dùng. N trình xác thực hàng đầu (ví dụ: 100) theo tổng số tiền cược tạo thành tập hợp đang hoạt động.
- Consensus: Sui sử dụng giao thức Byzantine Fault Tolerance (BFT) (Narwhal/Bullshark) cho các đối tượng được chia sẻ, đảm bảo 2f+1 xác thực trung thực trong tổng số 3f+1. Đối với các giao dịch đơn giản, nó sử dụng xử lý song song mà không có sự đồng thuận đầy đủ.
- Phần thưởng và Giảm xét: Người xác thực nhận được phần thưởng từ phí giao dịch và phân phối lại quỹ lưu trữ, tỷ lệ với số tiền đặt cược. Hành vi sai trái (ví dụ: ký kép) dẫn đến cắt giảm, mặc dù các chi tiết cụ thể được xác định bởi quản trị.
- Luân động: Vào cuối kỷ nguyên, các thay đổi đặt cược sẽ kích hoạt một bộ xác thực mới, với các trình xác thực không hoạt động thoát ra và những người mới nhập dựa trên thứ hạng đặt cược.
Điều này trái ngược với các bộ xác thực tĩnh của EVM trong các chuỗi PoS như Ethereum, nơi các thay đổi xảy ra thông qua hard fork hoặc nâng cấp.
Khái niệm kiến trúc
-
- Đối tượng trạng thái hệ thống*: Theo dõi dữ liệu kỷ nguyên (ví dụ: thời gian bắt đầu, bộ xác thực) và được cập nhật thông qua di chuyển hệ thống.
- Parallelism: Mô hình đối tượng của Sui cho phép các giao dịch không chồng lấn vượt qua sự đồng thuận, giảm bớt tắc nghẽn liên quan đến thời đại so với việc thực hiện tuần tự của EVM.
-
- Thời gian cấu hình lại: Tạm dừng ngắn (giây) trong quá trình chuyển đổi kỷ nguyên đảm bảo tính nhất quán trạng thái, một sự đánh đổi duy nhất cho tính linh hoạt.
Di chuyển cấu trúc mã
Di chuyển hệ thống quản lý quá trình chuyển đổi kỷ nguyên, nhưng các nhà phát triển có thể tương tác với dữ liệu kỷ nguyên. Ví dụ:
di chuyển mô-đun my_module: :epoch_tracker { sử dụng sui: :epoch_time: :epochTime; sử dụng sui: :tx_context: :txContext;
cấu trúc công khai epochData có khóa, store { ID: UID, kỷ nguyên hiện tại: u64, }
mục nhập công khai cho update_epoch (dữ liệu: & mut epochData, kỷ nguyên: u64, ctx: & mut txContext) { data.current_epoch = kỷ nguyên; //Logic bổ sung dựa trên kỷ nguyên }
mục nhập công khai cho create_epoch_tracker (ctx: & mut txContext) { cho dữ liệu = epochData { id: đối tượng: :mới (ctx), current_period: epoch_time: :current_epoch (ctx), }; chuyển: :chuyển (dữ liệu, tx_context: :người gửi (ctx)); } }
-
- Điểm chính*: Sử dụng epoch_time: :current_epoch để truy cập kỷ nguyên hiện tại. Di chuyển hệ thống (ví dụ: sui_system: :request_add_validator) bị giới hạn trong quản trị.
-
- Bảo mật*: Xác thực dữ liệu kỷ nguyên để ngăn chặn thao tác trong quá trình cấu hình lại.
Sử dụng CLI
Quản lý các tương tác của trình xác thực và dữ liệu kỷ nguyên thông qua Sui CLI:
-
- Kiểm tra Kỷ nguyên: đánh mạnh trên ứng dụng khách get-epoch-info
-
Đầu ra: Kỷ nguyên hiện tại, thời gian bắt đầu, bộ xác thực.
-
Stake SUI (với tư cách là người ủy quyền): đánh mạnh
cổ phần khách hàng riêng - số tiền 100 - xác thực - ngân sách gas 1000000 -
Theo dõi: Số dư không đủ hoặc địa chỉ xác thực không hợp lệ.
-
- Yêu cầu bổ sung trình xác thực (chỉ quản trị, mô phỏng trên localnet):
đánh mạnh
cuộc gọi khách hàng sui --package -- module sui_system --function request_add_validator --args --gas-budget 1000000
- Yêu cầu bổ sung trình xác thực (chỉ quản trị, mô phỏng trên localnet):
đánh mạnh
-
Lưu ý: Yêu cầu ID gói hệ thống và vai trò quản trị.
-
- Thiết lập Localnet*: đánh mạnh bộ xác thực thử nghiệm - có vòi
-
Mô phỏng quá trình chuyển đổi kỷ nguyên bằng cách điều chỉnh cấu hình (ví dụ: rút ngắn thời lượng kỷ nguyên).
Các phương pháp hay nhất và nguyên tắc bảo mật
-
- Epoch-Aware Logic*: Thiết kế hợp đồng để xử lý các tạm dừng cấu hình lại (ví dụ: giao dịch thử lại).
-
- Giám sát cổ phần*: Sử dụng CLI hoặc SDK để theo dõi số tiền đặt cược của trình xác thực, đảm bảo ủy quyền cho các nút đáng tin cậy.
-
- Kiểm tra*: Mô phỏng quá trình chuyển đổi kỷ nguyên trên localnet với sui-test-validator --epoch-duration-ms 10000 để kiểm tra hành vi.
- Lỗi thường gặp: giao dịch đã hết hạn trong quá trình cấu hình lại — tăng thời gian chờ hoặc thử lại.
-
- Bảo mật*: Tránh dựa vào dữ liệu theo thời đại cụ thể mà không cần xác nhận, vì cấu hình lại có thể thay đổi trạng thái.
-
- Điều kiện thực tực*: Kiểm tra với các phân phối cổ phần khác nhau trên testnet để bắt chước các thay đổi của bộ xác thực.
Sự khác biệt so với EVM và Tác động phát triển
-
- Trình xác thực động động*: EVM PoS (ví dụ: Ethereum) sửa các trình xác thực cho đến khi nâng cấp, trong khi luân chuyển dựa trên thời đại của Sui hỗ trợ khả năng thích ứng, lý tưởng cho các nhóm thanh khoản DeFi cần điều chỉnh thường xuyên.
-
- Song song: Tính song song ở cấp đối tượng của Sui làm giảm chi phí kỷ nguyên, không giống như giới hạn dựa trên khối của EVM, mang lại lợi ích cho hoạt động đúc NFT hoặc lô ví.
-
- Phát triển*: Các hạn chế di chuyển hệ thống của Move yêu cầu tương tác quản trị, trái ngược với việc triển khai hợp đồng mở của EVM, đòi hỏi phải lập kế hoạch cẩn thận cho các tính năng liên quan đến trình xác thực.
Các lỗi thường gặp và sửa chữa
- Bỏ qua Reconfig: Giả sử hoạt động liên tục không thành công trong quá trình chuyển đổi. Khắc phục: Thực hiện logic thử lại.
-
- Cổ phiếu không hợp lỗi*: Đặt cược dưới mức tối thiểu kích hoạt lỗi. Khắc phục: Kiểm tra get-epoch-info để biết ngưỡng.
-
- Mạng không phù hợp*: Sử dụng mainnet CLI trên testnet không thành công. Khắc phục: Căn chỉnh với mạng mục tiêu (ví dụ: sui client switch --env testnet).
Điều này áp dụng cho các hợp đồng thông minh (logic dựa trên thời đại), NFT (đúc tiền phụ thuộc vào trình xác thực), ví (theo dõi cổ phần) và DeFi (nhóm thanh khoản động). Kiểm tra rộng rãi trên localnet/testnet để đảm bảo độ bền vượt qua ranh giới kỷ nguyên.
Sui hoạt động trên một hệ thống dựa trên thời gian được gọi là các kỷ nguyên. Mỗi kỷ nguyên kéo dài khoảng 24 giờ theo mặc định, mặc dù điều này có thể được thay đổi. Bạn có thể tưởng tượng các kỷ nguyên giống như các vòng trò chơi: lúc đầu, hệ thống đặt ra các quy tắc, danh sách xác thực và thông số phần thưởng; ở cuối, nó khóa trạng thái và chuẩn bị cho vòng tiếp theo. Khi di chuyển từ thời đại này sang kỷ nguyên khác, có một khoảng thời gian tạm dừng ngắn gọi là thời gian tái cấu hình, kéo dài vài giây, trong đó mạng dừng lại trong thời gian ngắn để tự cập nhật một cách an toàn.
Bây giờ, hãy nói về các validator. Sui sử dụng hệ thống Proof-of-Stake (PoS) ủy quyền. Người xác thực cần đặt cược một lượng SUI tối thiểu (ví dụ 30 mã thông báo) và thu hút nhiều ủy quyền hơn từ người dùng để đưa nó vào danh sách N hàng đầu, xác định ai sẽ có trong bộ xác thực hoạt động cho kỷ nguyên đó. Nếu trình xác thực của bạn không lọt vào đầu, nó sẽ bị loại bỏ trong quá trình chuyển đổi kỷ nguyên tiếp theo. Vì vậy, số tiền đặt cược và ủy quyền thực sự xác định vòng quay của trình xác thực một cách tự động - không giống như Ethereum, nơi các bộ xác thực khá cố định trừ khi có nâng cấp mạng hoặc một số loại đề xuất quản trị.
Trong Sui, hệ thống Proof-of-Stake (PoS) xoay quanh một cái gì đó gọi là kỷ nguyên — hãy nghĩ về chúng giống như các cửa sổ thời gian nơi một bộ xác thực vẫn bị khóa để chạy mạng. Mỗi kỷ nguyên kéo dài khoảng 24 giờ theo mặc định, nhưng nó có thể cấu hình được. Khi một kỷ nguyên bắt đầu, hệ thống sẽ đặt ra các quy tắc như ngưỡng đặt cược và ai trong bộ xác thực. Khi nó kết thúc, hệ thống sẽ kết thúc trạng thái một cách sạch sẽ và chuẩn bị cho trạng thái tiếp theo.
Bây giờ đây là nơi nó trở nên thú vị: trong quá trình chuyển đổi giữa các kỷ nguyên, mạng tạm dừng trong vài giây. Sự tạm dừng đó được gọi là thời gian cấu hình lại và nó cung cấp cho hệ thống không gian để xoay các trình xác thực một cách an toàn hoặc thay đổi các tham số nội bộ. Ứng dụng của bạn cần biết điều này vì các giao dịch được gửi trong khoảng thời gian ngắn này có thể thất bại hoặc hết hạn.
Lựa chọn trình xác thực là động. Nếu bạn đang chạy trình xác thực, bạn cần đặt cược một số SUI và yêu cầu những người khác ủy thác cho bạn. Mạng tự động chọn các trình xác thực hàng đầu theo tổng số tiền cược và tạo thành tập hợp hoạt động trong mỗi kỷ nguyên. Nếu ai đó nhận được nhiều tiền cược hơn bạn, bạn có thể bị đuổi ra vòng tiếp theo. Người ủy quyền cũng có thể di chuyển cổ phần của họ trong mỗi thời kỳ, vì vậy nó rất linh hoạt. Không giống như Ethereum nơi các thay đổi của trình xác thực cần nâng cấp giao thức, Sui chỉ xử lý nó mỗi ngày.
Đồng thuận cũng hoạt động khác nhau. Sui sử dụng Narwhal và Bullshark cho các giao dịch đối tượng chia sẻ, cần có sự phối hợp. Nhưng nếu ứng dụng của bạn xử lý các đối tượng thuộc sở hữu — như ví cá nhân — nó sẽ bỏ qua sự đồng thuận hoàn toàn và xử lý mọi thứ song song. Đó là một yếu tố thay đổi cuộc chơi vì nó có nghĩa là các giao dịch của bạn không chờ đợi sau những giao dịch không liên quan như trên Ethereum.
Bên trong Move code, bạn có thể lấy kỷ nguyên hiện tại bằng cách sử dụng epoch_time: :current_epoch (ctx). Ví dụ: nếu bạn đang xây dựng một mô-đun phản ứng với các thay đổi kỷ nguyên, bạn có thể tạo đối tượng của riêng mình để lưu trữ và cập nhật các giá trị kỷ nguyên. Dưới đây là một bản phác thảo cơ bản về nó trông như thế nào:
module my_module::epoch_tracker {
use sui::epoch_time;
use sui::tx_context::{Self, TxContext};
use sui::object;
use sui::transfer;
struct EpochData has key, store {
id: UID,
current_epoch: u64,
}
public entry fun create(ctx: &mut TxContext) {
let epoch = epoch_time::current_epoch(ctx);
let data = EpochData { id: object::new(ctx), current_epoch: epoch };
transfer::transfer(data, tx_context::sender(ctx));
}
public entry fun update(data: &mut EpochData, epoch: u64, ctx: &mut TxContext) {
data.current_epoch = epoch;
}
}
Trong Mạng Sui, các kỷ nguyên và bộ xác thực là các thành phần trung tâm của mô hình đồng thuận Proof-of-Stake (DPoS) được ủy quyền của nó. Một kỷ nguyên trong Sui là một cửa sổ thời gian có độ dài cố định (ví dụ: 24 giờ) trong đó một bộ xác thực cụ thể chịu trách nhiệm xử lý các giao dịch và tạo ra các khối. Mỗi kỷ nguyên bắt đầu với một giai đoạn cấu hình lại trong đó bộ xác thực có thể thay đổi dựa trên đầu vào đặt cược từ kỷ nguyên trước đó.
- Kỷ nguyên và Xoay trình xác thực
Mỗi kỷ nguyên có một bộ xác thực duy nhất, được xác định bởi tổng số tiền đặt cược được ủy quyền cho mỗi trình xác thực.
Người ủy quyền đặt cược mã thông báo SUI của họ cho người xác thực, ảnh hưởng đến những người tham gia tập hợp hoạt động trong kỷ nguyên tiếp theo.
Vào cuối một kỷ nguyên, mạng tạm dừng một thời gian ngắn để cấu hình lại, hoàn thiện điểm kiểm tra của kỷ nguyên và chuyển sang bộ xác thực tiếp theo.
- Cấu trúc bộ xác thực
Bộ xác thực được lưu trữ trong một đối tượng Move, được duy trì bởi mô-đun hệ thống 0x3: :sui_system.
Mỗi trình xác thực có siêu dữ liệu bao gồm khóa công khai, số tiền đặt cược, hoa hồng và địa chỉ mạng.
Trình xác thực cấu trúc { siêu dữ liệu: ValidatorMetadata, quyền lực bỏ phiếu: u64, giá xăng: u64, tỷ lệ hoa hồng: u64, ... }
- Đặt cược và ủy quyền
Người đặt cược tương tác với mô-đun hệ thống Sui thông qua CLI hoặc SDK để ủy thác cổ phần:
số tiền đặt cược của khách hàng riêng - số tiền 1000000000 - bộ xác thực <VALIDATOR_ADDRESS>
Các mã thông báo được đặt cược bị khóa và ảnh hưởng đến tổng số tiền đặt cược của người xác thực cho kỷ nguyên tiếp theo.
Phần thưởng được phân phối theo ranh giới kỷ nguyên và có thể được nhận thông qua phương thức _reward.
- Di chuyển tương tác
Hàm sui_system: :request_epoch_change được gọi tự động để xoay các trình xác thực.
Hợp đồng thông minh không trực tiếp kiểm soát các kỷ nguyên nhưng có thể truy cập thông tin xác thực cho logic quản trị hoặc staking bằng cách sử dụng mô-đun sui_system.
- Cách sử dụng CLI/SDK
Để truy vấn kỷ nguyên hiện tại và trình xác thực:
cuộc gọi máy khách sui --package 0x3 --module sui_system --function get_current_epoch cuộc gọi máy khách sui --package 0x3 --module sui_system --function get_validator_set
Từ SDK:
const epochInfo = chờ đợi provider.getLatestsUISystemState (); console.log (Epochinfo.Epoch, Epochinfo.ActiveValidators);
- Khả năng quản trị trên chuỗi
Cấu trúc của Sui cho phép logic đặt cược nâng cao hoặc các hợp đồng nhận thức kỷ nguyên, ví dụ: logic bảo lãnh hoặc tái cân bằng được kích hoạt bởi thời đại.
- Cạm bẫy thường gặp
Sử dụng địa chỉ xác thực cũ có thể khiến staking không thành công.
Việc ủy thác quá gần đến cuối một kỷ nguyên có thể trì hoãn hiệu ứng cho đến chu kỳ tiếp theo.
Hợp đồng không thể truy cập trực tiếp thời gian nhưng phải sử dụng hệ thống Đồng hồ hoặc dữ liệu kỷ nguyên.
- Thử nghiệm & Thực hành tốt nhất
Trên localnet, bạn có thể mô phỏng quá trình chuyển đổi kỷ nguyên bằng cách gọi:
sui genesis --kỷ nguyên - thời lượng - ms 10000
Giám sát cấu hình lại với sự kiện EpochChangeEvent.
- An ninh
Đảm bảo siêu dữ liệu trình xác thực được xác minh (ví dụ: không có bộ xác thực sybil nào được đặt).
Hợp đồng thưởng nên theo dõi các kỷ nguyên để ngăn chặn phần thưởng gấp đôi.
- Thiết kế mang đi
Mô hình PoS dựa trên thời đại của Sui thực thi tính xác định, cách ly hiệu suất và tính linh hoạt ủy thác, khác với việc chuyển đổi trình xác thực từng khối liên tục của chuỗi EVM. Các nhà phát triển hợp đồng thông minh nên coi quá trình chuyển đổi kỷ nguyên như ranh giới thay đổi trạng thái cho logic phụ thuộc vào thời gian, danh tiếng của trình xác thực hoặc luồng đặt cược.
Hãy cho tôi biết nếu bạn muốn một hợp đồng Move mẫu đọc dữ liệu kỷ nguyên hoặc xác thực các điều kiện dựa trên cổ phiếu.
Ở Tùy, thời gian được chia thành các khối gọi là kỷ nguyên. Mỗi kỷ nguyên giống như một phiên kéo dài khoảng 24 giờ theo mặc định (điều này có thể được thay đổi). Trong một kỷ nguyên, người xác thực xử lý các giao dịch, kiếm phần thưởng và duy trì mạng lưới. Khi một kỷ nguyên kết thúc, hệ thống hoàn thiện mọi thứ và chuyển sang kỷ nguyên tiếp theo. Quá trình chuyển đổi này bao gồm một khoảng dừng ngắn, được gọi là thời gian tái cấu hình, cho phép mạng có cơ hội cập nhật trạng thái bên trong một cách an toàn — giống như hít một hơi thật sâu trước khi bắt đầu vòng tiếp theo.
Những kỷ nguyên này rất quan trọng vì chúng là khi các bộ xác thực có thể thay đổi. Sui sử dụng mô hình PoS được ủy quyền, vì vậy người xác nhận được lựa chọn dựa trên số lượng SUI mà họ đặt cược và số lượng người khác ủy thác cho họ. Để trở thành người xác thực, bạn cần đáp ứng số tiền đặt cược tối thiểu (ví dụ: 30 SUI) và để duy trì bộ xác thực hàng đầu, bạn cần thu hút đủ số tiền đặt cược được ủy quyền. Vào cuối mỗi kỷ nguyên, hệ thống kiểm tra các thứ hạng này và điều chỉnh bộ xác thực một cách tự động — không cần hard fork hoặc nâng cấp thủ công.
Để xử lý sự đồng thuận, Sui sử dụng một giao thức gọi là Narwhal và Bullshark cho các giao dịch phức tạp hoặc trạng thái chia sẻ. Nó đảm bảo bảo mật ngay cả khi một vài trình xác thực hành vi sai. Nhưng đối với các giao dịch đơn giản không liên quan đến các đối tượng được chia sẻ, Sui bỏ qua sự đồng thuận nặng nề và chạy chúng song song, làm cho mọi thứ nhanh hơn.
Người xác thực nhận được phần thưởng từ phí giao dịch và quỹ lưu trữ. Nếu một người xác thực gian lận — như ký nhiều tin nhắn mâu thuẫn — họ có thể bị phạt (chém), nhưng cách hoạt động của nó được xác định bởi quản trị, chứ không phải mã hóa cứng.
Dưới mui xe, hệ thống theo dõi thông tin kỷ nguyên trong một đối tượng trên chuỗi đặc biệt. Đối tượng này lưu trữ các chi tiết như số kỷ nguyên hiện tại, thời điểm nó bắt đầu và trình xác thực nào đang hoạt động. Các nhà phát triển không kiểm soát điều này trực tiếp, nhưng bạn có thể đọc kỷ nguyên hiện tại bên trong hợp đồng thông minh Move của mình bằng cách sử dụng epoch_time: :current_epoch (ctx).
Nếu bạn muốn viết các hợp đồng lưu trữ hoặc phản ứng với những thay đổi của kỷ nguyên, bạn có thể tạo đối tượng của riêng mình để theo dõi nó. Có một mô-đun Move mẫu cho thấy cách thực hiện việc này, bao gồm cách cập nhật hoặc đọc kỷ nguyên trong logic ứng dụng của bạn.
Một điều quan trọng cần biết: chỉ có quản trị mới có quyền gọi các hàm cấp hệ thống như thêm trình xác thực mới vào tập hợp. Là một nhà phát triển thông thường, bạn không thể kích hoạt chúng trực tiếp từ mã của mình.
Để tương tác với các kỷ nguyên và trình xác thực, bạn có thể sử dụng Sui CLI. Bạn có thể kiểm tra kỷ nguyên hiện tại, đặt cược SUI của bạn vào trình xác thực hoặc thậm chí mô phỏng hành vi của trình xác thực trên localnet. Nếu bạn đang chạy mạng thử nghiệm cục bộ, bạn có thể rút ngắn độ dài kỷ nguyên (ví dụ: xuống còn 10 giây) để xem ứng dụng của bạn hoạt động như thế nào trong quá trình chuyển đổi.
Từ quan điểm bảo mật và thử nghiệm, hãy đảm bảo ứng dụng của bạn có thể xử lý quá trình chuyển đổi kỷ nguyên. Điều đó có nghĩa là thử lại các giao dịch thất bại xảy ra trong thời gian cấu hình lại và xác nhận rằng logic hợp đồng của bạn vẫn giữ nguyên khi kỷ nguyên thay đổi. Ngoài ra, hãy theo dõi những trình xác thực mà bạn đang đặt cược và tránh những người có thời gian hoạt động hoặc hành vi kém.
So với Ethereum, sử dụng bộ xác thực chủ yếu cố định cho đến khi nâng cấp, bộ xác thực của Sui hoạt động và điều chỉnh mỗi ngày. Tính linh hoạt đó rất mạnh mẽ - đặc biệt là đối với các trường hợp sử dụng như nhóm DeFi, có thể cần thay đổi thường xuyên trong việc ủy thác - nhưng nó cũng có nghĩa là bạn cần thiết kế logic của mình xung quanh một hệ thống luôn chuyển động.
Sui cũng hỗ trợ thực thi song song cho các giao dịch không trùng lặp, giúp tránh các tắc nghẽn của hệ thống từng khối của Ethereum. Đó là một chiến thắng lớn cho các ứng dụng khối lượng lớn như đúc NFT hoặc phân lô giao dịch ví.
Nhưng vì Sui giới hạn quyền truy cập vào một số chức năng hệ thống, không giống như phong cách “triển khai bất cứ điều gì bất cứ lúc nào” của EVM, bạn sẽ cần phải lên kế hoạch trước nếu các tính năng của bạn phụ thuộc vào trình xác thực hoặc thời đại.
Trong Sui, các kỷ nguyên và bộ xác thực là các thành phần cơ bản của mô hình đồng thuận chứng minh cổ phần được ủy quyền (DPoS) của nó. Kỷ nguyên là một khoảng thời gian cố định trong đó một bộ xác thực cụ thể chịu trách nhiệm xác thực các giao dịch và bảo mật mạng. Vào cuối mỗi kỷ nguyên, một bộ xác thực mới có thể được hình thành dựa trên hoạt động đặt cược và các quyết định quản trị. Người xác nhận được lựa chọn theo số lượng token SUI được đặt cọc với họ và người ủy quyền có thể đặt cược SUI của họ để tham gia bảo mật mạng lưới và kiếm phần thưởng. Quyền bỏ phiếu của mỗi người xác nhận tỷ lệ với tổng số tiền đặt cược cho họ, điều này ảnh hưởng trực tiếp đến sự đồng thuận.
Cơ chế điểm kiểm tra của Sui giúp hoàn tất các giao dịch trên các trình xác thực và đảm bảo tiến trình trạng thái xác định. Thay đổi trình xác thực, cập nhật cổ phần và sửa đổi tham số giao thức chỉ có hiệu lực khi bắt đầu một kỷ nguyên mới. Logic chuyển tiếp kỷ nguyên này được mã hóa trong các mô-đun Move hệ thống của Sui và hiển thị trong gói sui-system. Các nhà phát triển có thể kiểm tra siêu dữ liệu kỷ nguyên thông qua Sui CLI bằng cách sử dụng các lệnh như sui client call --function get_current_epoch.
Không giống như chuỗi EVM, các thay đổi bộ xác thực trong Sui gắn chặt với mô hình lấy đối tượng làm trung tâm và các quy tắc truy cập nghiêm ngặt của Move, giúp duy trì tính nhất quán và an toàn trong quá trình chuyển đổi. Để tránh các vấn đề triển khai, các nhà phát triển nên thiết kế hợp đồng để tham khảo thông tin xác thực động một cách cẩn thận, đặc biệt là trong các ứng dụng như quản trị, bảng điều khiển đặt cược hoặc quy trình làm việc xuyên thời gian.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Kiếm phần của bạn từ 1000 Sui
Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.
- Tại sao BCS yêu cầu thứ tự trường chính xác để khử chuỗi khi cấu trúc Move có các trường được đặt tên?65
- Cách tối đa hóa lợi nhuận nắm giữ SUI: Sui Staking vs Liquid Staking515
- Nhiều lỗi xác minh nguồn” trong các ấn phẩm về mô-đun Sui Move - Giải quyết lỗi tự động55
- Lỗi Sui Move - Không thể xử lý giao dịch Không tìm thấy đồng xu gas hợp lệ cho giao dịch419
- Giao dịch Sui thất bại: Đối tượng được dành riêng cho giao dịch khác410