-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
EVM
EVM用于合约的部署和执行,可理解为一个全球性的去中心化计算机。
特性
- 基于栈,在一个栈中保存所有内存数值。
- 合约执行受gas限制
- 数据处理单位是256位的字(主要为了方便处理哈希运算和椭圆曲线计算)
EVM的状态
世界状态:一个映射,以太坊地址 -> 账户数据,包括:
- ETH余额
- nonce,外部账号则为该账户发出交易的次数,合约账户则为该合约创建合约的次数
- 存储与代码,仅合约账户会用到
当执行合约时,一个新的EVM实例会被初始化并执行合约代码。
部署合约
部署合约时,需要发送一笔特殊的交易,to地址是0x0,即零地址;data则是用于输出合约代码的代码,EVM新实例会执行把data加载到ROM中并执行,将执行输出作为新合约账户的代码。
- 部署字节码:即上述的data
- 运行时字节码:即合约账户真正的关联代码
函数标识
函数签名的keccak256哈希值的前4字节即为函数标识
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels