EVM指令集
- 所有的指令都是针对"256位的字(word)"这个基本的数据类型来进行操作
- 具备常用的算术、位、逻辑和比较操作,也可以做到有条件和无条件跳转
- 合约可以访问当前区块的相关属性,比如它的块高度和时间戳
消息调用( Message Calls )
- 合约可以通过消息调用的方式来调用其它合约或者发送以太币到非合约账户
- 合约可以决定在其内部的消息调用中,对于剩余的 gas ,应发送和保留多少
- 如果在内部消息调用时发生了 out-of-gas 异常(或其他任何异常),这将由一个被压入栈顶的错误值所指明;此时只有与该内部消息调用一起发送的 gas 会被消耗掉
委托调用(Delegatecall)
- 一种特殊类型的消息调用
- 目标地址的代码将在发起调用的合约的上下文中执行,并且 msg.sender 和 msg.value 不变
- 可以由此实现“库”(library):可复用的代码库可以放在一个合约的存储上,通过委托调用引入相应代码