Thiết kế GAS đầu tiên của ngôn ngữ MOVE: Phân tích phương pháp tính toán chi phí GAS on-chain
Phiên bản đầu tiên của ngôn ngữ MOVE ban đầu được dự định hoạt động trong môi trường không có GAS, do đó không chuẩn bị cho cơ chế GAS. Gần đây, một đội ngũ công khai đã thiết kế giải pháp GAS đầu tiên cho ngôn ngữ MOVE trên blockchain của họ, điều này được coi là một "thử nghiệm mạo hiểm".
Trong kế hoạch GAS này, nhóm lập kế hoạch đã trình bày các nguyên tắc thiết kế, quy trình thực hiện, phương pháp tính toán GAS, cơ chế điều chỉnh sau đó và cho biết hoan nghênh cộng đồng đưa ra ý kiến.
GAS đo lường là khái niệm cơ bản của nhiều blockchain, nó định nghĩa một cách trừu tượng lượng tài nguyên tính toán và lưu trữ cần thiết để thực hiện và lưu trữ giao dịch trên chuỗi. Kế hoạch GAS xác định chi phí của tất cả các hoạt động thực thi trên chuỗi, được sử dụng để tính toán chi phí GAS trong quá trình thực hiện giao dịch.
quy trình thực hiện
Để thực hiện hiệu quả, quy trình trên chuỗi này bao gồm:
Định nghĩa nguyên tắc thiết kế
Chuẩn bị khung đánh giá, xác định giá của mỗi hoạt động thực hiện
Xây dựng hệ thống đo lường GAS và đại số GAS cho MOVE
Nhập khung GAS upstream vào on-chain
Làm cho khung GAS có khả năng nhận thức lưu trữ
Tối ưu hóa thêm kế hoạch GAS
nguyên tắc thiết kế
Chi phí hoạt động nên có mối liên hệ trực tiếp với các tài nguyên có sẵn trên mạng (chẳng hạn như CPU, bộ nhớ, mạng, lưu trữ I/O và không gian sử dụng, v.v.). Khi công nghệ và quy trình được cải tiến, chi phí GAS nên giảm tương ứng.
GAS nên được thiết lập bởi quản trị on-chain và có thể được cấu hình một cách liền mạch.
GAS có thể ngăn chặn các cuộc tấn công DoS vào tài nguyên cố định của mạng và có thể nhanh chóng điều chỉnh theo tình hình mạng thông qua quản trị.
Giá GAS nên phản ánh tầm nhìn về sự tăng trưởng nhanh chóng và duy trì tính phổ biến của blockchain.
Khuyến khích đưa ra những lựa chọn xuất sắc trong thiết kế, chẳng hạn như ưu tiên an toàn, tính mô-đun và xác nhận.
phương pháp tính GAS
Người dùng cần chỉ định hai giá trị khi gửi giao dịch:
Số lượng GAS tối đa: Số đơn vị GAS tối đa mà người dùng sẵn sàng trả để thực hiện giao dịch.
Giá đơn vị GAS: tính theo hệ bát phân cho mỗi đơn vị GAS, 1 bát phân = 0.00000001 token gốc.
Trong quá trình thực hiện giao dịch sẽ thu phí:
Chi phí cố định: Chi phí cơ bản cộng với chi phí bổ sung cho giao dịch lớn.
Chi phí thực thi: Dùng để thực thi lệnh MOVE
Chi phí đọc: Chi phí đọc dữ liệu từ lưu trữ bền vững
Chi phí ghi: Chi phí để ghi dữ liệu vào lưu trữ lâu dài
Cuối cùng phí giao dịch = Tổng lượng GAS tiêu thụ × Đơn giá GAS
Ví dụ, một giao dịch tiêu tốn 670 đơn vị GAS, giá GAS do người dùng chỉ định là 100 Octa/đơn vị, thì phí cuối cùng là 670 × 100 = 67000 Octa = 0.00067 token gốc.
Nếu trong quá trình thực hiện giao dịch hết GAS, bên gửi sẽ bị tính phí theo lượng GAS tối đa, và tất cả các thay đổi sẽ bị hủy bỏ.
Chi tiết kế hoạch GAS
Cấu hình cơ bản
Giải pháp GAS bao gồm một số thành phần không liên quan đến một thao tác đơn lẻ, chẳng hạn như kích thước giao dịch và đơn vị GAS tối đa.
Quy mô giao dịch
Phần lớn quy mô giao dịch ở mức kilobyte. Việc phát hành mô-đun Move có thể đạt vài kilobyte, trong khi một số khung khoảng 100KB. Mô-đun người dùng thường nằm trong khoảng từ 4KB đến 40KB. Quy mô giao dịch ban đầu được đặt là 32KB, sau đó điều chỉnh thành 64KB dựa trên phản hồi của cộng đồng để đơn giản hóa việc phát triển ứng dụng.
Giao dịch quá lớn sẽ làm tăng chi phí băng thông mạng và có thể ảnh hưởng đến hiệu suất. Để cân bằng quy mô và khả năng tiếp cận, bộ nhớ có thể bỏ qua các giao dịch quá lớn.
Đơn vị GAS lớn nhất
Đơn vị GAS tối đa trong kế hoạch GAS định nghĩa số lượng thao tác tối đa có thể thực hiện trong một giao dịch đơn lẻ. Điều này khác với lượng GAS tối đa mà người dùng chỉ định. Việc đặt quá cao có thể dẫn đến các vấn đề về hiệu suất, chẳng hạn như vòng lặp vô hạn. Hiện tại, ngay cả khi thực hiện nâng cấp khung quy mô tối đa, vẫn chỉ sử dụng chưa đến 90% đơn vị GAS tối đa (được đặt là 1,000,000).
Đánh giá chi phí thực hiện
Nhóm sử dụng khung tham chiếu và công cụ phân tích Valgrind để đánh giá chi phí thực thi, từ đó đưa ra chi phí tương đối của lệnh MOVE và hàm gốc. Bằng cách xem xét các mẫu mã nhằm nâng cao tính ổn định và an toàn của hệ thống, số lượng lệnh máy thực thi cuối cùng đã được xác định.
Chi phí lưu trữ
Kế hoạch lưu trữ GAS xem xét băng thông truy cập dữ liệu, dung lượng IOPS và chi phí lưu trữ vĩnh viễn. Truy cập bất kỳ mục trạng thái nào đều liên quan đến chi phí liên quan đến xác minh trạng thái blockchain. Công thức tính phí lưu trữ GAS là:
Lưu trữ phí GAS = Phí dự án + ( phí byte × Số byte )
Đọc, tạo và ghi thao tác
Đọc: Hoạt động phổ biến nhất, điều chỉnh chi phí dựa trên IOPS đĩa và dung lượng băng thông.
Tạo: Thêm mục mới vào bộ nhớ trạng thái, chi phí cao nhất, được hiệu chỉnh dựa trên không gian đĩa mạng.
Ghi: Cập nhật mục hiện có, phí byte giống như khi tạo.
Chi phí liên quan đến lưu trữ được đánh giá dựa trên mỗi giao dịch, ngay cả khi đọc/ghi cùng một tài nguyên nhiều lần, chỉ tính phí một lần.
Tham gia cộng đồng
Là một dự án cộng đồng, các thành viên có thể:
Chỉ ra những điểm không hợp lý trong kế hoạch GAS
Đưa ra mối quan ngại và tham gia thảo luận
Bỏ phiếu cho các đề xuất quản trị liên quan
điều chỉnh chi phí GAS
GAS方案 như là lưu trữ cấu hình on-chain, có thể thay đổi thông qua đề xuất quản trị. Nó được thiết kế để mở rộng, cho phép nâng cấp thông qua quản trị. Theo sự tiến bộ của công nghệ và phản hồi từ người dùng, các tham số GAS có thể được điều chỉnh theo thời gian.
Các thay đổi phức tạp trong công thức GAS có thể yêu cầu cập nhật phần mềm nút, và được phân biệt thông qua các cờ đặc trưng GAS mới. Điều này cần sự chấp nhận rộng rãi phiên bản mới từ các nhà điều hành nút và được phê duyệt thông qua các đề xuất quản trị.
Công việc tương lai
Là khuôn khổ GAS đầu tiên của ngôn ngữ MOVE, thiết kế này đã đặt nền tảng cho công việc trong tương lai:
Giảm chi phí thực hiện: Thông qua việc cải thiện hiệu suất của trình biên dịch và máy ảo.
Tính toán GAS đa chiều: Cho phép người dùng chỉ định ngân sách riêng cho việc thực thi và lưu trữ, đạt được định nghĩa giá GAS tối đa chi tiết hơn.
Giảm thiểu tình trạng phình to: Khám phá khái niệm TTL của từng dự án, tự động xóa các mục trạng thái không được truy cập khi TTL hết hạn, nhằm khuyến khích các nhà phát triển dọn dẹp dữ liệu trên chuỗi.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
16 thích
Phần thưởng
16
5
Chia sẻ
Bình luận
0/400
GateUser-3824aa38
· 07-06 09:00
Tiết kiệm gas là xong.
Xem bản gốcTrả lời0
CascadingDipBuyer
· 07-06 08:56
bull à, cuối cùng cũng có người quản lý gas rồi
Xem bản gốcTrả lời0
GigaBrainAnon
· 07-06 08:54
gas này quá mạnh, đắt đến nỗi tôi chân mềm
Xem bản gốcTrả lời0
ZkSnarker
· 07-06 08:53
thực ra mô hình gas này chỉ là zkvm với các bước bổ sung
Cơ chế GAS được sáng tạo bởi ngôn ngữ MOVE: Phân tích toàn diện giải pháp tính phí tài nguyên trên chuỗi.
Thiết kế GAS đầu tiên của ngôn ngữ MOVE: Phân tích phương pháp tính toán chi phí GAS on-chain
Phiên bản đầu tiên của ngôn ngữ MOVE ban đầu được dự định hoạt động trong môi trường không có GAS, do đó không chuẩn bị cho cơ chế GAS. Gần đây, một đội ngũ công khai đã thiết kế giải pháp GAS đầu tiên cho ngôn ngữ MOVE trên blockchain của họ, điều này được coi là một "thử nghiệm mạo hiểm".
Trong kế hoạch GAS này, nhóm lập kế hoạch đã trình bày các nguyên tắc thiết kế, quy trình thực hiện, phương pháp tính toán GAS, cơ chế điều chỉnh sau đó và cho biết hoan nghênh cộng đồng đưa ra ý kiến.
GAS đo lường là khái niệm cơ bản của nhiều blockchain, nó định nghĩa một cách trừu tượng lượng tài nguyên tính toán và lưu trữ cần thiết để thực hiện và lưu trữ giao dịch trên chuỗi. Kế hoạch GAS xác định chi phí của tất cả các hoạt động thực thi trên chuỗi, được sử dụng để tính toán chi phí GAS trong quá trình thực hiện giao dịch.
quy trình thực hiện
Để thực hiện hiệu quả, quy trình trên chuỗi này bao gồm:
nguyên tắc thiết kế
Chi phí hoạt động nên có mối liên hệ trực tiếp với các tài nguyên có sẵn trên mạng (chẳng hạn như CPU, bộ nhớ, mạng, lưu trữ I/O và không gian sử dụng, v.v.). Khi công nghệ và quy trình được cải tiến, chi phí GAS nên giảm tương ứng.
GAS nên được thiết lập bởi quản trị on-chain và có thể được cấu hình một cách liền mạch.
GAS có thể ngăn chặn các cuộc tấn công DoS vào tài nguyên cố định của mạng và có thể nhanh chóng điều chỉnh theo tình hình mạng thông qua quản trị.
Giá GAS nên phản ánh tầm nhìn về sự tăng trưởng nhanh chóng và duy trì tính phổ biến của blockchain.
Khuyến khích đưa ra những lựa chọn xuất sắc trong thiết kế, chẳng hạn như ưu tiên an toàn, tính mô-đun và xác nhận.
phương pháp tính GAS
Người dùng cần chỉ định hai giá trị khi gửi giao dịch:
Trong quá trình thực hiện giao dịch sẽ thu phí:
Cuối cùng phí giao dịch = Tổng lượng GAS tiêu thụ × Đơn giá GAS
Ví dụ, một giao dịch tiêu tốn 670 đơn vị GAS, giá GAS do người dùng chỉ định là 100 Octa/đơn vị, thì phí cuối cùng là 670 × 100 = 67000 Octa = 0.00067 token gốc.
Nếu trong quá trình thực hiện giao dịch hết GAS, bên gửi sẽ bị tính phí theo lượng GAS tối đa, và tất cả các thay đổi sẽ bị hủy bỏ.
Chi tiết kế hoạch GAS
Giải pháp GAS bao gồm một số thành phần không liên quan đến một thao tác đơn lẻ, chẳng hạn như kích thước giao dịch và đơn vị GAS tối đa.
Phần lớn quy mô giao dịch ở mức kilobyte. Việc phát hành mô-đun Move có thể đạt vài kilobyte, trong khi một số khung khoảng 100KB. Mô-đun người dùng thường nằm trong khoảng từ 4KB đến 40KB. Quy mô giao dịch ban đầu được đặt là 32KB, sau đó điều chỉnh thành 64KB dựa trên phản hồi của cộng đồng để đơn giản hóa việc phát triển ứng dụng.
Giao dịch quá lớn sẽ làm tăng chi phí băng thông mạng và có thể ảnh hưởng đến hiệu suất. Để cân bằng quy mô và khả năng tiếp cận, bộ nhớ có thể bỏ qua các giao dịch quá lớn.
Đơn vị GAS tối đa trong kế hoạch GAS định nghĩa số lượng thao tác tối đa có thể thực hiện trong một giao dịch đơn lẻ. Điều này khác với lượng GAS tối đa mà người dùng chỉ định. Việc đặt quá cao có thể dẫn đến các vấn đề về hiệu suất, chẳng hạn như vòng lặp vô hạn. Hiện tại, ngay cả khi thực hiện nâng cấp khung quy mô tối đa, vẫn chỉ sử dụng chưa đến 90% đơn vị GAS tối đa (được đặt là 1,000,000).
Nhóm sử dụng khung tham chiếu và công cụ phân tích Valgrind để đánh giá chi phí thực thi, từ đó đưa ra chi phí tương đối của lệnh MOVE và hàm gốc. Bằng cách xem xét các mẫu mã nhằm nâng cao tính ổn định và an toàn của hệ thống, số lượng lệnh máy thực thi cuối cùng đã được xác định.
Kế hoạch lưu trữ GAS xem xét băng thông truy cập dữ liệu, dung lượng IOPS và chi phí lưu trữ vĩnh viễn. Truy cập bất kỳ mục trạng thái nào đều liên quan đến chi phí liên quan đến xác minh trạng thái blockchain. Công thức tính phí lưu trữ GAS là:
Lưu trữ phí GAS = Phí dự án + ( phí byte × Số byte )
Chi phí liên quan đến lưu trữ được đánh giá dựa trên mỗi giao dịch, ngay cả khi đọc/ghi cùng một tài nguyên nhiều lần, chỉ tính phí một lần.
Tham gia cộng đồng
Là một dự án cộng đồng, các thành viên có thể:
điều chỉnh chi phí GAS
GAS方案 như là lưu trữ cấu hình on-chain, có thể thay đổi thông qua đề xuất quản trị. Nó được thiết kế để mở rộng, cho phép nâng cấp thông qua quản trị. Theo sự tiến bộ của công nghệ và phản hồi từ người dùng, các tham số GAS có thể được điều chỉnh theo thời gian.
Các thay đổi phức tạp trong công thức GAS có thể yêu cầu cập nhật phần mềm nút, và được phân biệt thông qua các cờ đặc trưng GAS mới. Điều này cần sự chấp nhận rộng rãi phiên bản mới từ các nhà điều hành nút và được phê duyệt thông qua các đề xuất quản trị.
Công việc tương lai
Là khuôn khổ GAS đầu tiên của ngôn ngữ MOVE, thiết kế này đã đặt nền tảng cho công việc trong tương lai:
Giảm chi phí thực hiện: Thông qua việc cải thiện hiệu suất của trình biên dịch và máy ảo.
Tính toán GAS đa chiều: Cho phép người dùng chỉ định ngân sách riêng cho việc thực thi và lưu trữ, đạt được định nghĩa giá GAS tối đa chi tiết hơn.
Giảm thiểu tình trạng phình to: Khám phá khái niệm TTL của từng dự án, tự động xóa các mục trạng thái không được truy cập khi TTL hết hạn, nhằm khuyến khích các nhà phát triển dọn dẹp dữ liệu trên chuỗi.