Thiết kế GAS đầu tiên của ngôn ngữ MOVE: Phân tích phương pháp tính phí GAS trên chuỗi
Phiên bản trước của ngôn ngữ MOVE dự kiến sẽ hoạt động mà không cần GAS, do đó không chuẩn bị cho cơ chế GAS. Gần đây, một dự án blockchain đã ra mắt kế hoạch thiết kế GAS đầu tiên cho ngôn ngữ MOVE của nó, điều này được chính thức gọi là "một cuộc phiêu lưu".
Kế hoạch GAS của dự án làm rõ các nguyên tắc, quy trình, phương pháp tính toán, cơ chế điều chỉnh sau này, cũng như thái độ tiếp nhận đề xuất từ cộng đồng. Đo lường GAS là khái niệm cơ bản của chuỗi khối này và nhiều chuỗi khối khác, nó định nghĩa 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ữ các giao dịch trên chuỗi. Kế hoạch GAS sẽ xác định chi phí tiêu thụ trong tất cả các 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 hiệu quả, quy trình trên chuỗi của dự án là:
Định nghĩa nguyên tắc
Chuẩn bị khung đánh giá, xác định giá của mỗi lần thực hiện
Thiết lập hệ thống đo lường GAS và đại số GAS an toàn cho MOVE
Nhập khung GAS upstream
Tăng cường ý thức lưu trữ cho khung GAS
Tiến hành chi tiết hóa kế hoạch GAS
Nguyên tắc
Các nguyên tắc được định nghĩa bởi dự án bao gồm:
Chi phí hoạt động nên liên quan trực tiếp đến 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à sử dụng không gian. Khi công nghệ và quy trình được cải tiến, chi phí GAS cần thiết nên giảm theo.
GAS nên được thiết lập bởi quản trị trên chuỗi 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, có thể cần điều chỉnh nhanh chóng thông qua các đề xuất quản trị dựa trên tình hình mạng.
Giá GAS phản ánh tầm nhìn về sự tăng trưởng nhanh chóng và duy trì sự phổ biến của blockchain.
Khuyến khích đưa ra lựa chọn chất lượng trong thiết kế, chẳng hạn như ưu tiên về an toàn, tính mô-đun, tuyên bố, v.v.
Tính GAS
Người dùng khi gửi giao dịch, cần chỉ định hai số lượng trong giao dịch:
Số lượng GAS tối đa: Được đo bằng đơn vị GAS, biểu thị số đơn vị GAS tối đa mà người dùng sẵn sàng chi cho việc thực hiện giao dịch.
Giá GAS: Tính theo hệ bát phân cho mỗi đơn vị GAS, 1 bát phân = 0.00000001 token địa phương.
Trong quá trình thực hiện, giao dịch sẽ bị thu phí:
Chi phí cố định: Cơ sở cố định cộng với phí bổ sung cho giao dịch lớn.
Chi phí thực hiện: Dùng để thực hiện lệnh MOVE.
Chi phí đọc: được sử dụng để đọc dữ liệu từ bộ nhớ lâu dài.
Chi phí ghi: dùng để ghi dữ liệu vào lưu trữ lâu dài.
Cách tính phí giao dịch cuối cùng là: tổng lượng GAS tiêu tốn nhân với giá GAS trên mỗi đơn vị. Ví dụ, một giao dịch tiêu tốn 670 đơn vị GAS, giá GAS mà người dùng chỉ định là 100 Octa mỗi đơn vị, vậy phí giao dịch cuối cùng là 670 * 100 = 67000 Octa = 0.00067 mã thông báo địa phương.
Nếu trong quá trình thực hiện giao dịch mà GAS bị cạn kiệt, bên gửi sẽ bị tính phí theo lượng GAS tối đa, và tất cả các thay đổi mà giao dịch đã thực hiện sẽ được khôi phục.
Lập kế hoạch GAS
1. Cấu hình cơ bản
Kế hoạch GAS bao gồm một số thành phần không liên quan đến chi tiết của 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.
2. Quy mô giao dịch
Hầu hết quy mô giao dịch trong mức kilobyte. Việc phát hành mô-đun MOVE có thể đạt vài kilobyte, trong khi khung khoảng 100 KB. Kích thước mô-đun người dùng thường nằm giữa 4KB và 40KB. Quy mô giao dịch ban đầu được đặt là 32KB, sau đó điều chỉnh thành 64KB theo nhu cầu của cộng đồng để đơn giản hóa phát triển ứng dụng.
Giao dịch quy mô 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 kích thước và khả năng truy cập của giao dịch quy mô tối đa, bộ nhớ có thể bỏ qua các giao dịch lớn hơn.
3. Đơn vị GAS tối đa
Đơn vị GAS tối đa trong kế hoạch GAS định nghĩa lượng thao tác tối đa có thể thực hiện trong một giao dịch đơn lẻ. Việc đặt quá cao có thể ảnh hưởng tiêu cực đến hiệu suất của blockchain. Ngay cả khi thực hiện nâng cấp khung lớn nhất, vẫn chưa đạt 90% đơn vị GAS tối đa trong kế hoạch GAS (được thiết lập là 1.000.000).
4. Thực hiện
Khi đánh giá chi phí thực hiện, một khung tham chiếu đã được xây dựng và công cụ phân tích đã được sử dụng để phân tích Move VM. Thông qua phân tích, ước tính chi phí tương đối của tất cả các lệnh Move và các hàm gốc đã được đưa ra. Sau khi xem xét các mẫu mã hóa nhằm tăng cường tính ổn định và an toàn của hệ thống, số lượng lệnh máy thực hiện cuối cùng đã được xác định và được cân nhắc với bộ nhớ và đơn vị GAS tối đa, từ đó đưa ra giá trị hiện tại trong kế hoạch GAS.
5. Lưu trữ
Khi truy cập các mục trạng thái sổ cái hoặc dữ liệu được lưu trữ trong lưu trữ lâu dài, nút sẽ phát ra yêu cầu đọc hoặc ghi tới thiết bị lưu trữ. Tổng số lần truy cập dữ liệu mỗi giây phụ thuộc vào băng thông và dung lượng IOPS của thiết bị lưu trữ. Kế hoạch lưu trữ GAS đã xem xét các chi phí này.
Việc truy cập và lưu trữ bất kỳ mục trạng thái nào sẽ phát sinh chi phí liên quan đến cấu trúc dữ liệu xác minh trạng thái toàn bộ blockchain. Chi phí này liên quan đến cơ sở của các mục trạng thái khác nhau. Còn có một chi phí tỷ lệ thuận với kích thước của mỗi mục.
Chi phí lưu trữ GAS = item_fee + (byte_fee * bytes)
đọc, tạo và viết
Truy cập mục trạng thái được chia thành ba loại: đọc, tạo hoặc ghi. Hoạt động đọc là phổ biến nhất và chỉ bị giới hạn bởi sự khan hiếm tài nguyên tạm thời. Hoạt động tạo thêm mục mới vào kho lưu trữ trạng thái, có chi phí cao nhất. Hoạt động ghi cập nhật mục hiện có trong kho lưu trữ trạng thái.
Dựa trên những cân nhắc trên, đã định nghĩa 6 tham số GAS:
per_item_read:Điều chỉnh theo IOPs
per_byte_read:calib theo băng thông thực tế
per_item_create:Điều chỉnh theo tổng số dự án mục tiêu
per_byte_create:Điều chỉnh theo kích thước tổng mục tiêu
per_item_write:giống như per_item_read
per_byte_write: giống như per_byte_create
chi phí GAS ổn định
Mỗi thao tác và giao dịch cần một chi phí đơn vị cố định tương ứng với chi phí lưu trữ và thực thi. Chi phí đơn vị GAS cố định giúp duy trì kế hoạch GAS không thay đổi và tách biệt với giá trị thị trường của token địa phương. Đơn vị GAS được biểu thị với độ chính xác khoảng 3 chữ số, chi phí giao dịch chuyển khoản khoảng 700 đơn vị GAS.
Tham gia cộng đồng
Các thành viên trong cộng đồng có thể:
Tìm ra những điểm không hợp lý trong kế hoạch GAS
Bày tỏ lo ngại về kế hoạch GAS, tham gia thảo luận cộng đồng
Tiến hành bỏ phiếu cho các đề xuất quản trị liên quan đến GAS
Điều chỉnh chi phí GAS
Kế hoạch GAS được thiết kế như một lưu trữ cấu hình on-chain, có thể được thay đổi thông qua các đề xuất quản trị, và có thể thêm các lệnh hoặc chức năng gốc một cách liền mạch. Thiết kế kế hoạch GAS có thể mở rộng, cho phép nâng cấp thông qua các đề xuất quản trị. Với việc cải tiến liên tục và tiếp nhận 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ần cập nhật phần mềm nút cho những thay đổi phức tạp của công thức GAS, và được nhiều nhà điều hành nút áp dụng. Cuối cùng, phải công bố và phê duyệt đề xuất quản trị để có thể sử dụng phiên bản GAS mới.
Công việc tương lai
Là khung GAS khả thi đầu tiên của MOVE, dự án này đã mở đường cho công việc trong tương lai:
Giảm chi phí thực thi: 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 hiện và lưu trữ.
Giảm tình trạng cồng kềnh: Khám phá khái niệm TTL của từng dự án, xóa các mục trạng thái không được truy cập khi TTL hết hạn.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
19 thích
Phần thưởng
19
6
Chia sẻ
Bình luận
0/400
ShibaMillionairen't
· 07-24 00:05
啥费用不费用 就是 đồ ngốc 交钱呗
Xem bản gốcTrả lời0
SatoshiHeir
· 07-21 20:58
Hừm, thiết kế của MOVE rõ ràng đã sao chép trang 127 của sách vàng Ethereum.
Xem bản gốcTrả lời0
GasWaster
· 07-21 01:29
một ngày nữa, một tối ưu hóa gas khác... giết tôi ngay bây giờ
Xem bản gốcTrả lời0
GasGrillMaster
· 07-21 01:26
Thanh toán di động đã đến, còn chơi cái này nữa à?
Cơ chế GAS do ngôn ngữ MOVE sáng tạo: Phân tích toàn bộ chi phí 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 phí GAS trên chuỗi
Phiên bản trước của ngôn ngữ MOVE dự kiến sẽ hoạt động mà không cần GAS, do đó không chuẩn bị cho cơ chế GAS. Gần đây, một dự án blockchain đã ra mắt kế hoạch thiết kế GAS đầu tiên cho ngôn ngữ MOVE của nó, điều này được chính thức gọi là "một cuộc phiêu lưu".
Kế hoạch GAS của dự án làm rõ các nguyên tắc, quy trình, phương pháp tính toán, cơ chế điều chỉnh sau này, cũng như thái độ tiếp nhận đề xuất từ cộng đồng. Đo lường GAS là khái niệm cơ bản của chuỗi khối này và nhiều chuỗi khối khác, nó định nghĩa 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ữ các giao dịch trên chuỗi. Kế hoạch GAS sẽ xác định chi phí tiêu thụ trong tất cả các 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 hiệu quả, quy trình trên chuỗi của dự án là:
Nguyên tắc
Các nguyên tắc được định nghĩa bởi dự án bao gồm:
Tính GAS
Người dùng khi gửi giao dịch, cần chỉ định hai số lượng trong giao dịch:
Trong quá trình thực hiện, giao dịch sẽ bị thu phí:
Cách tính phí giao dịch cuối cùng là: tổng lượng GAS tiêu tốn nhân với giá GAS trên mỗi đơn vị. Ví dụ, một giao dịch tiêu tốn 670 đơn vị GAS, giá GAS mà người dùng chỉ định là 100 Octa mỗi đơn vị, vậy phí giao dịch cuối cùng là 670 * 100 = 67000 Octa = 0.00067 mã thông báo địa phương.
Nếu trong quá trình thực hiện giao dịch mà GAS bị cạn kiệt, bên gửi sẽ bị tính phí theo lượng GAS tối đa, và tất cả các thay đổi mà giao dịch đã thực hiện sẽ được khôi phục.
Lập kế hoạch GAS
1. Cấu hình cơ bản
Kế hoạch GAS bao gồm một số thành phần không liên quan đến chi tiết của 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.
2. Quy mô giao dịch
Hầu hết quy mô giao dịch trong mức kilobyte. Việc phát hành mô-đun MOVE có thể đạt vài kilobyte, trong khi khung khoảng 100 KB. Kích thước mô-đun người dùng thường nằm giữa 4KB và 40KB. Quy mô giao dịch ban đầu được đặt là 32KB, sau đó điều chỉnh thành 64KB theo nhu cầu của cộng đồng để đơn giản hóa phát triển ứng dụng.
Giao dịch quy mô 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 kích thước và khả năng truy cập của giao dịch quy mô tối đa, bộ nhớ có thể bỏ qua các giao dịch lớn hơn.
3. Đơn vị GAS tối đa
Đơn vị GAS tối đa trong kế hoạch GAS định nghĩa lượng thao tác tối đa có thể thực hiện trong một giao dịch đơn lẻ. Việc đặt quá cao có thể ảnh hưởng tiêu cực đến hiệu suất của blockchain. Ngay cả khi thực hiện nâng cấp khung lớn nhất, vẫn chưa đạt 90% đơn vị GAS tối đa trong kế hoạch GAS (được thiết lập là 1.000.000).
4. Thực hiện
Khi đánh giá chi phí thực hiện, một khung tham chiếu đã được xây dựng và công cụ phân tích đã được sử dụng để phân tích Move VM. Thông qua phân tích, ước tính chi phí tương đối của tất cả các lệnh Move và các hàm gốc đã được đưa ra. Sau khi xem xét các mẫu mã hóa nhằm tăng cường tính ổn định và an toàn của hệ thống, số lượng lệnh máy thực hiện cuối cùng đã được xác định và được cân nhắc với bộ nhớ và đơn vị GAS tối đa, từ đó đưa ra giá trị hiện tại trong kế hoạch GAS.
5. Lưu trữ
Khi truy cập các mục trạng thái sổ cái hoặc dữ liệu được lưu trữ trong lưu trữ lâu dài, nút sẽ phát ra yêu cầu đọc hoặc ghi tới thiết bị lưu trữ. Tổng số lần truy cập dữ liệu mỗi giây phụ thuộc vào băng thông và dung lượng IOPS của thiết bị lưu trữ. Kế hoạch lưu trữ GAS đã xem xét các chi phí này.
Việc truy cập và lưu trữ bất kỳ mục trạng thái nào sẽ phát sinh chi phí liên quan đến cấu trúc dữ liệu xác minh trạng thái toàn bộ blockchain. Chi phí này liên quan đến cơ sở của các mục trạng thái khác nhau. Còn có một chi phí tỷ lệ thuận với kích thước của mỗi mục.
Chi phí lưu trữ GAS = item_fee + (byte_fee * bytes)
đọc, tạo và viết
Truy cập mục trạng thái được chia thành ba loại: đọc, tạo hoặc ghi. Hoạt động đọc là phổ biến nhất và chỉ bị giới hạn bởi sự khan hiếm tài nguyên tạm thời. Hoạt động tạo thêm mục mới vào kho lưu trữ trạng thái, có chi phí cao nhất. Hoạt động ghi cập nhật mục hiện có trong kho lưu trữ trạng thái.
Dựa trên những cân nhắc trên, đã định nghĩa 6 tham số GAS:
chi phí GAS ổn định
Mỗi thao tác và giao dịch cần một chi phí đơn vị cố định tương ứng với chi phí lưu trữ và thực thi. Chi phí đơn vị GAS cố định giúp duy trì kế hoạch GAS không thay đổi và tách biệt với giá trị thị trường của token địa phương. Đơn vị GAS được biểu thị với độ chính xác khoảng 3 chữ số, chi phí giao dịch chuyển khoản khoảng 700 đơn vị GAS.
Tham gia cộng đồng
Các thành viên trong cộng đồng có thể:
Điều chỉnh chi phí GAS
Kế hoạch GAS được thiết kế như một lưu trữ cấu hình on-chain, có thể được thay đổi thông qua các đề xuất quản trị, và có thể thêm các lệnh hoặc chức năng gốc một cách liền mạch. Thiết kế kế hoạch GAS có thể mở rộng, cho phép nâng cấp thông qua các đề xuất quản trị. Với việc cải tiến liên tục và tiếp nhận 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ần cập nhật phần mềm nút cho những thay đổi phức tạp của công thức GAS, và được nhiều nhà điều hành nút áp dụng. Cuối cùng, phải công bố và phê duyệt đề xuất quản trị để có thể sử dụng phiên bản GAS mới.
Công việc tương lai
Là khung GAS khả thi đầu tiên của MOVE, dự án này đã mở đường cho công việc trong tương lai: