第 7 章 以太坊虚拟机探秘

想必读者已经对以太坊的全局结构有一个清晰的了解,也部署了一份简单的智能合约。

在以太坊上最重要的活动除了转账以外,就是编译、运行智能合约(Smart Contract)。

智能合约代表了一个以太坊世界里的独立管家。它按照自身代码指示进行以太币的收入,支出活动,也具有一定存储空间可以存储一些数据。

在 Solidity 智能合约编程学习中,经常有一些似是而非的问题,都是因为对于以太坊虚拟机的根基理解不深而导致的,例如下面的问题。

  • 排列数据时如何做到紧凑省gas?
  • 为何数据加减法会有向上溢出和向下溢出?
  • Mapping结构在以太坊里是如何存储的?

为了在编程时做到胸有成竹,知其然并知其所以然,本章用简短的篇幅介绍智能合约的运行环境– 以太坊虚拟机 (Ethereum Virtual Machine, EVM) ,帮助读者理解智能合约运行的上下文环境。了解完这部分知识后,读者能更加理解在Solidity编程中的各种限制和意外情况。