以太坊智能合约入门指南
1. 智能合约状态
智能合约的状态由存储和余额组成。余额方面,以太坊中的所有地址类型,无论是外部账户还是智能合约,都有与之关联的以太币(ETH)余额。以太坊提供了查询余额的原语,既可以在智能合约内部查询,也能从网络外部查询,并且可以轻松进行余额转移。
存储方面,智能合约的存储空间非常大,它是一个可寻址的空间,有 $2^{256}$ 个插槽,每个插槽为 32 字节。不过,在以太坊虚拟机(EVM)中写入存储的成本非常高,因此使用时需谨慎。由于存储使用成本高,EVM 还提供了另一个 256 位可寻址的临时空间,称为内存,它相当于其他环境中的内存堆,并且保证在不同交易之间会被清除。
2. 燃气使用
在以太坊网络中执行代码需要消耗燃气(Gas)。智能合约执行的每个操作都会消耗预定义数量的燃气,更复杂的操作比简单操作消耗更多的燃气。燃气是执行成本的一种度量,旨在防止以太坊上出现过于复杂的计算。因为每个交易都需要网络中的每个完整节点执行以进行验证,所以保持交易尽可能简单至关重要。这也是为什么在区块链上创建新数据的操作,如写入存储或创建新合约,在燃气消耗方面是最昂贵的操作之一。
燃气的获取过程在每次交易时自动处理。当用户发送新交易时,需要指定燃气价格,即 ETH 与燃气的兑换率。交易执行后,会计算使用的总燃气量,然后使用该燃气价格将其转换为 ETH,并从发送者的余额中扣除。需要注意的是,燃气价格没有严格要求,可以几乎任意高低。但燃气价格非常高的交易发送成本会极高;而燃气价格非常低的交易对矿工缺乏吸引力,很可能永远不会被包含在区块链中。
除了燃气价格,交易发送者还必须指定执行期间允许使用的最大燃气量。如果交易使
超级会员免费看
订阅专栏 解锁全文
3345

被折叠的 条评论
为什么被折叠?



