Klaytn Docs Archive VN
  • Tài liệu của Klaytn
  • -
    • Tổng quan về Klaytn
      • Tại sao nên chọn Klaytn
      • Thiết kế của Klaytn
        • Cơ chế đồng thuận
        • Tài khoản
        • Giao dịch
          • Cơ bản
          • Ủy thác phí
          • Ủy thác phí một phần
          • Ethereum
        • Tính toán
          • Hợp đồng thông mình Klaytn
          • Mô hình thực thi
          • Chi phí tính toán
            • Chi phí tính toán (Các tài liệu trước)
          • Máy ảo Klaytn
            • Máy ảo Klaytn (Các tài liệu trước)
        • Lưu trữ
        • Phí giao dịch
          • Phí giao dịch (Các tài liệu trước)
        • Đồng tiền mặc định của Klaytn - KLAY
        • Nền kinh tế token
        • Quản trị
        • Đa kênh
        • KNI
      • Các giải pháp mở rộng
    • Bắt đầu
      • Triển khai hợp đồng thông minh bằng Foundry
      • Triển khai hợp đồng thông minh bằng Hardhat
      • Triển khai hợp đồng thông minh bằng KEN
        • Khởi chạy nút điểm cuối
        • Nạp tiền vào tài khoản
        • Cài đặt các công cụ phát triển
        • Triển khai hợp đồng thông minh
        • Kiểm tra quy trình triển khai
        • Quản lý tài khoản
          • Tạo tài khoản
          • Quản lý tài khoản
      • Môi trường phát triển
      • Nhận KLAY
    • Hợp đồng thông minh
      • Solidity - Ngôn ngữ của hợp đồng thông minh
      • Hợp đồng đã lập trước
        • Hợp đồng đã lập trước (Các tài liệu trước)
      • IDE và công cụ
        • Truffle
      • Hợp đồng mẫu
        • KlaytnGreeter
        • ERC-20
          • 1. Soạn hợp đồng thông minh ERC-20
          • 2. Triển khai hợp đồng thông minh
          • 3. Tương tác với token ERC-20 từ Ví Klaytn
        • ERC-721
          • 1. Soạn hợp đồng thông minh ERC-721
          • 2. Triển khai hợp đồng thông minh
      • Hướng dẫn kiểm thử
      • Hướng dẫn triển khai
      • Token tương thích Klaytn
      • Di chuyển hợp đồng Ethereum
    • Chạy một Node
      • Triển khai
        • Nút điểm cuối
          • Yêu cầu hệ thống
          • Hướng dẫn cài đặt
            • Tải xuống
            • Hướng dẫn cài đặt
            • Cấu hình
            • Khởi động EN
            • Thử việc cài đặt
          • các lệnh CLI ken
          • API JSON-RPC
        • Core Cell
          • Yêu cầu hệ thống
          • Cấu hình mạng
          • Hướng dẫn cài đặt
            • Tải xuống
            • Trước khi cài đặt
            • Thiết lập nút đồng thuận
              • Hướng dẫn cài đặt
              • Cấu hình
              • Khởi động CN
            • Thiết lập nút proxy
              • Hướng dẫn cài đặt
              • Cấu hình
              • Khởi động PN
            • Kiểm tra Core Cell
          • Giám sát thiết lập
          • Thiết lập H/A
        • Chuỗi dịch vụ
          • Bắt đầu
            • Thiết lập chuỗi dịch vụ 4 nút
            • Kết nối với Baobab
            • Chuyển giá trị chuỗi chéo
            • HA (Tính sẵn sàng cao) dành cho Chuỗi dịch vụ
            • Chuỗi dịch vụ lồng nhau
            • Chuyển giá trị giữa các chuỗi dịch vụ kết nối
          • Hướng dẫn sử dụng tham chiếu
            • Yêu cầu hệ thống
            • Tải xuống
            • Hướng dẫn sử dụng SCN
              • Cài đặt
              • Cấu hình
              • Bắt đầu/dừng SCN
              • Kiểm tra trạng thái nút
              • các lệnh kscn
              • các lệnh homi
            • Hướng dẫn sử dụng SPN/SEN
              • Cài đặt
              • Cấu hình
              • Bắt đầu/dừng nút
              • Kiểm tra trạng thái nút
            • Cấu hình cầu nối
            • Neo
            • Neo KAS
            • Chuyển giá trị
            • Tập tin cấu hình
            • Tập tin bản ghi
            • Genesis JSON
            • Nâng cấp & Nâng cấp căn bản
          • Hướng dẫn sử dụng
        • Tải Về Các Gói Dịch Vụ
          • v1.11.1
          • v1.11.0
          • v1.10.2
          • v1.10.1
          • v1.10.0
          • v1.9.1
          • v1.9.0
          • v1.8.4
          • v1.8.3
          • v1.8.2
          • v1.8.1
          • v1.8.0
          • v1.7.3
          • v1.7.2
          • v1.7.1
          • v1.7.0
          • v1.6.4
          • v1.6.3
          • v1.6.2
          • v1.6.1
          • v1.6.0
          • v1.5.3
          • v1.5.2
          • v1.5.1
          • v1.5.0
          • v1.4.2
          • v1.4.1
          • v1.4.0
          • v1.3.0
          • v1.2.0
          • v1.1.1
          • v1.0.0
          • v0.9.6
          • v0.8.2
    • Hướng dẫn hoạt động
      • Cấu hình
      • Nhật ký nút
      • Ghi bản ghi hoạt động
      • Lỗi & xử lý sự cố
      • Lệnh Klaytn
      • Thay đổi dữ liệu chuỗi
      • Di chuyển dữ liệu chuỗi
    • dApp Developers
      • API JSON-RPC
        • Tham chiếu API
          • eth
            • Cảnh báo
            • Tài khoản
            • Khối
            • Giao dịch
            • Cấu hình
            • Bộ lọc
            • Gas
            • Khác
          • klay
            • Tài khoản
            • Khối
            • Giao dịch
              • Làm việc với các loại giao dịch của Klaytn
            • Cấu hình
            • Bộ lọc
            • Gas
            • Khác
          • net
          • gỡ lỗi
            • Ghi bản ghi
            • Tạo hồ sơ
            • Theo dõi thời gian chạy
            • Gỡ lỗi thời gian chạy
            • Theo dõi VM
            • Theo dõi tiêu chuẩn VM
            • Kiểm tra chuỗi khối
          • quản trị viên
          • cá nhân
          • txpool
          • quản trị
        • Tham chiếu API chuỗi dịch vụ
          • cầu nối chính
          • cầu nối phụ
        • Mã lỗi giao dịch
      • Nhà cung cấp dịch vụ RPC
        • Điểm cuối công khai
      • SDK & thư viện để tương tác với Nút Klaytn
        • caver-js
          • Bắt đầu
          • Gửi giao dịch mẫu
          • Tham chiếu API
            • caver.tài khoản
            • caver.wallet
              • caver.wallet.keyring
            • caver.transaction
              • Cơ bản
              • Ủy thác phí
              • Ủy thác phí một phần
            • caver.rpc
              • caver.rpc.klay
              • caver.rpc.net
              • caver.rpc.governance
            • caver.contract
            • caver.abi
            • caver.kct
              • caver.kct.kip7
              • caver.kct.kip17
              • caver.kct.kip37
            • caver.validator
            • caver.utils
            • caver.ipfs
          • caver-js ~v1.4.1
            • Bắt đầu (~v1.4.1)
            • Tham chiếu API
              • caver.klay
                • Tài khoản
                • Khối
                • Giao dịch
                  • Cũ
                  • Chuyển giá trị
                  • Ghi chú về chuyển giá trị
                  • Cập nhật tài khoản
                  • Triển khai hợp đồng thông minh
                  • Thực thi hợp đồng thông minh
                  • Cancel
                • Cấu hình
                • Bộ lọc
                • Khác
              • caver.klay.net
              • caver.klay.tài khoảns
              • caver.klay.Contract
              • caver.klay.KIP7
              • caver.klay.KIP17
              • caver.klay.abi
              • caver.utils (~v1.4.1)
            • Di chuyển từ web3.js
        • caver-java
          • Bắt đầu
          • Tham chiếu API
          • caver-java ~v1.4.0
            • Bắt đầu (~v1.4.0)
            • Di chuyển từ web3j
        • ethers.js
        • web3.js
      • Hướng dẫn
        • Bộ công cụ trực tuyến của Klaytn
        • Ví dụ về ủy thác phí
        • Count DApp
          • 1. Thiết lập môi trường
          • 2. Sao chép Count DApp
          • 3. Cấu trúc thư mục
          • 4. Soạn hợp đồng thông minh
          • 5. Tổng quan về mã Frontend
            • 5-1. Thành phần số khối
            • 5-2. Thành phần xác thực
            • 5-3. Thành phần đếm
          • 6. Triển khai hợp đồng
          • 7. Chạy ứng dụng
        • Klaystagram
          • 1. Thiết lập môi trường
          • 2. Sao chép Klaystagram DApp
          • 3. Cấu trúc thư mục
          • 4. Soạn hợp đồng thông minh Klaystagram
          • 5. Triển khai hợp đồng
          • 6. Tổng quan về mã Frontend
          • 7. Trang thông tin
            • 7-1. Kết nối hợp đồng với Frontend
            • 7-2. Thành phần UploadPhoto
            • 7-3. Thành phần nguồn cấp dữ liệu
            • 7-4. Thành phần TransferOwnership
          • 8. Chạy ứng dụng
        • Building a Buy Me a Coffee dApp
          • 1. Project Setup
          • 2. Creating a BMC Smart Contract
          • 3. Testing the contract using scripts
          • 4. Deploying BMC Smart contract
          • 5. Building the BMC Frontend with React and Web3Onboard
          • 6. Deploying Frontend code on IPFS using Fleek
          • 7. Conclusion
        • Migrating Ethereum App to Klaytn
        • Connecting MetaMask
        • Connecting Remix
        • Verifying Smart Contracts Using Block Explorers
      • Công cụ dành cho nhà phát triển
        • Ví
          • Kaikas
          • Ví Klaytn
          • Két Klaytn
            • Thiết kế két Klaytn
            • Tạo két
            • Thêm tài sản
            • Gửi tài sản
            • Tương tác hợp đồng
            • Trình xây dựng giao dịch
            • Các điểm đến nút
            • Câu hỏi thường gặp
          • Thư Viện Ví
            • Web3Auth
            • Web3Modal
            • Web3-Onboard
        • Oracle
          • Hệ Thống Orakl
          • Witnet
          • SupraOracles
        • Trình duyệt khối
          • Klaytnscope
          • Klaytnfinder
        • Klaytn Contracts Wizard
    • Glossary
  • ---
    • Lịch sử nâng cấp căn bản của Klaytn
    • Klaytn 2.0
      • Gói Metaverse
      • Tính hoàn thiện và cải tiến
      • Tương thích với Ethereum
      • Quản trị phi tập trung
      • Quỹ sinh thái lớn
    • Câu hỏi thường gặp
    • Mã nguồn mở
    • Điều khoản sử dụng
    • Ngôn ngữ
  • ℹ️Latest Klaytn Docs
