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

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

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

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

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

金色晚报 | 3月18日晚间重要动态一览:12:00-21:00关键词:亿邦国际、直布罗陀、Wirex、VanEck、Messari

1. 亿邦国际宣布完成6nm比特币矿机芯片设计

2. 直布罗陀成立新工作组以定义加密交易所市场标准

3. 美国肯塔基州通过两项有利于挖矿公司的法案

4. 财新网:多地出现以虚拟货币的犯罪手段,涉案金额达数千万元

5. 英国加密支付公司Wirex赢得商标侵权诉讼

6. 调查:部分人计划将刺激法案支票用于投资BTC和ETH等加密货币

7. VanEck比特币ETF申请已开启45天审查期

8. Messari分析师:“通缩”的以太坊可能会超过比特币,成为最大的加密资产

9. 数据:以太坊上DeFi协议总锁仓量614.5亿美元[2021/3/18 18:58:04]

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

金色晚报 | 10月25日晚间重要动态一览:12:00-21:00关键词:数字金融监管、数字人民币、美国国税局

1.肖钢:数字金融监管要从数字货币监管等几大重点主题入手。

2.穆长春:统筹管理数字人民币的信息开发钱包生态平台。

3.穆长春:商业银行不向客户收取数字人民币兑出和兑回服务费。

4.IMF何东:单靠发行央行数字货币很难从根本上改变国际货币使用格局。

5.尚福林:要坚决整治披着“金融科技”外衣的金融乱象。

6.美国国税局发布1040号表草案说明 增加虚拟货币问题清晰度。

7.数据:以太坊非零地址数量达4833.31万再创新高。

8.徐坤:市场关于提币时间的揣测前提条件就是错误的。

9.徐州摧毁“CDBC数字货币”特大团伙 抓获16名嫌疑人。[2020/10/25]

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

金色晨讯 | 阿里今日将宣布区块链生态战略 USDT市值超越BCH排名第四 EOS降至第七:1.阿里将于今日正式宣布区块链生态战略。

2.欧洲央行执委:Libra可以解决全球支付系统的问题。

3.巴西证券委员会禁止提供比特币期权的外汇经纪商XM Global。

4.USDT市值超越BCH排名第四,EOS降至第七。

5.蚂蚁区块链与拜耳签署战略合作,以期消灭假种子假化肥。

6.Facebook区块链主管:Libra可成为一种协议帮助资金流动使数十亿人获益。

7.蚂蚁金服集团总裁:阿里和蚂蚁金服将在区块链技术上持续投入资源。

8.扎克伯格再谈Libra:希望在不久的将来取得进展,而不是让这一计划很多年才能推出,但现在我真正关注的是确保我们能够做好这件事。[2019/9/26]

例如,声明文件是一个被调用的wallet_lib。Sway合约应该在库中声明一个ABI,以便下游合约可以重用它。

金色财经独家分析 各国假借“区块链”“加密货币”之名的案件频发 投资者需理性对待加密货币投资:金色财经独家分析,今日,澳大利亚竞争与消费者委员会(ACCC)发布数据,澳大利亚在2017年因加密货币造成的损失达210万美元。此前,法国波尔多地区出现比特币案,受害者人数多达15人,其中一位受害者被高达70万欧元(约合人民币528.72万元)。早些时候,日本有12人因比特币被日本逮捕,涉案金额高达1.9亿日元。加密货币带来财富增长的论断驱动了越来越多的人入局,眼中只有利益回报的投资者警惕性自然松动,这也给了团伙趁机而入的机会。目前行业发展还处在初期,区块链项目质量参差不齐,对加密货币投资者而言可谓是前有狼后有虎。投资者还需谨慎对待,才能在加密货币投资这条路上获得相应的回报。[2018/5/21]

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位,而不是EVM的256位。因此,原始整数只能达到u64,而哈希不在寄存器中,而是在内存中。因此,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提供的同构,只是语法不同。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-3:977ms