Giao dịch thất bại rồi thì số DUSK trong ví bị trừ đi, tính như vậy có phải là “trắng tay” không vậy hả 👻?
Mình lục trang Tokenomics của Dusk và thấy một quy tắc rất dễ bị bỏ sót: nếu giao dịch bị tiêu hao hết gas, nó sẽ bị rollback, nhưng phần gas đã tiêu tốn thì vẫn tính phí không hoàn lại. Trong miệng người dùng, “thất bại” có thể dẫn đến ít nhất hai kết quả khác nhau trên chuỗi.
Gas limit là lượng công việc tối đa cuộc gọi này có thể thực hiện được, còn gas price là giá cho mỗi đơn vị công việc. Phí được tính theo lượng gas thực sự tiêu hao; phần chưa dùng thì không bị trừ. Bộ quy tắc này vốn không có gì sai cả. Vấn đề là ví thường chỉ cho bạn một dòng “Failed” nền đỏ chữ trắng.
Trước đây chắc mình sẽ đổ lỗi cho người dùng không để đủ phí gas. Nhưng giờ nhìn lại thì mình thấy sản phẩm có giải thích rõ nguyên nhân thất bại không, vì điều đó trực tiếp quyết định người dùng có còn muốn bấm thêm lần nữa hay không. Thiếu tài nguyên (workload) hay là do quyền, tham số hoặc trạng thái mạng? Cách xử lý hoàn toàn khác nhau.
Nói một tình huống. Có người dùng một lượng DUSK nhỏ để gọi hợp đồng, nhưng lại đặt gas limit quá thấp. Giao dịch thất bại, số dư bị trừ đi, còn trạng thái trên chuỗi thì không đổi. Người đó lại thử lần nữa và lại trả thêm một khoản. Nếu gốc rễ là do viết sai tham số, thì phí sẽ tiếp tục bị đốt.
Vì vậy mình thật sự không nghĩ cơ chế gas của Dusk có thể chỉ gói gọn trong câu “thất bại cũng phải trả phí”. Giao thức đã ghi rõ ranh giới giữa phần gas chưa dùng thì được hoàn lại và phần bị tiêu hao thì bị tính phí. Vấn đề là sản phẩm phải diễn giải ranh giới đó thành ngôn ngữ dễ hiểu.@Dusk Nếu có thể hiển thị đồng thời gas limit, mức gas thực tế đã tiêu hao và nguyên nhân thất bại trong lịch sử thất bại thì$DUSK ngưỡng sử dụng sẽ giảm được một lớp hiểu lầm.#dusk
Mình lục trang Tokenomics của Dusk và thấy một quy tắc rất dễ bị bỏ sót: nếu giao dịch bị tiêu hao hết gas, nó sẽ bị rollback, nhưng phần gas đã tiêu tốn thì vẫn tính phí không hoàn lại. Trong miệng người dùng, “thất bại” có thể dẫn đến ít nhất hai kết quả khác nhau trên chuỗi.
Gas limit là lượng công việc tối đa cuộc gọi này có thể thực hiện được, còn gas price là giá cho mỗi đơn vị công việc. Phí được tính theo lượng gas thực sự tiêu hao; phần chưa dùng thì không bị trừ. Bộ quy tắc này vốn không có gì sai cả. Vấn đề là ví thường chỉ cho bạn một dòng “Failed” nền đỏ chữ trắng.
Trước đây chắc mình sẽ đổ lỗi cho người dùng không để đủ phí gas. Nhưng giờ nhìn lại thì mình thấy sản phẩm có giải thích rõ nguyên nhân thất bại không, vì điều đó trực tiếp quyết định người dùng có còn muốn bấm thêm lần nữa hay không. Thiếu tài nguyên (workload) hay là do quyền, tham số hoặc trạng thái mạng? Cách xử lý hoàn toàn khác nhau.
Nói một tình huống. Có người dùng một lượng DUSK nhỏ để gọi hợp đồng, nhưng lại đặt gas limit quá thấp. Giao dịch thất bại, số dư bị trừ đi, còn trạng thái trên chuỗi thì không đổi. Người đó lại thử lần nữa và lại trả thêm một khoản. Nếu gốc rễ là do viết sai tham số, thì phí sẽ tiếp tục bị đốt.
Vì vậy mình thật sự không nghĩ cơ chế gas của Dusk có thể chỉ gói gọn trong câu “thất bại cũng phải trả phí”. Giao thức đã ghi rõ ranh giới giữa phần gas chưa dùng thì được hoàn lại và phần bị tiêu hao thì bị tính phí. Vấn đề là sản phẩm phải diễn giải ranh giới đó thành ngôn ngữ dễ hiểu.@Dusk Nếu có thể hiển thị đồng thời gas limit, mức gas thực tế đã tiêu hao và nguyên nhân thất bại trong lịch sử thất bại thì$DUSK ngưỡng sử dụng sẽ giảm được một lớp hiểu lầm.#dusk


