状态变量

微信扫码分享
QA 环节:Gas、数据存储与节点验证

QA 环节:Gas、数据存储与节点验证

视频 AI 总结: 该视频主要解答关于以太坊交易和数据存储的一些疑问,核心内容围绕交易的gas limit、数据存储方式以及节点验证机制展开。视频详细解释了交易失败时的扣费情况,以及合约数据在节点上的存储方式,强调了状态变量存储在所有节点硬盘上,而非EVM内存中。此外,视频还讨论了节点如何验证交易的正确性,以及代码长度与字节码大小的关系。 关键信息: * Gas limit 不足时,交易发起前通常会被用户钱包界面阻止,不会扣费。但若执行过程中 gas 不足,已消耗的 gas 费用会被扣除,交易回滚。 * 合约中的状态变量(如 counter)存储在所有节点的硬盘上,而非 EVM 内存中,形成状态树,根哈希存储在账户存储中。 * EVM 是动态的,每次交易调用合约时会启动一个 EVM 实例,执行完毕后终止。 * 节点通过重新执行交易,比对状态根哈希来验证交易的正确性,防止作恶。 * 代码越长,字节码通常越大,但编译器优化会有些影响。 * 节点存储了从第一个区块到当前高度的所有区块信息。

315 0 0 2025-07-05 12:09
位掩码 | EVM 存储 2

位掩码 | EVM 存储 2

本视频介绍了如何将小于32字节的状态变量打包到单个插槽中,并介绍了位掩码的基本技巧,以便手动读取和写入这些状态变量。首先,讲解了状态变量如何在单个插槽中存储,例如一个4字节的状态变量和一个2字节的状态变量可以一起存储在一个32字节的插槽中。接着,介绍了如何使用位掩码来更新或读取这些变量。通过示例,展示了如何创建一系列1和0的位掩码,并通过位移操作将其调整到所需位置。此外,还讲解了如何反转位掩码以满足不同的需求。最后,预告了下一期视频将使用这些位掩码技巧来读取和写入打包在单个插槽中的状态变量。

2560 0 0 2025-01-27 08:56