免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.cn) 举报

    金色观察|Sway:Fuel虚拟机的特定语言

    Fuel是一个很有趣的以太坊拓展层项目,其项目主要目的是提高以太坊的可扩展性,与其他L2链相同的是,都为了更高的吞吐量在努力,而不同的是,Fuel聚焦于在执行部分解决问题。

    Fuel v1早于2020年部署,是第一个推出到以太坊主网的生产级Optimistic Rollup。目前已经进展到了Fuel v2。

    更有趣的是,在Fuel v1时,Fuel推出了Yul+语言,主要用于以太坊虚拟机语言功能的完善。

    而在Fuel v2上又推出了虚拟机语言Sway,本文中将总结Sway的资料,了解其特性。

    Fuel虚拟机(Fuel VM)是一种专为Fuel区块链设计的区块链优化VM。Sway则是Fuel VM的特定语言(DSL),Sway基于Rust,并包含利用区块链VM的语法。

    Sway程序有四种类型:contract、predicate、script、library。每个Sway文件都必须以它是什么类型的程序的声明开头。

    例如,声明文件是一个被调用的wallet_lib。Sway合约应该在库中声明一个ABI(一个应用程序二进制接口),以便下游合约可以重用它。

    Sway工具链由以下几个组件组成。

    Forc

    “Fuel Orchestrator”Forc相当于Rust的Cargo。它是创建、构建、测试和部署Sway项目的主要入口。

    Sway语言服务器(forc-lsp)

    提供Sway语言服务器forc-lsp以向IDE公开功能。目前,仅通过插件支持Visual Studio Code,Vim支持即将推出。

    Sway格式化程序(forc-fmt)

    提供了一个规范的格式化程序forc-fmt,可以手动运行。Visual Studio Code插件将forc-fmt在保存时自动格式化Sway文件。

    Fuel Core

    虽然不是Sway工具链的直接部分,但提供了Fuel协议的实现Fuel Core。

    标准库

    与Rust类似,Sway带有自己的标准库。

    Sway标准库是可移植Sway软件的基础,它是一组适用于更广泛的Sway生态系统的最小共享抽象。它提供核心类型,如Result<T,E>和Option<T>、语言原语上的库定义操作、本机资产管理、区块链上下文操作、访问控制、存储管理以及对来自其他VM的类型的支持等。

    Sway与Solidity的区别

    Sway所针对的底层虚拟机是Fuel VM。Solidity指定以太坊虚拟机(EVM)为目标。

    Fuel VM中的字节是64位(8字节),而不是EVM的256位(32字节)。因此,原始整数只能达到u64,而哈希(b256类型)不在寄存器中,而是在内存中。因此,Ab256是指向包含哈希值的32字节内存区域的指针。

    Fuel VM只有无符号整数作为原语提供:u8、u16、u32和u64。不提供有符号整数运算。如果需要,可以在高级库中实现有符号整数和有符号整数算术。

    Fuel VM中的恐慌(即“恢复”)是全局性的,可以完全无条件地恢复交易的状态效果,减去使用的gas。

    Fuel VM中的数学计算默认是安全的(即任何溢出或异常都是“恐慌”)。安全检查在VM实现中本地执行,而不是像Solidity的默认安全数学计算那样在字节码级别执行。

    Sway合约没有实际的代码大小限制。物理限制由VM_MAX_RAMVM参数控制,在撰写本文时为64MiB。

    Sway与Rust的区别

    在Rust中,枚举通常采用以下三种形式之一:单元变体,没有内部数据,结构变体,包含命名字段,元组变体,其中包含数据元组。

    在Sway中,该过程被简化了。枚举变体必须全部指定一种类型。这种类型代表他们的内部数据。这实际上与Rust提供的同构,只是语法不同。

    jinse.cn 1
    好文章,需要你的鼓励
    jinse.cn 1
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

    声明:本文系金色财经原创稿件,版权属金色财经所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:金色财经",违者将依法追究责任。

    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

    金色财经 > 金色财经 Taylor W > 金色观察|Sway:Fuel虚拟机的特定语言
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部