EVM和gas
- 合约被交易触发调用时,指令会在全网的每个节点上执行:这需要消耗算力成本;每一个指令的执行都有特定的消耗,gas 就用来量化表示这个成本消耗
- 一经创建,每笔交易都按照一定数量的 gas 预付一笔费用,目的是限制执行交易所需要的工作量和为交易支付手续费
- EVM 执行交易时,gas 将按特定规则逐渐耗尽
- gas price 是交易发送者设置的一个值,作为发送者预付手续费的单价。如果交易执行后还有剩余, gas 会原路返还
- 无论执行到什么位置,一旦 gas 被耗尽(比如降为负值),将会触发一个 out-of-gas 异常。当前调用帧(call frame)所做的所有状态修改都将被回滚