Một giao dịch Dusk thất bại vẫn có thể khiến bạn mất DUSK.

Việc hoàn tác (revert) không xóa hóa đơn.

Tôi đã nghĩ rằng nếu một giao dịch chạy hết gas và revert, thì việc thực thi thất bại cơ bản sẽ không để lại gì phía sau.

Dusk tách bạch hai kết quả đó.

Bạn đặt `gas_limit` và `gas_price`, nhưng phí thực tế được tính dựa trên `gas_used * gas_price`. Nếu việc thực thi chạy hết gas, giao dịch sẽ revert trong khi lượng gas đã bị tiêu tốn vẫn phải trả.

Hãy xem một ví dụ được tạo ra: một lệnh gọi có giới hạn gas là 50.000 và gas price là 2 LUX. Nếu nó tiêu hết toàn bộ 50.000 gas trước khi hết chạy, thì giao dịch thất bại vẫn tốn 100.000 LUX, tức là 0.0001 DUSK.

Thay đổi trạng thái biến mất.

Nhưng phí thì không.

Đó là phần tôi không ngờ tới.

Một cơ chế bảo vệ sổ cái khỏi việc cam kết (commit) một lần thực thi chưa bao giờ hoàn tất. Cơ chế còn lại vẫn tính phí cho phần tính toán mà mạng đã thực hiện. Cả hai đều tác động lên cùng một giao dịch thất bại, nhưng chúng không tạo ra cùng một kết quả.

Vì vậy “thất bại” không đồng nghĩa với “miễn phí.” Nó có nghĩa là thay đổi trạng thái đã biến mất, trong khi hóa đơn cho tài nguyên vẫn có thể được giữ lại.

Bao nhiêu phần trong “tính an toàn” giao dịch của Dusk đến từ việc revert khi thực thi chưa hoàn tất, và bao nhiêu phần trong “kỷ luật tài nguyên” đến từ việc vẫn tính phí cho công việc đã diễn ra?

@Dusk #dusk $DUSK