Tôi trước đây cứ nghĩ rằng việc hợp đồng có chạy được trên DuskVM hay không chủ yếu phụ thuộc vào việc mã Rust có biên dịch thành công hay không, nhưng sau khi đọc phần mô tả DuskVM của @Dusk thì tôi mới nhận ra những chỗ rất dễ bị kẹt thực ra lại nằm gần ranh giới gọi: hợp đồng phải công khai một khối argbuf 64KB, hàm entry còn phải nhận đầu vào theo định dạng fn foo(u32) -\u003e u32, tức là nhận độ dài rồi xử lý dữ liệu và trả về độ dài đầu ra. Logic mã đúng không có nghĩa là việc gọi từ bên ngoài đã có thể “cho vào” đúng cách. Thiết kế này khiến tôi nhìn lại chi phí phát triển: DuskVM không thay nhà phát triển quy định logic nghiệp vụ, nhưng lại giao trách nhiệm ranh giới bộ nhớ cho chính hợp đồng đối với phần input và output. Bên gọi truyền vào không phải là một chuỗi “tham số đọc tùy tiện”, mà là dữ liệu đã được đặt sẵn vào bộ đệm và phạm vi đọc được xác định bởi độ dài. Nếu chỉ cần một chỗ trong việc serialize, kiểm tra độ dài hoặc ghi output bị lệch, vấn đề có thể không biểu hiện dưới dạng lỗi nghiệp vụ rõ ràng; frontend chỉ nhận được một lần gọi hợp đồng thất bại. Tình huống áp lực thực ra rất cụ thể: trong bài test tại chỗ, ứng dụng tài sản chỉ truyền một con số đơn giản nên mọi thứ hoạt động bình thường; khi lên production và thay bằng chứng chỉ dài hơn, dữ liệu đơn hàng hoặc dữ liệu quyền, hợp đồng vẫn có thể được gọi nhưng lại đọc không đầy đủ hoặc trả về kết quả bị cắt cụt. Người dùng thấy trạng thái không được cập nhật, và nhà phát triển phải quay lại kiểm tra ABI, bộ đệm và “data driver”, tức là chi phí không phải do một máy ảo trừu tượng chịu, mà là do người dùng phải chờ kết quả và đội ngũ duy trì tích hợp. Vì vậy, khi tôi xem DuskVM của $DUSK , tôi sẽ không chỉ hỏi liệu nó có thể thực thi được Rust hay WASM không; tôi sẽ xem hợp đồng test đã bao phủ việc độ dài tham số, độ dài output và các ranh giới đầu vào hay chưa. @Dusk viết rất rõ quy ước gọi, cho thấy phía sau hiệu năng và khả năng kiểm soát cũng có một phần trách nhiệm về bộ nhớ. Đối với nhà phát triển Dusk, điều thực sự đáng được xác minh là liệu sau khi dữ liệu nghiệp vụ phức tạp được đưa vào hợp đồng, các ranh giới có còn dự đoán được hay không. #dusk


