Gas và Phí

Khi gửi một tin nhắn tới mạng, một lượng cụ thể token Venom phải được đính kèm. Điều này được sử dụng để bồi thường cho các nhà xác thực cho công việc của họ, chi phí lưu trữ tin nhắn trên mạng và bất kỳ số dư còn lại được trả lại như tiền thừa.

Hệ thống này phục vụ nhiều mục đích:

  1. Khuyến khích các nhà xác thực đảm bảo mạng chạy mượt mà, thực hiện các tính toán giao dịch và lưu trữ dữ liệu hợp đồng trên các nút của họ.

  2. Hạn chế khả năng gửi spam đến mạng và ngăn chặn các bên độc hại cố gắng làm chậm nó.

Có một số đặc điểm quan trọng của phí:

Chi phí cho mỗi đơn vị gas trên mạng là cố định và được đề ra trong cấu hình toàn cục, chỉ có thể được sửa đổi bằng sự nhất trí của các validator.

GIÁ GAS TRÊN MẠNG Hiện nay, một đơn vị gas trên mạng có giá là 100 nanoVENOM.

Mạng cũng tính phí lưu trữ dữ liệu cho tất cả các thông điệp trong toàn bộ thời gian tồn tại của chúng trên mạng.

Phí commission luôn được trừ từ số dư của hợp đồng, vì các thông điệp bên ngoài không thể chuyển giá trị được.

Người dùng quyết định bao nhiêu VENOM để đính kèm là phí thanh toán từ tài khoản hợp đồng của họ cho cuộc gọi. Giá trị đính kèm là giới hạn trên cho chi phí thực hiện chuỗi cuộc gọi. Thông thường, DApp sẽ tự động đề xuất một giá trị khuyến nghị cho người dùng.

Tính phí

Như chúng ta đã biết từ bài viết Thông điệp và Giao dịch, có nhiều giai đoạn trong quá trình thực hiện giao dịch. Mỗi giai đoạn liên quan đến loại phí riêng của nó.

Phí tin nhắn bên ngoài đầu vào: là loại phí không liên quan đến các giai đoạn thực hiện giao dịch được mô tả. Phí này được tính khi một giao dịch được khởi tạo bằng một tin nhắn bên ngoài, như một khoản phí cho việc gửi tin nhắn (phí chuyển tiếp tin nhắn).

Phí trong ngữ cảnh các giai đoạn thực thi:

Lưu trữ: liên quan đến khoản phí lưu trữ (Storage fee) và tính phí để lưu trữ hợp đồng và dữ liệu liên quan.

Credit: giai đoạn duy nhất không liên quan đến việc tính phí.

Tính toán: tính phí (Gas fee) cho các phép tính được thực hiện trong tài khoản được gọi (hợp đồng).

Hành động: mỗi tin nhắn đi ra từ hợp đồng, cả bên ngoài và bên trong, đều phải trả phí (Action fee) như một khoản phí cho việc gửi tin nhắn.

Bounce: trong trường hợp xảy ra lỗi, một ngoại lệ sẽ được tạo ra và một tin nhắn đi ra bên trong sẽ được lấy và phải trả một khoản phí như một khoản phí cho việc gửi tin nhắn.

Kết quả, công thức tính phí giao dịch như sau:

transaction_fee = inbound_external_message_fee
                + storage_fees                    // Storage
                + gas_fees                        // Compute
                + total_action_fees               // Action
                + outbound_internal_messages_fee  // Action + Bounce

Phí tin nhắn bên ngoài nhận vào

Khi một tin nhắn bên ngoài được nhập vào để thực thi giao dịch, một khoản phí được tính toán và trả cho các validator hiện tại bằng công thức phí chuyển tiếp tiêu chuẩn. Khoản phí này được gọi là phí hành động (action fee).

Phí chuyển tiếp tin nhắn

Công thức này đại diện cho tổng phí để chuyển tiếp một tin nhắn, được tính bằng cách cộng thêm lump_price với giá để chuyển tiếp các bitscells của tin nhắn. Giá để chuyển tiếp các bitscells của tin nhắn được tính bằng cách nhân giá trên mỗi bit với số bit trong tin nhắn, và giá trên mỗi cell với số cell trong tin nhắn. Kết quả cuối cùng sẽ được làm tròn lên đến số nguyên gần nhất.

Các giá trị của bitscells được suy ra từ tree of cells representation của tin nhắn, với root cell không được tính vào.

Các giá trị lump_price, bit_price, và cell_price được tìm thấy trong các tham số cấu hình toàn cục p24p25, và chỉ có thể được thay đổi bằng cách bỏ phiếu của các validator.

Phí lưu trữ

Như đã đề cập trước đó, trong Venom, mỗi giao dịch có một giai đoạn lưu trữ mà gây ra một khoản phí lưu trữ được tính vào tài khoản. Phí này được tính bằng cách sử dụng công thức sau và được tính cho thời gian giữa các giao dịch:

Các khoản phí lưu trữ được tính bằng cách nhân số bits bằng giá bit toàn cầu và số cells bằng giá cell toàn cầu. Kết quả này sau đó được nhân với giá trị period.

Cuối cùng, kết quả được làm tròn lên đến số nguyên gần nhất.

Trong đó:

bits and cells: đại diện cho số bit và cell trong cấu trúc Account, được biểu diễn dưới dạng cây cell (bao gồm cả mã và dữ liệu).

global_bit_price: một tham số cấu hình toàn cục (p18 cho cả masterchain và workchains), là giá cho việc lưu trữ một bit.

global_cell_price: một tham số cấu hình toàn cục khác (p18 cho cả masterchain và workchains), là giá cho việc lưu trữ một cell.

period: số giây kể từ lần thanh toán phí lưu trữ trước đó.

Phí Gas

Đối với hầu hết các nguyên tố, phí gas được tính bằng công thức sau:

Pb:=10+bPb:=10+b

Trong đó b là độ dài lệnh trong bit

Phí gas chỉ áp dụng nếu giai đoạn tính toán TVM được khởi tạo cho một giao dịch. Nếu giai đoạn tính toán không được khởi tạo, các khoản phí này có thể bị bỏ qua.

Phí Hành động

Phí Hành động được sử dụng để bao gồm chi phí thực hiện các hành động send message. Các khoản phí này bao gồm tất cả các khoản phí cho các thông điệp gửi đi bên ngoài, cũng như một phần phí cho các thông điệp gửi đi bên trong đầu tiên. Công thức tính Phí Hành động như sau:

  • total_out_ext_msg_fwd_fee: tổng của các phí chuyển tiếp ngầm định cho tất cả các tin nhắn bên ngoài đi ra.

  • total_int_msg_mine_fee: tổng của các phần phí 'mine' cho các tin nhắn nội bộ đi ra.

Phí hành động có thể không có nếu không có hành động nào được thực hiện trong giao dịch.

Các tin nhắn đi ra

Phí outbound_internal_messages_fee được xác định bằng cách cộng tổng các phí cho mỗi tin nhắn nội bộ đi ra được tạo ra như một kết quả của việc thực thi giao dịch.

Trong đó, n là số lượng các tin nhắn nội bộ đi ra.

Last updated