宣发文章

要求

  • 有新版Move升级的源版本和目标版本,基于Aptos framework的源版本

  • 升级后能达到的效果(早期不需要强调地址格式不同)

  • 对Starcoin 1.0 dapp的应用影响(简单写下就行了)

  • 新版是否具有模块化能力,可以基于Starcoin构建Move链,可以开放式阐述一下

第一版

move版本在不断的进化,starcoin基于account的构建move虚拟机,随着move(https://github.com/move-language/move-on-aptos )新特性不断的 演进,让dapp开发者更好的开发新的move主要引入了如下的特性

  • 智能合约的注解,提供用户的功能

  • 提供了代码格式化工具,类似gofmt, rustfmt等语言的功能

  • 提供了move字节码反编译成源码工具,类似javap语言功能,方便更好的审计

  • 提供对开发者更友好的receiver风格,使用receiver.fun(args)替代func(receiver,args),不用写类似C代码那种冗长风格

  • 提供了枚举和match的函数式编程风格,用户编写代码更方便

  • 提供了基于下标直接访问数组的功能,不用写冗余代码

  • 提供了闭包和引用的功能

  • 提供了用户定义Abilities功能, move原生支持了copy, key, store, drop这些ability, move的新版本可以支持用户定义Iterator功能,这样可以方便类似用户通过Iteration查找某个元素

  • 返回Global storage reference, 之前版本的move是不支持返回Global Storage Reference, 这样在合约代码中用户必须去处理一些逻辑

通过升级move这些新特性,starcoin chain这边需要适配新的接口,添加feature机制来制定都某一区块支持什么新的功能,新接口适配需要将verify交易从编译器放到chain这边来做,gas费新的实现,扩展性更好,object在chain层支持配合合约改造

dapp

升级编译器主要就是更好的支持dapp相关开发目前的规划是将aptos-stdlib基础库移植到starcoin的智能合约基础库内,使用aptos-stdlib来支撑starcoin智能合约底层逻辑,让用户开发和移植 dapp到starcoin更便利

 

第二版

Move v7 新特性

Move版本在不断进化,继承了其独特的模块化设计和资源类型系统等核心优势。随着Move(Move GitHub)新特性的不断推出,DApp开发者不仅能更高效地构建应用,还能更灵活地利用Move的安全性和并发控制等特点。以下是Move引入的主要新特性:

  1. 智能合约注解:为用户提供额外的功能支持。

  2. 代码格式化工具:类似于gofmt和rustfmt,为代码提供统一的格式化功能。

  3. 代码Linter工具: 类似rust clippy, 开发更安全高效的代码

  4. 字节码反编译工具:类似于Java的javap,可以将Move字节码反编译成源码,便于审计。

  5. 改进的Receiver风格:提供更友好的语法,允许使用receiver.fun(args)替代传统的func(receiver, args)写法,避免冗长的代码风格。

  6. 枚举和match功能:引入了函数式编程风格,使代码编写更加便捷。

  7. 数组下标访问:支持基于下标直接访问数组,减少冗余代码。

  8. 闭包和引用:增加了闭包和引用的功能。

  9. 支持用户自定义 abilities:在Move原生支持的copykeystoredrop等 abilities 的基础上,新增了用户定义Iterator功能,方便通过迭代查找元素。

  10. Global Storage Reference返回:新版本支持返回 Global Storage Reference,解决了之前版本中合约代码中必须针对类型进行硬编码的问题。

Starcoin的升级

为适应Move新特性,Starcoin需要在现有架构基础上进行功能兼容,主要涉及Move编译器、StarcoinVM、以及Starcoin Framework等几个部分:

Move Compiler

  1. 升级至Move v7版本, 目前基于 Aptos 仓库提交哈希 cea6cf84416a651ffb458469b80da2da885fe1f5

  2. 支持Module meta功能,配合链为用户提供定制化注解功能

  3. Move compiler 和 Move prover分离

StarcoinVM

  • 适配Move v7新接口,并通过添加Feature机制兼容旧版本已生成区块。

  • 将交易验证从编译器移至链上处理,以优化交易验证流程。

  • 优化Gas费用实现,增强系统扩展性,并使链上对象支持与合约的协同改造。

Framework

  • 将Aptos Object标准移引入到Starcoin Framework,以实现与Aptos Framework 特性的兼容。

  • 基于上述兼容性,Aptos中已开发和部署的项目可以以较小的改动成本移植到Starcoin平台。

  • 受益于此次编译器升级与兼容性升级,新项目基于Starcoin平台开发后,可以更方便地以更小的成本迁移到Aptos平台

  • 已基于StarcoinFramework 1.0 开发的项目需要针对新引入的Object模型做兼容才能再发布新版。

总结

此次Starcoin的升级,不仅是对Move新特性的响应,更是对Starcoin生态系统的进一步完善。通过增强新版Move兼容性、优化性能以及提供更灵活的开发支持,使Starcoin支持模块化前进大步,Starcoin将为开发者带来更广阔的创新空间。未来,随着更多功能的逐步落地,Starcoin将继续推动区块链技术的发展,为用户和开发者提供更加丰富和可靠的链上体验。

 

参考链接

https://medium.com/aptoslabs/the-future-of-move-at-aptos-17d0656dcc31