探索 Starcoin Move v7 的新功能

Published at September 24, 2024 By Starcoin.

封面图片

Starcoin 是第一个基于 Move 的无许可区块链,其 Move 版本植根于许可区块链实现 Diem。随着行业的发展,Move 已经分化为多个事实上的版本,包括 Aptos、Sui 以及基于 Diem 的 Starcoin Move V6。

在 Move 编程语言不断演进的过程中,利用其模块化设计和资源类型系统,DApp 开发者可以更高效地构建应用,同时获得更灵活的安全和并发控制。基于这一背景,Starcoin 在 Move V6 的基础上进行了迭代,整合最前沿的新功能,为开发者提供更优质的支持,并确保Starcoin生态系统的长期价值。

Starcoin Move V7 重要新功能

1. 智能合约注解

为用户增加额外的功能支持,允许开发者在智能合约中加入注解,从而扩展合约的功能性和可读性。

2. 代码格式化工具

类似于 gofmtrustfmt,该工具确保所有代码的格式一致,提高代码可维护性和开发效率。

3. 代码静态分析工具

rust clippy 启发,帮助开发者编写更安全、更高效的代码,通过静态分析捕捉潜在的代码问题。

4. 字节码反编译工具

类似于Java的 javap,允许将 Move 字节码反编译成源代码,方便进行代码审计和安全检查。

5. 改进的接收者语法

提供更直观的语法,例如允许使用 receiver.fun(args) 代替传统的 func(receiver, args),从而减少代码冗余,提高代码清晰度。

6. 枚举和匹配函数

引入函数式编程风格的枚举和匹配函数,简化代码编写,使逻辑表达更为直观。

7. 数组下标访问

支持直接按索引访问数组,减少多余代码,使得数据操作更加便捷。

8. 闭包和引用

增加对闭包和引用的支持,增强代码的灵活性和表达能力,方便复杂逻辑的实现。

9. 用户定义能力

扩展了Move的原生能力(如复制、键、存储和丢弃),新增了用户定义的Iterator功能,便于通过迭代方式搜索和处理元素。

10. 全局存储引用返回

现在支持返回全局存储引用,解决了旧版本中合约代码需要进行类型硬编码的问题,提升了代码的灵活性和复用性。

Starcoin升级到Move V7的方法

为了支持Starcoin Move V7的新功能及与Aptos兼容的特性,我们采用了以下方法:

  • 基于Aptos的兼容Move版本:
    该版本基于aptos-node-v1.15.1,我们将继续监控并跟进任何重大更新。在升级过程中,StarcoinVM的工作流程保持不变,同时适配新Move版本接口的相关功能(traits)、结构体和枚举。Starcoin框架基于aptos-stdlib和aptos-framework实现这些功能,并进行了必要的修改以确保兼容性。

  • 数据和资源迁移:
    Starcoin 1.0相关的Move资源将在新Move版本上线后进行数据和资源迁移,与新版本对齐。

升级涉及的组件

Move 编译器

  • 升级到Move V7:
    编译器更新至Starcoin Move V7,支持最新的语言特性。
  • 支持模块元功能:
    允许在区块链上使用自定义注解。
  • 编译器与证明器分离:
    Move编译器和Move证明器现已分离为独立组件,提高了模块化和灵活性。

StarcoinVM

  • 兼容Move V7:
    虚拟机适应新的Move V7接口,并通过特性机制保持与旧版本区块生成的兼容性。
  • 优化交易验证:
    将交易验证从编译器移至链上处理,简化了验证过程。
  • 增强Gas费实现:
    提高系统扩展性,优化链上对象与智能合约的协同工作。

Starcoin 框架

  • 集成Aptos对象标准:
    将Aptos对象标准整合进Starcoin框架,确保与Aptos框架功能兼容。
  • 促进跨平台迁移:
    使在Aptos上开发的项目能够以较低成本迁移到Starcoin,反之亦然。
  • 兼容现有项目:
    更新Starcoin Framework 1.0上的项目,以适应新引入的对象模型,确保未来版本的兼容性。

总结

此次Starcoin对Move的升级不仅是对新功能的响应,更是增强Starcoin生态系统的重要一步。通过提高与最新Move版本的兼容性、优化性能,并提供更灵活的开发支持,Starcoin为开发者提供了更广阔的创新空间。随着更多功能的逐步推出,Starcoin将继续推动区块链技术的发展,为用户和开发者带来更丰富、更可靠的链上体验。

我们鼓励所有开发者探索这些新功能,并开始在项目中尝试使用它们。关注Starcoin GitHub仓库并加入我们的社区讨论,实时了解最新进展,共同塑造区块链技术的未来!