虚拟机

MoveVM 执行以 Move字节码中表示的交易。有两个主要的包:核心VM(core VM)和VM运行环境(VM runtime)。VM核心包含VM的底层数据类型—主要是文件格式和上层的抽象表示,还定义了gas测算逻辑抽象。

MoveVM是一个带有静态类型系统的堆栈计算机。MoveVM通过混合文件格式、验证 (参考 bytcode verifier README)MoveVM是一个带有静态类型系统的堆栈计算机。MoveVM通过混合文件格式、验证(供参考[bytcode verifier README])和运行时约束来认可的Move语言的规范。文件格式的结构允许定义模块、类型(资源和无限制类型)和函数。代码通过字节码指令来表示,这些指令可能引用外部函数和类型。文件格式还强制使用语言的某些不变量,如隐藏类型和私有字段。从文件格式定义可以清楚地看出,模块为函数和类型定义了范围/名称空间。类型是不透明的,因为所有字段都是私有的,而且类型不带任何函数或方法。

MoveVM核心包提供文件格式的定义以及与文件格式相关的所有实用程序:

一个简单的Rust抽象文件格式 (XMETA/language/vm/src/file_format.rs) 和字节码。这些Rust结构广泛用于代码库中。

文件格式的序列化和反序列化。这些定义了代码的链上二进制表示。

一些漂亮的输出展示功能。

文件格式的基本架构。

gas 成本/综合基础设施。

CompiledModule 和 CompiledScript 在XMETA/language/vm/src/file_format.rs 中定义,分别是Move Module 和 Transaction Script 的顶级结构, 这些结构提供了文件格式的简单抽象。此外,还定义了一组 Views 来方便地导航和检查 CompiledModule 和 CompiledScript。

Last updated