Powered by GitBook
On this page
  • Unit Price Overview
  • Transaction Validation against Unit Price
  • Unit Price Error
  • Thay thế giao dịch
  • Biểu giá gas của Klaytn
  • PayloadGas
  • TxTypedGas
  1. -
  2. Tổng quan về Klaytn
  3. Thiết kế của Klaytn
  4. Phí giao dịch

Phí giao dịch (Các tài liệu trước)

PreviousPhí giao dịchNextĐồng tiền mặc định của Klaytn - KLAY

Last updated 1 year ago

NOTE: This document contains the transaction fee used before the activation of the protocol upgrade. If you want the latest document, please refer to .

The transaction fee of one transaction is calculated as follows:

Transaction fee := (Gas used) x (GasPrice)

As an easy-to-understand analogy in this regard, suppose you're filling up gas at a gas station. The gas price is determined by the refinery every day, and today's price is $2. If you fill 15L up, then you would pay $30 = 15L x $2/1L for it, and the $30 will be paid out of your bank account. Also, the transaction will be recorded in the account book.

Transaction fee works just the same as above. The network determines the gas price for every block. Suppose the gas price for the current block is 30 ston. If a transaction submitted by from account was charged 21000 gas, then 630000 ston = (21000 gas * 30 ston) would be paid out of the from account. Also, the transaction will be recorded in the block, and it will be applied in the state of all blockchain nodes.

Summing it up again, this calculated transaction fee is subtracted from the sender's or fee payer's account. However, the fee can be deducted from the balance only if the transaction is created by klay_sendTransaction/eth_sendTransaction. Because the other transactions cannot change the state since they cannot be included in the block. They are just a simulation in some way.

This is an overall explanation of the transaction fee, and from this point, we would give a detailed explanation of how gas price is determined and how the gas is calculated.

Unit Price Overview

Mọi hành động làm thay đổi trạng thái của chuỗi khối đều cần đến gas. Khi một nút xử lý giao dịch của người dùng, ví dụ như gửi KLAY, dùng token ERC-20, hoặc thực thi một hợp đồng, người dùng phải trả phí cho việc tính toán và sử dụng dung lượng lưu trữ. Số tiền thanh toán được xác định bằng số gas cần dùng.

In Ethereum, users set the gas price for each transaction, and miners choose which transactions to be included in their block to maximize their reward. It is something like bidding for limited resources. This approach has been working because it is market-based. However, the transaction cost fluctuates and often becomes too high to guarantee the execution.

To solve the problem, Klaytn is using a fixed unit price and the price can be adjusted by the governance council. This policy ensures that every transaction will be handled equally and be guaranteed to be executed. Therefore, users do not need to struggle to determine the right unit price.

Transaction Validation against Unit Price

Klaytn only accepts transactions with gas prices, which can be set by the user, that are equal to the unit price of Klaytn; it rejects transactions with gas prices that are different from the unit price in Klaytn.

Unit Price Error

The error message invalid unit price is returned when the gas price of a transaction is not equal to the unit price of Klaytn.

Thay thế giao dịch

Klaytn hiện không cung cấp phương pháp thay thế giao dịch bằng đơn giá, nhưng có thể hỗ trợ các phương pháp thay thế giao dịch khác trong tương lai. Xin lưu ý rằng trong Ethereum, một giao dịch với một số dùng một lần nhất định có thể được thay thế bằng một giao dịch mới với giá gas cao hơn.

Biểu giá gas của Klaytn

Về cơ bản, Klaytn luôn duy trì khả năng tương thích với Ethereum. Vì thế, biểu giá gas của Klaytn cũng khá tương đồng với biểu giá của Ethereum. Tuy nhiên, do sự tồn tại của những tính năng độc đáo của Klaytn nên sẽ có một số hằng số mới cho những tính năng đó.

Coming back to IntrinsicGas, a transaction's intrinsicGas can be calculated by adding up the next four factors.

IntrinsicGasCost = KeyCreationGas + KeyValidationGas + PayloadGas + TxTypedGas
  • PayloadGas is calculated based on the size of the data field in the tx.

  • KeyCreationGas is calculated when the transaction registers new keys. Only applicable in accountUpdate transaction.

  • KeyValidationGas is calculated based on the number of signatures.

  • TxTypedGas is defined based on the transaction types.

Mục
Gas
Mô tả

G_zero

0

Không cần thanh toán cho các hoạt động của bộ Wzero

G_base

2

Lượng gas phải trả cho các hoạt động của bộ Wbase

G_verylow

3

Lượng gas phải trả cho các hoạt động của bộ Wverylow

G_low

5

Lượng gas phải trả cho các hoạt động của bộ Wlow

G_mid

8

Lượng gas phải trả cho các hoạt động của bộ Wmid

G_high

10

Lượng gas phải trả cho các hoạt động của bộ Whigh

G_blockhash

20

Khoản thanh toán cho hoạt động BLOCKHASH

G_extcode

700

Lượng gas phải trả cho các hoạt động của bộ Wextcode

G_balance

400

Lượng gas phải trả cho một hoạt động BALANCE

G_sload

200

Được trả cho một hoạt động SLOAD

G_jumpdest

1

Được trả cho một hoạt động JUMPDEST

G_sset

20000

Được trả cho một hoạt động SSTORE khi giá trị lưu trữ được đặt từ số 0 sang số khác 0

G_sreset

5000

Được trả cho một hoạt động SSTORE khi giá trị bằng không của giá trị không đổi, hoặc được đặt thành số 0

G_sclear

15000

Khoản hoàn tiền đã thực hiện (được thêm vào bộ đếm hoàn tiền) khi giá trị lưu trữ được đặt từ số khác 0 thành số 0

R_selfdestruct

24000

Khoản hoàn tiền đã thực hiện (được thêm vào bộ đếm hoàn tiền) cho việc tự hủy một tài khoản

G_selfdestruct

5000

Lượng gas phải trả cho một hoạt động SELFDESTRUCT

G_create

32000

Được trả cho một hoạt động CREATE

G_codedeposit

200

Được trả theo byte cho hoạt động CREATE để thành công trong việc đặt mã vào trạng thái

G_call

700

Được trả cho một hoạt động CALL

G_callvalue

9000

Được trả cho một giao dịch chuyển giá trị khác 0 như một phần của hoạt động CALL

G_callstipend

2300

Khoản trợ cấp cho hợp đồng được gọi ra, được trừ khỏi Gcallvalue đối với giao dịch chuyển giá trị khác 0

G_newtài khoản

25000

Được trả cho hoạt động CALL hoặc SELFDESTRUCT để tạo tài khoản

G_exp

10

Khoản thanh toán một phần cho hoạt động EXP

G_expbyte

50

Khoản thanh toán một phần khi nhân với dlog256(exponent)e cho hoạt động EXP

G_memory

3

Được trả cho mỗi một từ bổ sung khi mở rộng bộ nhớ

G_txcreate

32000

Được trả bởi tất cả các giao dịch tạo hợp đồng

G_transaction

21000

Được trả cho mọi giao dịch

G_log

375

Khoản thanh toán một phần cho hoạt động LOG

G_logdata

8

Được trả cho mỗi byte trong dữ liệu của hoạt động LOG

G_logtopic

375

Được trả cho từng chủ đề của hoạt động LOG

G_sha3

30

Được trả cho mỗi hoạt động SHA3

G_sha3word

6

Được trả cho từng từ (được làm tròn) cho dữ liệu nhập vào hoạt động SHA3

G_copy

3

Thanh toán một phần cho các hoạt động *COPY, nhân lên theo số từ được sao chép, được làm tròn

G_blockhash

20

Khoản thanh toán cho hoạt động BLOCKHASH

G_extcodehash

400

Được trả cho việc nhận hàm băm keccak256 của mã hợp đồng

G_create2

32000

Được trả cho mã vận hành CREATE2, hoạt động giống hệt như CREATE nhưng dùng những đối số khác

Key Type
Are those keyGases applicable?

Nil

No

Legacy

No

Fail

No

Public

Yes

MultiSig

Yes

RoleBased

Depending on key types in the role

Hợp đồng đã lập trước là loại hợp đồng đặc biệt, thường thực hiện các phép tính toán mã hóa phức tạp và được khởi tạo bởi những hợp đồng khác.

Mục
Gas
Mô tả

EcrecoverGas

3000

Thực hiện hoạt động ECRecover

Sha256BaseGas

60

Thực hiện hoạt động hàm băm sha256

Sha256PerWordGas

12

Ripemd160BaseGas

600

Thực hiện hoạt động Ripemd160

Ripemd160PerWordGas

120

IdentityBaseGas

15

IdentityPerWordGas

3

ModExpQuadCoeffDiv

20

Bn256AddGas

500

Thực hiện hoạt động đường cong elliptic Bn256

Bn256ScalarMulGas

40000

Bn256PairingBaseGas

100000

Bn256PairingPerPointGas

80000

VMLogBaseGas

100

Ghi bản ghi vào tập tin bản ghi của nút - chỉ dành cho Klaytn

VMLogPerByteGas

20

Chỉ dành cho Klaytn

FeePayerGas

300

Nhận địa chỉ của feePayer - chỉ dành cho Klaytn

ValidateSenderGas

5000 cho mỗi chữ ký

Xác thực địa chỉ và chữ ký của người gửi - chỉ dành cho Klaytn

A Klaytn transaction can also have a feePayer, so the total KeyValidationGas is like this.

KeyValidationGas =  (KeyValidationGas for a sender) + (KeyValidationGas for a feePayer)

PayloadGas

PayloadGas is calculated as below.

# legacy-typed transaction
PayloadGas = number_of_zero_bytes x TxDataZeroGas (4) + number_of_nonzero_bytes x TxDataNonZeroGas (68)`

### Bảng gas liên quan đến tài khoản <a id="account-related-gas-table"></a>

| Mục                        | Gas   | Mô tả                                                            |
|:-------------------------- |:----- |:---------------------------------------------------------------- |
| TxAccountCreationGasPerKey | 20000 | Lượng gas cần thiết để tạo một cặp khóa                          |
| TxValidationGasPerKey      | 15000 | Lượng gas cần thiết để xác thực khóa                             |
| TxGasAccountUpdate         | 21000 | Lượng gas cần thiết để cập nhật một tài khoản                    |
| TxGasFeeDelegated          | 10000 | Lượng gas cần thiết cho một lượt ủy thác phí                     |
| TxGasFeeDelegatedWithRatio | 15000 | Lượng gas cần thiết để ủy thác phí kèm tỷ lệ                     |
| TxGasCancel                | 21000 | Lượng gas cần thiết để hủy một giao dịch có cùng số dùng một lần |
| TxGasValueTransfer         | 21000 | Lượng gas cần thiết để chuyển KLAY                               |
| TxGasContractExecution     | 21000 | Lượng gas cơ sở để thực thi hợp đồng                             |
| TxDataGas                  | 100   | Lượng gas cần cho mỗi byte đơn lẻ của giao dịch                  |

Lượng gas cần cho dữ liệu tải tin được tính toán như dưới đây

```text
GasPayload = number_of_bytes * TxDataGas

TxTypedGas

There are three types of transactions in klaytn; base, feeDelegated, and feeDelegatedWithFeeRatio.

For example,

  • TxTypeValueTransfer is the base type of the valueTransaction transaction.

  • TxTypeFeeDelegatedValueTransfer is a feeDelegated type of the valueTransfer transaction.

  • TxTypeFeeDelegatedValueTransferWithRatio is a feeDelegatedWithRatio type of the valueTransfer transaction.

This is important when calculating TxTypedGas:

  • First, check the TxType is feeDelegated or feeDelegatedWithFeeRatio.

    • If the TxType is feeDelegated, add TxGasFeeDelegated(10000) to TxTypedGas

    • If the TxType is feeDelegatedWithFeeRatio, add TxGasFeeDelegatedWithRatio (15000) to TxTypedGas

  • Second, check the transaction creates contract or not.

    • If the transaction creates contract, add TxGasContractCreation (53000) to TxTypedGas.

    • Otherwise, add TxGas (21000) to TxTypedGas.

For example,

  • If it's legacyTransaction and creates contract, the TxTypedGas would be 0 + TxGasContractCreation(53000).

  • If it's TxTypeFeeDelegatedValueTransfer, the TxTypedGas would be TxGasFeeDelegated(10000) + TxGas (21000)

  • If it's TxTypeFeeDelegatedSmartContractDeployWithRatio, the TxTypedGas would be TxGasFeeDelegatedWithRatio (15000) + TxGasContractCreation (53000)

Loại khóa
Gas

Nil

Không có

Legacy

0

Fail

0

Public

GasCreationPerKey (20000)

MultiSig

(khóa) * GasCreationPerKey

RoleBased

Phí gas được tính toán dựa trên các khóa trong từng vai trò. ví dụ: GasRoleTransaction = (khóa) GasCreationPerKey GasRoleAccountUpdate = (khóa) GasCreationPerKey GasRoleFeePayer = (khóa) * GasCreationPerKey

LƯU Ý: Tài liệu này chứa biểu giá gas được sử dụng trước khi kích hoạt nâng cấp giao thức. Nếu bạn muốn nhận tài liệu mới nhất, vui lòng tham khảo .

latest document
tài liệu mới nhất