Gas Calculation¶
For normal transaction and contract transaction, the calculation of gas is slightly different:
Normal Transaction¶
The total gasUsed value of a normal transaction is divided into two parts, fixedGasUsed is built into the system, and f(txExtraData) is calculated based on the extraData inside the transaction:
totalGasUsed = fixedGasUsed + f(txExtraData)
Suppose that in a normal transaction, the number of bytes whose value is 0 in exteraData is ZeroBytes, and the number of bytes whose value is non-zero is NoZeroBytes. Then f(txExtraData) is expressed as follows:
f(txExtraData) = TxDataZeroGas*ZeroBytes + TxDataNonZeroGas*NoZeroBytes
| Parameters | System Default Value | Remarks |
| —————- | ——————– | ———————————————————— |
| fixedGasUsed | 21000 | This is the default fixedGasUsed value for the current system normal transaction. |
| TxDataZeroGas | 4 | When the data is 0, the gasUsed of unit bytes |
| TxDataNonZeroGas | 68 | When the data is not 0, the gasUsed of unit bytes |
When the data is 0 and non-zero, its gasUsed is different because non-zero data consumes less system resources during storage and calculation.