Thiết kế Gas đầu tiên của ngôn ngữ MOVE: Phương pháp tính toán tiêu thụ Gas trên chuỗi Aptos
Đo lường Gas là khái niệm cơ bản trong Aptos và nhiều blockchain khác, nó xác định 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 xác định chi phí tiêu thụ cho tất cả các thực thi trên chuỗi, được sử dụng để tính toán chi phí Gas đã sử dụng 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 Aptos bao gồm:
Nguyên tắc định nghĩa
Chuẩn bị khung đánh giá, xác định giá cho từng lần thực hiện.
Xây dựng hệ thống đo Gas và đại số Gas an toàn cho MOVE
Nhập khung Gas upstream vào Aptos
Làm cho khung Gas có nhận thức về lưu trữ
Tiến hành cụ thể hóa kế hoạch Gas
Nguyên tắc
Các nguyên tắc được định nghĩa bao gồm:
Chi phí hoạt động nên có mối liên hệ trực tiếp với tài nguyên có sẵn của mạng. Sau khi cải tiến công nghệ và quy trình, chi phí Gas cần thiết nên giảm theo.
Gas nên được thiết lập bởi on-chain governance và có thể được cấu hình liền mạch.
Gas có thể ngăn chặn các cuộc tấn công DoS vào tập hợp tài nguyên cố định của mạng, có thể cần phải đ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 của Aptos phản ánh mong muốn tăng trưởng nhanh chóng và duy trì sự 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 tính an toàn, tính mô-đun, khẳng định, v.v.
Tính toán Gas
Người dùng cần chỉ định hai số lượng khi gửi giao dịch:
Số lượng Gas tối đa: Được đo bằng đơn vị Gas, số đơn vị Gas tối đa mà người dùng sẵn sàng chi trả để thực hiện giao dịch.
Đơn giá Gas: tính bằng số bát phân cho mỗi đơn vị Gas, 1 bát phân = 0.00000001 APT.
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 chi phí bổ sung cho giao dịch lớn.
Chi phí thực hiện: dùng để thực hiện lệnh MOVE
Đọc chi phí: dùng để đọc dữ liệu từ lưu trữ vĩnh viễn
Chi phí ghi: dùng để ghi dữ liệu vào lưu trữ vĩnh viễn
Cuối cùng, phí giao dịch có thể được tính bằng tổng số Gas đã tiêu thụ nhân với giá Gas đơn vị. Ví dụ, nếu 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ị, thì phí giao dịch cuối cùng sẽ là 670 * 100 = 67000 Octa = 0.00067 APT.
Nếu trong quá trình thực hiện giao dịch cạn kiệt Gas, bên gửi sẽ bị tính phí dựa trên lượng Gas tối đa, tất cả các thay đổi mà giao dịch đó thực hiện sẽ được khôi phục.
Thiết lập kế hoạch Gas
cấu hình cơ bản
Kế hoạch Gas có một số thành phần không liên quan đến chi tiết hoạt động đơn lẻ, bao gồm kích thước giao dịch và số đơn vị Gas tối đa.
quy mô giao dịch
Hầu hết kích thước giao dịch có thể ở mức kilobyte. Việc phát hành module Move có thể có vài nghìn byte, khung Aptos khoảng 100 KB. Kích thước module người dùng thường từ 4KB đến 40KB. Kích thước giao dịch ban đầu được đặt là 32KB, sau đó được điều chỉnh lên 64KB dựa trên phản hồi của cộng đồng.
Việc giao dịch quy mô rất lớn sẽ dẫn đến việc tăng chi phí băng thông mạng, có thể ảnh hưởng tiêu cực đến hiệu suất. Các pool bộ nhớ sẽ được khuyến khích bỏ qua các giao dịch có quy mô lớn hơn, do đó cần đạt được sự cân bằng giữa kích thước giao dịch lớn nhất và khả năng tiếp cậ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 mà một giao dịch có thể thực hiện. Điều này khác với lượng Gas tối đa mà người dùng chỉ định trong giao dịch. Việc đặt quá cao có thể dẫn đến ả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 tối đa, cũng chưa đạt 90% của đơn vị Gas tối đa trong kế hoạch Gas ( được đặt thành 1,000,000).
thực hiện
Để đánh giá chi phí thực thi, đã xây dựng một khung chuẩn và sử dụng Valgrind để phân tích MOVE VM. Đầu ra là một tập hợp mã nguồn có chú thích, hiển thị số lượng lệnh máy được tạo ra bởi mỗi dòng mã.
Dựa trên kết quả phân tích, ước tính chi phí tương đối của tất cả các lệnh MOVE và hàm gốc. Đã nhận thấy một số vấn đề với các hàm nội tuyến và đã giải quyết bằng cách cộng các số lại.
Xem xét các ví dụ mã hóa nhằm tăng cường tính ổn định và an toàn của hệ thống, hãy xác định số lượng lệnh máy thực thi cuối cùng. Số này sẽ được cân nhắc với dung lượng lưu trữ và đơn vị Gas tối đa, xác định giá trị hiện tại trong kế hoạch Gas.
lưu trữ
Khi các nút Aptos 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ữ bền vững, chúng sẽ gửi yêu cầu đọc hoặc ghi đến 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à khả năng IOPS của thiết bị lưu trữ. Truy cập dữ liệu là sự khan hiếm tức thời do người dùng cạnh tranh trên thị trường phí trong thời gian tải hệ thống. Chi phí chiếm dụng đĩa cho dữ liệu ghi là vĩnh viễn trên chuỗi.
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 ( cây Merkle Medusa liên quan đến việc xác thực toàn bộ trạng thái blockchain ). Chi phí này liên quan đến bản số của các mục trạng thái khác nhau. Cũng có một chi phí tỷ lệ thuận với kích thước của mỗi mục.
Lưu trữ Gas phí = item_fee + (byte_fee * bytes)
đọc, tạo và viết
Truy cập vào mục trạng thái được chia thành ba loại: đọc, tạo hoặc ghi. Truy cập sẽ bị tính phí theo phí mục và phí byte.
Hoạt động đọc là phổ biến nhất, chỉ bị giới hạn bởi sự khan hiếm tài nguyên tạm thời. Chi phí đọc được hiệu chỉnh dựa trên IOPS đĩa và dung lượng băng thông của phần cứng tham khảo.
Tạo là thêm mục mới vào lưu trữ trạng thái, tăng cường cấu trúc dữ liệu xác thực, chi phí cao nhất. Phí tạo được điều chỉnh dựa trên không gian đĩa tham chiếu mà mạng sở hữu.
Việc viết thao tác cập nhật các mục hiện có trong kho lưu trữ trạng thái sẽ không tạo ra chi phí bổ sung trong cấu trúc dữ liệu xác thực. Phí cho các byte trong mục cập nhật sẽ giống như khi tạo ra.
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 nhiều lần cùng một tài nguyên, chỉ cần thanh toán một lần phí.
Dựa trên các 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: Điều chỉnh theo băng thông thực tế
per_item_create: Điều chỉnh theo tổng 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í đơn vị Gas ổn định
Mỗi thao tác và giao dịch cần một chi phí đơn vị cố định liên quan đến chi phí lưu trữ và thực thi. Chi phí đơn vị Gas cố định giúp giữ cho kế hoạch Gas không thay đổi, tách rời khỏi giá trị thị trường tự do của APT. Nhóm Aptos thể hiện chi phí Gas 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 Aptos 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
Thực hiện bỏ phiếu cho các đề xuất quản trị liên quan đến Gas trên Aptos
Điều chỉnh chi phí Gas
Kế hoạch Gas được thiết lập như một lưu trữ cấu hình trên chuỗi, có thể được thay đổi thông qua các đề xuất quản trị Aptos và có thể thêm các lệnh hoặc tính năng gốc một cách liền mạch. Kế hoạch Gas được thiết kế để có khả năng mở rộng, cho phép nâng cấp thông qua các đề xuất quản trị. Khi Aptos và cộng đồng cải tiến Move VM và tiếp thu 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 của công thức Gas cần cập nhật phần mềm nút và phân biệt bằng các cờ đặc trưng Gas khác nhau. Cần phát hành phần mềm nút và được sử dụng rộng rãi, cuối cùng phát hành và phê duyệt đề xuất quản trị sử dụng phiên bản Gas mới.
Công việc tương lai
Với tư cách là khung Gas khả thi đầu tiên của MOVE, hướng công việc trong tương lai bao gồm:
Giảm chi phí thực hiện: 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ữ.
Giảm bớt 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 chưa đượ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.
20 thích
Phần thưởng
20
10
Đăng lại
Chia sẻ
Bình luận
0/400
FlashLoanKing
· 07-15 09:55
off-chain Kinh doanh chênh lệch giá cũng không tệ nhỉ
Xem bản gốcTrả lời0
FloorPriceWatcher
· 07-15 04:26
gas còn không bằng tăng lên đến trần ấy.
Xem bản gốcTrả lời0
SandwichDetector
· 07-14 16:16
Có chút rắc rối, tháng sau sẽ tối ưu lại rồi xem.
Xem bản gốcTrả lời0
DancingCandles
· 07-12 16:24
Thật sự không thấy move có gì đặc biệt~
Xem bản gốcTrả lời0
BlockDetective
· 07-12 16:22
move là vua độ nóng
Xem bản gốcTrả lời0
VitaliksTwin
· 07-12 16:21
move卷麻了
Trả lời0
CryptoComedian
· 07-12 16:16
Lại sắp phải chi tiêu lớn rồi, phí gas còn muốn chơi trò mới phải không?
MOVE ngôn ngữ đổi mới: Phân tích phương pháp tính toán tiêu thụ Gas trên chuỗi Aptos
Thiết kế Gas đầu tiên của ngôn ngữ MOVE: Phương pháp tính toán tiêu thụ Gas trên chuỗi Aptos
Đo lường Gas là khái niệm cơ bản trong Aptos và nhiều blockchain khác, nó xác định 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 xác định chi phí tiêu thụ cho tất cả các thực thi trên chuỗi, được sử dụng để tính toán chi phí Gas đã sử dụng 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 Aptos bao gồm:
Nguyên tắc
Các nguyên tắc được định nghĩa bao gồm:
Tính toán Gas
Người dùng cần chỉ định hai số lượng khi gửi giao dịch:
Trong quá trình thực hiện, giao dịch sẽ bị thu phí:
Cuối cùng, phí giao dịch có thể được tính bằng tổng số Gas đã tiêu thụ nhân với giá Gas đơn vị. Ví dụ, nếu 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ị, thì phí giao dịch cuối cùng sẽ là 670 * 100 = 67000 Octa = 0.00067 APT.
Nếu trong quá trình thực hiện giao dịch cạn kiệt Gas, bên gửi sẽ bị tính phí dựa trên lượng Gas tối đa, tất cả các thay đổi mà giao dịch đó thực hiện sẽ được khôi phục.
Thiết lập kế hoạch Gas
cấu hình cơ bản
Kế hoạch Gas có một số thành phần không liên quan đến chi tiết hoạt động đơn lẻ, bao gồm kích thước giao dịch và số đơn vị Gas tối đa.
quy mô giao dịch
Hầu hết kích thước giao dịch có thể ở mức kilobyte. Việc phát hành module Move có thể có vài nghìn byte, khung Aptos khoảng 100 KB. Kích thước module người dùng thường từ 4KB đến 40KB. Kích thước giao dịch ban đầu được đặt là 32KB, sau đó được điều chỉnh lên 64KB dựa trên phản hồi của cộng đồng.
Việc giao dịch quy mô rất lớn sẽ dẫn đến việc tăng chi phí băng thông mạng, có thể ảnh hưởng tiêu cực đến hiệu suất. Các pool bộ nhớ sẽ được khuyến khích bỏ qua các giao dịch có quy mô lớn hơn, do đó cần đạt được sự cân bằng giữa kích thước giao dịch lớn nhất và khả năng tiếp cậ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 mà một giao dịch có thể thực hiện. Điều này khác với lượng Gas tối đa mà người dùng chỉ định trong giao dịch. Việc đặt quá cao có thể dẫn đến ả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 tối đa, cũng chưa đạt 90% của đơn vị Gas tối đa trong kế hoạch Gas ( được đặt thành 1,000,000).
thực hiện
Để đánh giá chi phí thực thi, đã xây dựng một khung chuẩn và sử dụng Valgrind để phân tích MOVE VM. Đầu ra là một tập hợp mã nguồn có chú thích, hiển thị số lượng lệnh máy được tạo ra bởi mỗi dòng mã.
Dựa trên kết quả phân tích, ước tính chi phí tương đối của tất cả các lệnh MOVE và hàm gốc. Đã nhận thấy một số vấn đề với các hàm nội tuyến và đã giải quyết bằng cách cộng các số lại.
Xem xét các ví dụ mã hóa nhằm tăng cường tính ổn định và an toàn của hệ thống, hãy xác định số lượng lệnh máy thực thi cuối cùng. Số này sẽ được cân nhắc với dung lượng lưu trữ và đơn vị Gas tối đa, xác định giá trị hiện tại trong kế hoạch Gas.
lưu trữ
Khi các nút Aptos 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ữ bền vững, chúng sẽ gửi yêu cầu đọc hoặc ghi đến 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à khả năng IOPS của thiết bị lưu trữ. Truy cập dữ liệu là sự khan hiếm tức thời do người dùng cạnh tranh trên thị trường phí trong thời gian tải hệ thống. Chi phí chiếm dụng đĩa cho dữ liệu ghi là vĩnh viễn trên chuỗi.
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 ( cây Merkle Medusa liên quan đến việc xác thực toàn bộ trạng thái blockchain ). Chi phí này liên quan đến bản số của các mục trạng thái khác nhau. Cũng có một chi phí tỷ lệ thuận với kích thước của mỗi mục.
Lưu trữ Gas phí = item_fee + (byte_fee * bytes)
đọc, tạo và viết
Truy cập vào mục trạng thái được chia thành ba loại: đọc, tạo hoặc ghi. Truy cập sẽ bị tính phí theo phí mục và phí byte.
Hoạt động đọc là phổ biến nhất, chỉ bị giới hạn bởi sự khan hiếm tài nguyên tạm thời. Chi phí đọc được hiệu chỉnh dựa trên IOPS đĩa và dung lượng băng thông của phần cứng tham khảo.
Tạo là thêm mục mới vào lưu trữ trạng thái, tăng cường cấu trúc dữ liệu xác thực, chi phí cao nhất. Phí tạo được điều chỉnh dựa trên không gian đĩa tham chiếu mà mạng sở hữu.
Việc viết thao tác cập nhật các mục hiện có trong kho lưu trữ trạng thái sẽ không tạo ra chi phí bổ sung trong cấu trúc dữ liệu xác thực. Phí cho các byte trong mục cập nhật sẽ giống như khi tạo ra.
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 nhiều lần cùng một tài nguyên, chỉ cần thanh toán một lần phí.
Dựa trên các cân nhắc trên, đã định nghĩa 6 tham số Gas:
Chi phí đơn vị Gas ổn định
Mỗi thao tác và giao dịch cần một chi phí đơn vị cố định liên quan đến chi phí lưu trữ và thực thi. Chi phí đơn vị Gas cố định giúp giữ cho kế hoạch Gas không thay đổi, tách rời khỏi giá trị thị trường tự do của APT. Nhóm Aptos thể hiện chi phí Gas 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 Aptos có thể:
Điều chỉnh chi phí Gas
Kế hoạch Gas được thiết lập như một lưu trữ cấu hình trên chuỗi, có thể được thay đổi thông qua các đề xuất quản trị Aptos và có thể thêm các lệnh hoặc tính năng gốc một cách liền mạch. Kế hoạch Gas được thiết kế để có khả năng mở rộng, cho phép nâng cấp thông qua các đề xuất quản trị. Khi Aptos và cộng đồng cải tiến Move VM và tiếp thu 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 của công thức Gas cần cập nhật phần mềm nút và phân biệt bằng các cờ đặc trưng Gas khác nhau. Cần phát hành phần mềm nút và được sử dụng rộng rãi, cuối cùng phát hành và phê duyệt đề xuất quản trị sử dụng phiên bản Gas mới.
Công việc tương lai
Với tư cách là khung Gas khả thi đầu tiên của MOVE, hướng công việc trong tương lai bao gồm: