Skip to main content

· 9 min read
fuel

原文: https://fuel-labs.ghost.io/introducing-fuels-new-grants-program/

编译: kkdemian

  成为第二期 Fuel Grants 生态的一员,即可获得高达 50,000 美元的资金补助,并有机会将您的想法变为现实,为期三个月。

我们很高兴地宣布启动 Fuel 备受期待的赠款计划,该计划目的是支持和增强模块化区块链生态系统中的创新者。该计划引入了一个令人兴奋的季度队列模式,允许由 10 个项目组成的选定小组获得高达 50,000 美元的资金,为他们提供三个月的机会,使他们的想法成为现实。我们相信,通过培育突破性举措并将其与著名的风险投资公司结合起来,我们可以促进 Fuel 的生态系统,以彻底改变 web3 的格局。

在可扩展性领域获得头部的支持

每季度最多有 10 个项目被征集到赠款候选。这些项目将有机会访问 Fuel 的技术、营销和法律团队,以指导其想法/集成的发展。在本季度结束时,参与者将展示他们的进展,并在独家演示日中展示他们的最小产品(MVP),在 Web3 领域中有一些杰出的支持者。以下将参加第三季度的演示日:

申请详情

即将到来的第三季度队列的申请期限为 6 月 21 日星期三开始,7 月 5 日星期三结束。我们鼓励申请者提交真正旨在利用 Fuel 模块化技术栈的项目构想,特别关注谓词(例如启用无状态帐户抽象)和多个本地资产支持。此外,我们认为,有一个致力于以 Fuel 为基础的专职团队、明确的资金利用概况以及在项目开发方面的透明进展是关键方面。展示其向最终用户营销项目的能力以及提出全面路线图和扩展计划的团队也将受到强烈的青睐。

  • 以下是完成应用程序时要考虑的一些准则:
    • Fuel 的谓词和 UTXO 模型可以实现构建 web3 解决方案的全新方法。花时间去理解这些概念,想出独特的解决问题的方法来突破可能的极限。使用 Fuel 重新定义 Web3 交互。
    • 直截了当 - 尝试以直接和具体的方式解释项目的价值主张。避免过于夸张的主张与远见卓识或项目比较。
    • 不要过度使用不必要的措辞或行话使项目的描述复杂化。理解项目越容易,处理应用程序就越容易。
    • 避免含煳不清的陈述或索赔,而采用精确的数字和事实来区分应用程序。几乎每个 Web3 项目都声称将 X 下放给 Y。尝试专注于真正使您的项目独一无二的原因,以及支持您论文的实际证据。

重点领域

  • 作为当前队列选择的一部分,我们对那些为 Fuel 生态系统带来新鲜和独特概念的项目特别感兴趣,但是 Fuel 可以为您的项目提供什么?
    • 模块化:以模块化区块链模式设计,以不同的配置随处可运行。
    • 垂直集成:VM、Sway 和 Forc 工具中的所有产品都设计为在单一的凝聚力开发人员体验中相互配合。
    • 执行:一种新的快速 FuelVM 和并行事务执行,具有基于 UTXO 的事务模型。
    • 互操作性:我们的设计天生擅长在区块链之间架起桥梁,非常适合互操作性和链之间的可移植性。

构建或集成 Fuel 的想法

在我们欣赏所有想法的创造力和独创性的同时,我们鼓励应用程序看看我们当前的生态系统在这里是什么样的。我们的目标是确定能够突破界限的项目,并为超出 web3 环境的用户创造有意义的体验。以下是 Fuel 在其生态系统中寻找的一些想法:

  • 可以构建的内容类别:

    • Defi(永续、收益聚合、小额支付、预测/拍卖市场、DeSci、ReFI)
    • 基础架构和工具
    • Web3 社会
    • 游戏和 GameFi 在 UX 和游戏玩法方面具有很高的优先级
    • 存储-证明
  • 生态系统所需的整合:

    • Bridges、Wallet 和 Indexers(Fuel 有其本机选项,但我们希望用户有更多选项)
    • TVL 统计仪表板、分析仪表板等。
    • 协议/通证聚合器、产品组合跟踪器
    • 天然液体放样令牌(LST)和稳定币
    • 用于 dapps、钱包和服务的跨链通信(通知/消息)

超越整体,以构建 Fuel 为基础

Fuel 的新赠款计划是一个令人难以置信的机会,让热情的创新者在 Web3 的可扩展性领域获得支持、指导和接触杰出的思想领袖。通过培育开创性理念,促进模块化区块链生态系统的发展,我们的目标是为自主未来的前沿带来实实在在的解决方桉。如果您的项目符合我们的愿景和重点领域,我们鼓励您在下面的 typeform 链接中应用。

申请地址

在试用日期为 10 月 2 日至 3 日的演示日标记您的日历,我们的官方团队将展示他们的进展。通过 Fuel 的官方渠道关注更多更新和公告。

如果你觉得你还没有准备好申请补助金,看看SwaySummer 在线黑客马拉松,在那里你可以获得动手体验 Fuel 的技术栈和原生 DSL sway。对于那些不希望成为赠款申请者但希望参加第四季度演示日的人,请在这里与我们联系

关注 Fuel

Twitter | Discord | LinkedIn | YouTube

关于 Fuel

Fuel 是最快的模块化执行层。该项目技术功能强大且时尚,可实现并行交易执行,为开发人员提供扩展所需的最高灵活吞吐量和最高安全性。开发人员选择 FuelVM 是因为其卓越的开发体验以及超越 EVM 限制的能力。

成为一名贡献者

探索我们当前的职位空缺

学习 Sway

· 7 min read
fuel

原文: https://fuel-labs.ghost.io/unlocking-permissionless-interoperability-with-hyperlane/?ref=fuelwiki

编译: kkdemian

  Fuel 正在与 Hyperlane 集成,以实现跨链应用程序和与现有区块链的无许可交互。

fuelwiki

Fuel Labs 很高兴与 Hyperlane 合作,将无权限互操作性扩展到 Fuel 生态系统,释放出一种简单的、无权限的方式,与现有的区块链连接,让用户快速登入。

在过去几个月中,Hyperlane 和 Fuel 团队致力于构建与 FuelVM 兼容的 Hyperlane 部署,并为 Fuel 带来互操作性。今天,我们很高兴地宣布,Hyperlane 将是 Fuel 的第一个互操作性层,Hyperlane 互操作性堆栈将在 Fuel 推出时准备就绪。

什么是 Hyperlane?

Hyperlane 是第一个无许可互操作性层,任何人都可以将 Hyperlane 互操作性堆栈带入任何现成的区块链。利用 Hyperlane,开发人员可以构建链间应用,它可以抽象互换交互的复杂性,并为任何连接链上的用户提供服务。此外,Hyperlane 的模块化安全堆栈使开发人员能够自定义其链间安全。

Hyperlane 是开源的项目,目前由 Abacus Works 的核心开发人员领导。

Hyperlane 如何补充 Fuel 的多链愿景

Fuel 是区块链技术的一项重大进步。但是,如果没有一种简单和无权限的方式将现有的区块链连接到机载用户,这一切都是徒劳的。

目前,开发人员不得不游说允许的互操作性团队来支持他们的链, 而且互操作性团队无法跟上手动部署到每个新链的速度。由于这种允许的互操作性,新链上的用户和流动性增长受到影响。

  • 由于 Hyperlane 的"无允许互操作性"现在支持 FuelVM,因此 Fuel 利益相关者无需担心。Fuel 用户和开发人员现在可以探索 Hyperlane 的独特功能:

    • 将 Hyperlane 部署到任意链上的无允许部署。在这种情况下,任何将来的 FuelVM 汇总都可以无限制地将 Hyperlane 部署到他们的链中,以满足他们的互操作性需求。

    • 通过 Warp Routes 从任何 Hyperlane 支持的链中无权限地桥接任何资产。这对于入职用户和现有链条的流动性尤为重要。

链内应用程序,您的应用程序可以与任何 Hyperlane 支持的链上的其他实例共享状态和流动性。这可以通过将复杂的桥接和链交换概念移动到后端来显着改善用户体验。

为何选择链间应用程序:Yama Finance

一个快速的案例研究,说明在 Fuel 上链间应用程序的含义如何:

Yama Finance 是一个新颖的互换稳定货币和贷款协议,它使借款人能够在波动资产上利用高达 17 倍的杠杆,放大收益率,并提供链上即时流动性。Yama 的稳定币能够通过 Hyperlane 在不同的链条之间传送,没有滑点或流动性陷阱。使用 Hyperlane, Yama 将能够将其稳定币燃烧并铸造到任何支持 Hyperlane 的链条上,以实现无缝链间操作。

目前,Yama 在 Artrium 上只有一个实例,但是有了 Fuel mainnet,它将能够为其稳定组件释放互换协同效应。Yama 的稳定币可以通过 Hyperlane 作为 Artrium 和 Fuel 之间用户的即时流动性桥梁。用户可以直接从 Yama 的界面在链条之间传送他们的 Yama 稳定币,而无需将标签切换到外部桥梁或在官方桥梁上等待。使用 Hyperlane 可以为用户提供更流畅的体验、更快的流动性交换以及更高的应用程序效用。

现在开始使用 Hyperlane x Fuel 构建,使用 Fuel 的文档和 Hyperlane 的文档。

Fuel:全力以赴扩大以太坊的规模

以太坊对模块化路线图的承诺意味着,在执行层上使计算更具可扩展性和效率是构建更具可扩展性的以太坊生态系统的下一步。替代虚拟机是这一难题的关键部分,而 Fuel 在应对这一挑战时处于领先地位。

Fuel 在设计上具有开发人员的最前沿经验,Sway 语言已经获得了显着的吸引力。通过构建开发人员喜爱的基于 Rust 的 DSL 和综合工具,Fuel 能够吸引数十名新开发人员进入生态系统。

因为 Fuel 将部署在以太坊上,开发人员和用户将直接促进以太坊生态系统的增长,而不是迁移到其它 L1s 上。

关注 Fuel

Twitter | Discord | LinkedIn | YouTube

关于 Fuel

Fuel 是最快的模块化执行层。该项目技术功能强大且时尚,可实现并行交易执行,为开发人员提供扩展所需的最高灵活吞吐量和最高安全性。开发人员选择 FuelVM 是因为其卓越的开发体验以及超越 EVM 限制的能力。

成为一名贡献者

探索我们当前的职位空缺

学习 Sway

· 9 min read
fuel

原文: https://medium.com/@ThunderbyFuel/why-we-are-building-an-nft-marketplace-on-fuel-how-is-it-superior-99ae7e09c22f

编译: kkdemian

--- 为什么我们要在 Fuel 上建立一个 NFT 市场。它的优势是什么?

Fuel 是一个模块化的执行层,为 Ethereum 提供了最灵活的吞吐量。它采用模块化设计,以提高安全性并确保交易的迅速执行。

Thunder - 是一个尖端的 NFT 市场,在 Fuel 之上建立了卓越的体验。

在今天的博客中,你将获得关键的见解,了解为什么我们固定在这个卓越的层上构建。

让我们来探讨一下!⚡️

为什么是 Fuel

Fuel 网络是构建一个理想的 NFT 市场的平台。期间。

它能够创建方便的交易功能和灵活的开发。这种致命的融合将使我们的开发团队不仅能够创造无与伦比的交易和用户体验,而且能够贴近创造者,并根据他们的具体需求定制平台。

Thunder 将以成为一个由创作者为创作者提供的 NFT 市场而闻名。

Fuel 的功能需要注意的有

👉 零代币审批

零代币审批意味着用户在将他们的代币发送给合同之前,不必批准他们的转移。相反,他们可以直接将他们的可消费代币的余额发送到合同上。

这一功能使开发者更容易与智能合约互动,在构建新产品时有更大的灵活性。

👉 信任最小化的桥接

Fuel 提供可防欺诈的、信任最小化的轻客户端和信任最小化的流动性桥接,这在两个独立的 L1 之间是不可能的。 为以太坊生态系统提供最大的安全保障。

👉 存储空间的灵活性

由于一个被称为存储空间灵活性的功能,Fuel VM 的用户第一次可以利用 64 位的存储槽,而不是 Solidity 使用的标准 256 位槽。

由于 Fuel VM 不共享 Ethereum 的存储布局限制,它可以利用更有效的存储布局,从而降低存储成本和更好地扩展为 L2(EVM)。

👉 并行交易处理

Fuel 网络是一个以太坊执行层,以模块化的方式构建。当与单体链相比,这允许更大的可扩展性和增强的性能。

鉴于以太坊的性质,这个链的交易是线性处理的。在 EVM 的早期,当大多数程序只使用一个或两个线程时,整个 VM 是严重分散的。

如今,特别是对于第 2 层的解决方案,由于多线程处理器的兴起,同时执行多个交易的能力正成为一个越来越理想的功能。

但相信我们,当涉及到区块链的计算时,Fuel Network 是一个真正的游戏规则改变者。新的和改进的,FuelVM 是一个为速度和响应性而优化的虚拟机。

它的建立是为了促进并行交易处理,从而提高处理速度和效率。这反过来又为用户提供了一个卓越的体验。 此外,与其他智能合约平台不同,FuelVM 将开发者的体验放在首位,使程序员编写代码更加简单,确保智能合约的安全。

👉gas 可以用任何支持的代币支付

用户可以用 Fuel Network 接受的任何代币来支付他们的汽油费。因此,用户并不局限于只用网络的原生代币支付燃气费。

这使得建立在 Fuel 上的平台对新用户来说更容易获得,因为他们不必获得原生网络代币。

NFT 市场的挑战和解决方案

  • 目前的 NFT 市场有几个挑战,我们的目标是通过使用 Fuel 来解决:
    • 交易处理缓慢
    • 高额和隐藏的费用
    • 用户体验差
    • 特许权使用费

让我们深入了解一下,在解决上述问题的同时,Fuel 究竟将如何给我们的平台带来竞争优势。

⚡️ 交易速度的挑战

大多数 NFT 市场不能吹嘘最快的交易处理时间。试图购买或出售 NFT 的用户可能会发现等待他们的交易被确认是很不方便的。更重要的是,市场可能因交易处理速度慢而变得拥挤且昂贵,这可能导致错误或延误,或限制可处理的交易数量。

由于有了我们在上一节详细讨论的平行交易处理功能,交易处理速度慢对 Thunder 来说不再是一个问题。

⚡️ 用户体验的挑战

许多区块链没有优先考虑去中心化,而是专注于构建具有高吞吐量的系统。Fuel 实现了最高的灵活吞吐量,同时仍然保留了去中心化的好处。

Fuel 的执行层是为快速处理大量交易而建立的,这大大增强了 Thunder 上的用户体验。

⚡️ 高昂和隐藏的费用

第 1 层的 NFT 市场有一个共同的问题--他们未能成功降低费用。这使得一些用户参与市场的成本过高,特别是当费用不仅高,而且不透明时。

Fuel 的虚拟机架构是其最显著的优势之一。它的设计是为了消除我们在 EVM 中经历的浪费和支付的费用,同时为开发者打开新的设计机会的大门,使我们能够降低费用,并消除任何隐藏的费用。

在 Thunder,我们决心不仅提供最好的体验,而且还提供最低的费用。

⚡️ 版税问题

为了收取版税,许多 NFT 市场最近引入了智能合约级别的限制。这破坏了数字资产的去中心化、无许可和开放的性质。

这可能会阻碍交易,并消除围绕代币所有者如何使用他们的代币的选择,限制了艺术家和收藏家以他们想要的方式运作的选择性和灵活性。

Thunder 将赋予创作者权力,不仅通过公平的版税制度支持创作者,而且还在技术支持、网络和社区建设方面提供帮助。

最后的话

综上所述,Thunder 团队相信,Fuel Network 将为我们的用户提供卓越的体验,它是为我们的 NFT 市场提供动力的最佳选择。

我们对我们平台的未来持乐观态度,认为我们做出了正确的选择。

此外,请务必在社交媒体上关注我们,以便在我们的市场正式上线时了解最新的信息。

请继续关注并记住:未来是模块化的!LFG ⚡️

· 14 min read
fuel

体验 P2P 网络等新功能,并参与塑造以太坊的未来。

这篇文章由 Fuel 大使通过俄语翻译而来。

我们很高兴地宣布推出 beta-3 测试网,在 Fuel 上增加 P2P 网络。有了这第三个测试网,Fuel 进入了测试的后期阶段,并在通往主网的道路上达到了一个关键的里程碑,这是一个模块化的未来,为以太坊生态系统实现真正的可扩展性。

11 月,我们推出了 beta-2,增加了桥接支持,以便开发者可以在 Fuel 上进行跨链 dapp 的实验。我们很高兴看到一个充满活力的生态系统在 Fuel 上出现,现在有超过25 个项目在这里。自之前 Beta2 以来,已经处理了超过 900,000 笔交易,并看到了来自开发者、项目和社区成员的巨大兴趣。

激动人心的新可能性正等待着 beta-3 的到来。

P2P 网络现在在 Fuel 上

beta-3 扩展了 beta-2 的功能,引入了P2P 网络和运行同步全节点的能力。这使得 beta-3 的 API 能够扩展到并达到 beta-2 中观察到的需求水平。在接下来的测试网中,我们将启用公共 P2P 访问,这样任何人都可以运行连接到 Fuel 的本地节点。

请注意,beta-3 不是一个激励性的测试网。参与这个网络不会有直接的奖励。

关键功能

以下是 beta-3 测试网的关键功能的完整列表:

⛓️ 区块同步

同步的完整节点可以通过 P2P 网络与 Fuel 网络同步。这主要是对于能够分叉主网状态进行合约测试或拥有一个专门的全节点进行应用索引的事情很有用。虽然 P2P 已经启用,但目前只适用于我们用来加速/扩展 API 的可信连接。

🤝 单一共享网络

beta-3 是一个共享的、面向开发者和用户的公共测试网。开发者可以部署合同,然后用户可以与这些合同进行交互。

🚰 水龙头

任何人都可以使用龙头来获得一些测试 ETH 来部署或与合约互动。可在此领取

📃 GraphQL 端点

Fuel Core 节点使用 GraphQL 而不是 JSON RPC。beta-3 的公共 GraphQL 端点的玩法可在此获得。

🔍 区块浏览器

这里有一个区块资源管理器(仍然大量是一个正在进行的工作)。

如果你有任何问题(与开发有关或其他),你可以加入 Fuel Labs Discord 并前往 Testnet 类别下的#questions 频道。请务必关注我们的 Twitter,了解最新信息。

新内容

编译器

由于引入了各种后端优化,编译器现在能够更稳健、更有效地处理大型设计,从而使字节码大小减少 30%。还引入了新的功能和增强功能,如支持可变静态数组,#[应付]注解,消除了~访问相关函数的需要,能够从脚本中返回 Vec,以及能够通过 main()在谓词中传递谓词数据。

🌐 客户端

支持运行本地节点的块同步(见上面的关键特征)

Gas 计量的谓词 - 谓词费用的计算与脚本类似,解锁标准控制流的能力,如循环或动态跳转。谓词使用的气体从整个 txn 汽油限额中扣除,防止昂贵的操作码被低估。

修订后的气体时间表--vm 操作码是根据更精确的基准系统重新定价的。随着更多的功能和优化的加入,气体时间表将继续调整,新的定价框架将使其更容易发现变化并在必要时调整定价。

新的数据库优化,以提高 API 性能。

🔧 工具箱

forc test 语法高亮

现在你可以使用 #[test(should_revert)] 属性来描述一个预期会恢复的单元测试。这使得测试失败状态成为可能。

测试输出现在显示失败测试的名称、文件路径和行数。

为单元测试中的合同调用奠定了基础。当在一个合同项目上运行 forc test 时,forc 将首先构建和部署合同,然后再构建和运行单元测试。这使得早期支持单元测试中的合同调用。

fuelup 亮点

现在支持用 fuel-toolchain.toml 覆盖工具链。这样就可以把目录和仓库钉在特定的 fuelup 通道和组件版本上,提高 Fuel 项目的可重复性。

forc doc 亮点

由 forc doc 生成的 HTML 现在支持改进的模块导航。

新的和改进的样式和 markdown 渲染。

其它亮点

forc test 和 forc fmt 现在支持工作区,并将为每个成员包运行。

forc.toml 现在支持为合同依赖关系指定一个盐(Salt)。

增加了一个简单的 forc tx 插件命令,用于通过 CLI 构建序列化的事务。

🧩 语言服务器

对语言服务器进行了优化,使其能够同时与多个项目一起工作,使用户能够在不中断工作流程的情况下轻松地在项目之间切换。

实施了改进的警告和错误诊断,提供了关于潜在问题的更准确和详细的信息。

增加了代码动作,用于为 abi 定义自动生成一个植入块。

初步支持 neovim,为用户的开发环境提供了更多的灵活性。

SDK

Rust SDK

区块操作,用于测试特定场景下的智能合约。

更简单的测试基础设施设置:在一个宏中描述你的测试钱包、合约、脚本、谓词和部署。

改善智能合约的调试, 优化解析和人类可读的还原错误。

交易费用现在可以使用消息支付,即桥接资产。

谓词数据编码器。

abigen!宏重做:现在支持多个合约、谓词和脚本都在同一个宏调用中。

新的谓词 API。

更好的依赖关系导入体验。

TS SDK

更好、更可靠的日志解析。

整体的人机工程学改进。

新的 Abi-typegen CLI;

全新文档。

🔌 前端

Fuel 钱包

交易预览能够更好地预览复杂的交易,例如包含多种操作的交易,如将资产转移到多个地址,调用合同,或同时进行两种操作。

多账户支持现在可以在 Fuel 钱包内管理多个地址。

交易历史让用户在不离开钱包的情况下看到账户的所有交易。

新的软件包 @fuel-wallet/sdk 用于类型支持。当使用 Fuel Wallet 开发时,您可以导入我们的 TypeScript 包,以拥有我们钱包的类型,并与目前使用 Fuel TS SDK 的项目更好地整合。

使用私钥创建账户。在特殊情况下,如开发,你可能需要使用一个与当前钱包助记词无关的私钥来创建一个新的帐户。

添加自定义资产。现在 dApps 和用户可以添加元数据到钱包上的自定义资产,使得不仅有 Fuel 团队的官方代币列表,而且有第三方应用程序的可定制资产。

🗃 索引器

  • 结合你编译的 Sway 合同 ABI 和 GraphQL 模式,建立索引器,编译到 WASM。

  • 重新部署新的索引器,而无需重新部署你的合同。

  • 你可以根据自己的需要对 FuelVM 块的信息进行索引,或多或少。

  • forc-index 插件

    • 一个新的 Forc 插件,用于使用一组简单的命令创建、构建和部署新的索引器。
  • 新版文档上线! (查看新的快速入门)

应用开发

  • Sway 标准库:

    • 支持低级别的调用(在编译时 ABI 未知)
    • 新的字节类型,以取代 vecu8>,用于非类型化/原始数据。
  • Sway-libs:

    • 固定点和有符号整数类型
    • 所有权库

开发者教育

  • 我们为开发者更新并发布了新的资源:
    • 开发者快速入门手册(学习如何在 Fuel 上构建和部署他们的第一个全栈应用)。
    • 技术论坛,查看常见问题,发布问题,并从社区成员和 Fuel 贡献者那里获得支持。

对于开发者

这里有更多的 beta-3 文档:

🚰 测试币水龙头

部署合约和与网络互动需要有效的交易,而这些交易需要币。Testnet ETH 可以通过完成一个验证码从水龙头领取

💰 钱包

这里有一个持久的CLI 钱包(有 Linux 和 MacOS 的二进制文件)。

一个网络/浏览器插件钱包正在积极开发中,可在此查看

⚡️ 入门

关于 Fuel 的概述,请看Fuel 的文档

要在 Fuel 上开始构建,请查看开发者快速入门。该指南为开发者在 Fuel 上构建应用程序提供了一个端到端的操作指南。

🌴 智能合约语言(Sway)

要开始为 Fuel 开发合约,请看看 Sway Book,以及 Rust SDK 和 TypeScript SDK。

请注意,beta-3 测试网正在积极开发中,可能会出现突破性的升级,甚至是再生事件。

超越单片机

模块化的区块链设计正迅速成为应对区块链数量级扩展挑战的首要解决方案。该行业正在迅速摆脱单一的区块链设计,转向模块化设计。

我们相信创新不需要推出新的 L1,而是可以在执行层发生。Fuel Labs 正以最快的模块化执行层 Fuel 引领这一潮流。

不受 EVM 的限制,Fuel 从模块化优先的角度来处理可扩展的执行,允许对 EVM 的低效执行环境进行重大改进,从而实现最大的分散化和最高的灵活吞吐量。

通过这场新的运动,我们有机会重新开始,并从根本上建立新一代的区块链,超越单片机。

关注 Fuel

Twitter | Discord | LinkedIn | YouTube

关于 Fuel

Fuel 是最快的模块化执行层。该项目技术功能强大且时尚,可实现并行交易执行,为开发人员提供扩展所需的最高灵活吞吐量和最高安全性。开发人员选择 FuelVM 是因为其卓越的开发体验以及超越 EVM 限制的能力。

成为一名贡献者

探索我们当前的职位空缺

学习 Sway

· 12 min read
fuel

来自最快的模块化执行层的最新消息。

fuelwiki

欢迎来到 Inside Fuel,我们对技术发展的回顾以及 Fuel 网络上发生的一切。花点时间了解所有最新消息。

🆕 Fuel 的团队最新情况

没有令人难以置信的贡献者团队,构建最快的模块化执行层是不可能的。以下是本月团队的最新成员:

fuelteam

📰 在 Rust 中的新闻

rustfuel

根据 Rust In Blockchain 的月度回顾,Fuel 是今年冬天最活跃的基于 Rust 的项目之一,Fuel:在 2022 年 12 月和 2023 年 1 月之间有 548 个合并的 PR,406 个封闭的问题,以及 256 个开放的问题,使我们在最活跃的基于 Rust 的区块链中排名前五。

🎙️ 播客和 AMAs

约翰-阿德勒参加了 Bankless Podcast,解释了为什么以及模块化区块链将为自主的未来设定道路。

他还参加了OxResearch 的播客,解释了 Fuel 如何区别于其他扩容方案。

🌴 Sway 语言日

我们主持了第三期 Sway Day,这是一个关于 Sway 所有事情的月度讨论。这一次,我们回顾了 2022 年的所有发展成就,并与约翰-阿德勒一起设定了 2023 年的期望。

  • 在 2022 年底,你可以记住。
  • 自 Sway 开始以来,已有 3168 个问题被修复。
  • Sway 资源库已经从 0 增长到 350 多颗星。
  • 使用 Sway 可以直接在编译器层面进行重入分析。

Reentrancy detection is a critical function in smart contract systems.

Fuel Labs 软件库在区块链领域的 Rust 中,整整一年都在关闭的 PR 中排名前五,并且在打开/关闭的问题中一直排名前一。

我们流程的文档不断带来越来越多的第三方贡献者和建设者(目前有 25 个以上的项目在 Fuel 上构建)。

在过去的一年里,Fuel 和 Sway 的受欢迎程度明显上升,其标志是开源贡献和参与我们的赠款计划以使用 Sway 在 Fuel 上构建项目的大幅增加。

  • 在 2023 年,你可以期待:
    • 在字节码大小方面的编译器优化。
    • 更多的后端语言将被 Sway 支持(例如 EVM 后端已经在开发中)。
    • 通用和特性约束将被改进,抽象将更加经济和强大。
    • 更多的应用程序将从 Solidity/Vyper 移植到 Sway。
    • 在编译器层面改进重入分析。
    • 增强的工具和语言特性。

💻 技术更新

什么是 Fuelup?

Fuelup 是 Fuel 的官方软件包管理器和复用器,从官方发布渠道安装 Fuel 工具链。它使你能够轻松地安装预先打包的工具链,保持它们的更新,甚至创建自定义的工具链并在它们之间切换。

二进制文件通过 Fuelup 作为代理执行,允许工具的灵活执行。

它简化了普通平台的 forc 和 fuel-core 的 Sway 应用程序的构建和维护。

Fuelup 中加入了对覆盖工具链的支持。

开发者可以在 Sway 项目根部的 TOML 文件(fuel-toolchain.toml)中指定一个组件的特定版本,当在该目录下工作时,fuelup 将自动使用指定的版本。

fuelup 处理二进制文件的方式也被更新了 - fuelup 现在使用~/.fuelup/store中的通用存储来缓存你的二进制下载。这意味着在不同的工具链中不会再有相同版本的重复组件,而且用已经下载的组件创建一个新的工具链几乎不需要时间。

Sway 应用程序

已经部署在 Sway 上的 dapp

新的碎片化 NFT 应用: 碎片化 NFT 应用将把 NFT 锁定在 fractional-NFT(f-NFT)合约中,并允许用户购买新铸造的 fractionalized 代币。然后,这些代币可以在 AMM 上买卖,或者在启动回购的情况下将其退回到分销合约。如果所有的代币都被退回,管理员可以从 f-NFT 合约中解锁 NFT,重新获得全部所有权。

新的 Timelock 应用: 时间锁的目的是将交易的执行限制在某个时间窗口。该交易通常涉及资金转移,例如通过托管、归属时间表、延期付款等。然而,它也可用于无价值的执行,即调用合同来执行计算。交易参数被散列并存储在一个队列中,等待后续调用执行。用户可以选择在时间窗口内执行交易,或者通过将其从队列中删除来取消交易。

Sway 语言一般性更新

  • 引入 Sway 参考,这是一个更具技术性的 Sway 文档来源。
  • 引入了 __smo intrinsic。
  • 启动了 EVM 后端工作。
  • 引入配置时间常数。
  • 改进了对方法调用、不匹配的 ABI 方法、不正确使用的类型等的错误信息。
  • 在 CEI 分析中增加了平衡树和输出消息的效果。
  • 增加了对不完整路径表达式/模式的更好的解析器恢复。

错误修复

  • 对特质约束的解析,允许找到正确的特质方法。
  • 对死代码分析,以防止错误报告死代码。
  • 防止无限类型统一带来的堆栈溢出。
  • 在类型断言方面,防止不健全的类型推理和内部编译器错误。
  • 在匹配表达式中计算嵌套枚举匹配的缺失模式。
  • 阻止重复的 ABI/特质声明。
  • 禁用 ABI 方法的自我参数。

标准库更新

  • 引入 Byte 类型。
  • 支持 u8, u16, u32 的位操作。
  • 优化 U128 和 U256 的除法操作。
  • 删除 std::context::gas,改用 std::registers::context_gas()。
  • 引入低级别的调用功能。
  • 改为使用 Bytes 类型的 send_message 数据参数。
  • 增强结果库。
  • 引入 Never 枚举。

工具更新

  • 对逗号分隔的注释进行授权。
  • 在 forc doc 中增加了 CSS 样式、favicon 和--document-private-items 选项。
  • 引入#[test(should_revert)]属性,以表示单元测试应该回退。
  • 允许 LSP 以部分配置启动。
  • 增加 LSP 选项来隐藏编译器的警告和错误。
  • 为 ABI 方法增加#[支付能力]注解。
  • 使 LSP 能够同时与多个项目一起工作。
  • 增加了对从单元测试中调用合同 ABI 的支持。
  • 增加了 forc 文档中项目与模块之间生成链接的接口。

Forc 更新

  • 引入构建标志以打印死码分析图。
  • 在 forc 测试中引入了工作区测试功能。
  • 为 forc clean 增加了工作区支持。
  • 修正了一个错误,防止在同时运行 forc 的多个实例时出现 git 签出竞赛。
  • 修正了纠正 arm64 二进制文件的可执行输出的问题。

燃料核心

  • P2P 区块同步(增加了运行同步全节点的能力)。
    • 包括增加了两个新的服务,同步和区块导入器。
    • 在标准的 fuel-core 二进制文件中启用了 libp2p。
  • 端口和适配器的重新架构。
    • 将 fuel-core 的内部结构分解为易于单元测试和可重用的库。
    • 为其他的实现方式铺平道路,如轻型客户端。
  • 改进数据库性能(减少克隆)。
  • 引入天然气时间表框架和修订天然气价格。
    • 新的框架使我们能够根据基准输出自动重新定价 gas 计划。
    • 随着我们实施合同状态合并和进一步优化数据库,将会有更多的天然气价格变化。
  • 燃气计量的预测。 测使用标准气体时间表定价,其执行预算将从交易气体限额中扣除。以前,它们只根据它们增加到交易中的字节数来定价。
  • 用 1.67 版本的 Rust std lib impl 替换 VM 中的整数对数(现在需要 Rust 1.67 版本来使用 fuel-core & FueVM)。
  • 实现了区块头的二进制 MMR。
  • 汽油价格现在可以作为 chainconfig / genesis 块的一部分进行配置。
  • FuelVM 现在是一个包含虚拟机所有基于 Fuel 的依赖关系的单一程序。
  • 更新 GTF 参数常量以符合规范。

SDKs (Fuel-TS & Fuel-RS)

Rust SDK

  • 更简单的测试基础设施设置:在一个单一的宏中描述你的测试钱包、合同、脚本、谓词和部署。
  • 解析和人类可读的还原错误,使智能合约的调试更加友好。
  • 交易费用现在可以使用信息支付,即桥接资产。
  • 引入了 Predicate 数据编码器。
  • 重做 theabigen!宏, 现在支持多个合约、谓词和脚本都在同一个宏调用中。
  • 谓词 API 的引入。
  • 更好的依赖关系导入体验;

Typescript SDK

  • 更好、更可靠的日志解析。
  • 全面改善人机工程学。
  • 引入 abi-typegen CLI。
  • 实时文档返工。

关注我们

Twitter | Discord | LinkedIn | YouTube

关于我们

Fuel 是最快的模块化执行层。该项目技术功能强大且时尚,可实现并行交易执行,为开发人员提供扩展所需的最高灵活吞吐量和最高安全性。开发人员选择 FuelVM 是因为其卓越的开发体验以及超越 EVM 限制的能力。

· 6 min read
fuel

今天,Fuel Labs 介绍了 Yul+,它为 Yul 增加了各种 QoL 功能,Yul 是 Ethereum 虚拟机的一种低级中间语言。

Fuel wiki Labs

Yul 是由 Solidity 开发者编写的一种不可思议的小众语言,作为进一步优化的编译目标。它的特点是一个简单而实用的低级语法。它允许开发者比 Solidity 更接近原始的 EVM,并由此带来了对 Gas 使用的大幅改善的承诺。

Fuel Labs 已经在很大程度上用 Yul 实现了其最初的开放性测试的 OP 合约,但我们注意到,即使增加极少的基本语言,我们的代码也会变得更加清晰和高效。

Yul+可以被看作是 Yul 的一个实验性升级,Yul 可能会在以后的时间里把它的一些功能原生地整合起来。

一些 Yul 的基础知识

一个带有构造函数和运行时的基本 Yul 合约:

  object "EmptyContract" {
code {

// Your constructor code

datacopy(0, dataoffset("Runtime"), datasize("Runtime"))
return(0, datasize("Runtime"))
}
object "Runtime" {
code {

// Your runtime code

}
}
}

处理请求数据

  // copy calldata to memory
// this copies 36 bytes of transaction calldata to memory position 0

calldatacopy(0, 0, 36)

内存管理

  // store and read memory
// store 0xaa at memory position 100

mstore(100, 0xaa)

// load 32 byte chunk from memory position 100 and assign to someVar

let someVar := mload(100)

哈希

  // hash memory position 0 to 0+32, assign result to someHash

let someHash := keccak256(0, 32)

状态存储

  // store value 0xaa in state storage slot 3

sstore(3, 0xaa)

// get value from state storage 3 and assign to someVar

let someVar := sload(3)

函数和条件语句

  // Functions and conditions

function someMethod(someVar, someOther) -> someResult {
if eq(someVar, someOther) {
someResult := 0x45
}
}

// Loops

for { let i := 0 } lt(i, 100) { i := add(i, 1) } {
// some loop code
}

// Switches

switch someVar
case 0 {
// when someVar == 0
}

case 1 {
// when someVar == 1
}

default {
// default
}

Yul+ 特点

  • 所有现有的 Yul 语言功能
  • 枚举
  • 常量
  • 以太坊标准 ABI 签名生成 ( sig"function …" )
  • 布尔值(真,假)
  • 默认情况下的安全数学(即加法、减法、乘法的溢出保护)
  • 注入的方法(mslice 和 require)
  • 内存结构 ( mstruct )

用法

枚举、常量和布尔值

  enum Colors (
Red, // 0
Blue, // 1
Green // 2
)

// Constant someConst will equal 1

const someColor := Colors.Blue

// Constant someBool will equal 0x1

const someBool := true

以太坊标准 ABI 签名生成方法 sigs 和主题:

  // someVar will equal 4 byte method signature 0x6057361d

let someVar := sig"function store(uint256 val)"

// someTopic will equal 32 byte topic hash 0x69404ebde4a368ae324ed310becfefc3edfe9e5ebca74464e37ffffd8309a3c1

let someTopic := topic"event Store(uint256 val)"

默认情况下,所有计算现在都是安全的,如果需要,可以在编译器中将其禁用。

  let someVar := add(3, sub(4, 2))

// will compile to this, with safeAdd, safeSub methods injected

let someVar := safeAdd(3, safeSub(4, 2))

为方便起见,我们添加了一个内存片 mslice,并要求如果为真:

  mstore(300, 0xaabbccdd) // note, mstore left pads zeros by 28 bytes

let someVal := mslice(328, 3) // will return 0xaabbcc

require(gt(someVal, 0)) // someVal > 0 or revert(0, 0) nicely

最后,我们启用内存结构。这些用于描述内存中已经存在的结构,例如调用数据、哈希数据或任何具有写入内存的结构的数据。

它提供了广泛的定位、偏移、散列、索引和组织功能,以通过按需注入的简洁高效的预制函数更好地处理内存。我们仍然继续使用注入函数的函数符号,这不会破坏现有的 Yul 语法风格。

  // Let’s assume we assign some calldata to memory position 0

// this describes an abstract memory construction:

mstruct SomeCalldata(
signature: 4,
value: 32,
)

let methodSig := SomeCalldata.signature(0) // slices out sig
let someVal := SomeCalldata.value(0) // slices out value

// we also get some nice indexing and offset features

SomeCalldata.value.position(0) // equals 4 (i.e. 0 + 4)

// Index ordering values as well

SomeCalldata.signature.index() // equals 0

SomeCalldata.value.index() // equal 1

// Keccak hashing

SomeCalldata.value.keccak256(0) // equals 32 byte hash of value

// Calculate entire size of calldata structure

SomeCalldata.size(0) // equals 36 (i.e. 4 + 32)

示例:Yul+ SimpleStore 合约

  object “SimpleStore” {
code {
datacopy(0, dataoffset(“Runtime”), datasize(“Runtime”))
return(0, datasize(“Runtime”))
}
object “Runtime” {
code {
calldatacopy(0, 0, 36) // copy calldata into memory

mstruct Calldata( // mstruct describes calldata
sig: 4,
val: 32
)

switch Calldata.sig(0) // get signature at positive zero

case sig”function store(uint256 val)” { // store method
sstore(0, Calldata.val(0))
}

case sig”function get() returns (uint256)” { // get method
mstore(100, sload(0))

return (100, 32)
}
}
}
}

在线调试

Yul+ - Low-Level Ethereum Devepment

总结

总之,Fuel Labs 团队希望通过创建更多低级替代方案来扩展以太坊虚拟机的可能性,我们每天都使用这些替代方案来为生态系统构建高性能的 optimistic rollup 可扩展性。

· 9 min read
fuel

fuelwiki

两个多月前,我们宣布可持续扩展将以 Fuel 的形式出现在以太坊上,这是一个最先进、最高效、最安全的优化 Rollup。几天前,漫长的等待终于结束了:我们的第一个公共测试网现在已经上线,而且代码是开源的 Fuel v0 是一系列短暂的测试网,用于测试稳定性和性能,并将在未来几个月看到一系列的改进。我们的目标是在 2020 年第一季度末推出 Fuel v1 的长期测试网。

Fuel V0 版本的特点

⛽ Fuel v0 测试网将是一系列短暂的测试网,因为我们会不断地改进性能和稳定性,并增加新的功能(我们将在下一节讨论)。

⚙️ Fuel 是一个高度优化的最小可行合并共识(又称 Optimistic Rollup)的版本,它比原来的设计反应更快、更便宜,同时保留了相同的安全保证。通过使用 Yul 而不是 Solidity 进行低级别的内存操作,我们的欺诈证明可以在 1M gas 以下执行。

🔒 燃料费的安全性和保障是最佳的。有了廉价的欺诈证明,它对链式拥堵攻击有很强的抵抗力,与 Plasma 和状态通道网络不同。就像任何正确设计的 Optimistic Rollup 一样,攻击它的唯一方法是矿工对主链进行为期一周的 51%攻击--对于像以太坊这样重要和安全的链来说,高度可见,容易归因,而且在实践中不可能。

🔀 与以太坊使用的账户数据模型不同,燃料币使用的 UTXO 数据模型与比特币类似。这允许可并行的交易验证,更重要的是,提供了更有效的状态访问模式。因此,Fuel 全节点不需要快速的 SSD。通过使用彩色硬币(是的,这些终于发生了,而且不是在比特币上),以太坊和代币都得到了支持。

⚡ 为了消除通道、Plasma 和 vanilla optimistic rollup 所负担的一周资金提取延迟的麻烦,Fuel 上的交易也可以将资金发送到 HTLCs,允许原子互换。当与流动性提供者网络相结合时,用户可以立即提取他们的资金,可能最快仅需一个区块。这也为流动性提供者打开了另一扇门,让他们完全不受信任地从他们的以太坊和代币上获得回报。

🦄 由于使用 UTXO 数据模型而不是账户数据模型,可以构建两方之间的资金交换转移。这意味着可扩展和完全非托管的交易所可以建立在 fuel 之上,只有订单匹配发生在链外。

⚙️ 通过将状态和状态访问完全移出链外,Optimistic Rollup 是可持续扩展的。不受控制的状态增长是目前以太坊面临的最大问题和瓶颈。Fuel 今天在实践中完全消除了这个问题,而不必等待 Eth 2.0 或无状态的 Ethereum。

🤷 我们将誓死捍卫的一个关键原则是,Fuel 是--并将永远是--完全无代币的。代币对于确保 L2 系统是没有必要的:这毕竟是以太坊链的作用。二级系统的代币没有任何功能,它们的存在只是为了让开发者和他们的投资者致富,代价是用户的摩擦增加和额外的寻租行为。另一方面,燃料是完全无许可和无监管的。我们的区块生产模式是一个优先聚合器,即我们有一个很短的时间段,在这个时间段内,我们可以独占包括区块中的交易。

⏩ 厌倦了等待 6-12 秒的下一个以太坊区块,以确保下一个燃料区块的安全?我们支持即时信任交易:如果你,接收者选择信任我们,直到下一个区块,你可以接受收到的交易为有效。你会收到来自交易发送者和我们的签名加密证明,所以我们方面的任何重复消费都是可以证明的。与其他使用共享债券池进行即时交易的扩展项目不同--这实际上并没有增加任何安全性--并且通过描述攻击 "不方便 "来混淆风险,我们将我们的信任关系明确化,以便用户能够做出明智的选择。

😸 我们的代码在 Apache 2 许可下现在是开源的。请在这里查看

未来的改进

我们计划对我们的 Fuel optimistic rollup chain 和周边工具进行一些改进。

我们将很快发布 Yul+,它建立在 Yul 中间语言的基础上,增加了内存结构、枚举、常量和其他生命质量的改进。这使得有大量内存访问的合同(任何会经常处理 calldata 的合约,如所有的 rollups)能够以可读的方式编写,同时保持极高的 gas 效率。

一个类似于比特币的带有契约的谓语脚本系统正在进行中。这将在燃料上实现大量的智能合约应用,同时保留 UTXO 数据模型比账户数据模型的性能优势。

zkRollup 比 OP rollup 的唯一性能优势是,前者可以不在链上发布见证数据(即交易签名)。有了 BLS 聚合签名方案,这个优势就完全消失了,OP 的滚动实际上比 zk 更具可扩展性。我们正在积极研究结合众多理想特性的尖端签名聚合方案。

鉴于 OP 可以被认为是一种交易批处理的形式,我们可以在 Fuel 之上建立高度可扩展和去中心化的社交网络。Twitter,Reddit,你的名字,都可以建立为不可审查的和完全开放的社交网络,可以利用 Ethereum 的货币乐高和 DeFi 生态系统。

总结

这仅仅是个开始。我们对 Fuel 的未来有很大的计划,以及它所带来的高度可扩展的稳定币支付的承诺--以及其他用途。如果你想支持我们的研发工作,可以考虑为我们的Gitcoin 基金捐款

同时,如果您想了解更多信息,并保持对我们工作的关注:

Website

Twitter

GitHub

· 7 min read
fuel

fuelwiki

Fuel 是一个完备的 OP rollup 侧链(目前主攻模块化),目前在以太坊的 Ropsten 和 Görli 测试网运行。

今天我们将介绍如何开始使用 Fuel!

为什么使用 Fuel?

💸 成本:任何 ERC-20 代币或以太坊的交易费用都非常低(每笔交易低于 3500Gwei,在 V1.0 中为 2400Gwei,目前为 21-50,000Gwei)。

⚡ 速度:快速的零交易时间(低于 1.4 秒,平均 0.8 秒)。

🔀 元交易性:以任何 ERC-20 代币或以太坊支付费用。

🛣️ 高吞吐量:可以处理极高的代币和以太坊交易量(即每秒数万次)。

⏩ 生产方向:我们的架构是为验证和使用的大规模容错消费硬件设置而精心设计的,不需要依赖新的密码学、可信设置或昂贵或定制的计算机硬件

🙋 自行开发:在 Apache-2.0 下完全开源

Fuel 是如何工作的?

  • 基本原理: 一个单一的智能合约包含了所有的共识规则,存款和取款系统,用于 Fuel 优化 Rollup 的 Ethereum 侧链

  • 存款: 用户存入资产(即任何 ERC-20 或以太币),然后可以受益于最低的交易成本和快速的确认时间,在任何时候都不会失去保管或控制权

  • 提款: 用户可以在任何时候使用流动性提供者的交换或标准提款(类似于其他 Rollup 系统)进行提款。

  • 转账(交易): 当用户在 Fuel 内部转账时,数据会被我们的聚合器压缩并转储到以太坊上,然而您总是可以自己压缩并发布您自己的交易

  • 密钥: 最好是使用一个二级签名密钥来签署侧链内的转账和提款。资金被存入该签署密钥的地址,然后在 Fuel 内对这些资金进行控制。第三方签名对象也可以使用,比如那些与 MetaMask 互动的对象,但是必须有原始椭圆签名的哈希值。

  • 钱包:Fuel 核心的钱包对象将在你选择的本地键值存储数据库(即索引数据库、本地存储、水平数据库等)中管理用户的可支出投入,输出生产和交易的签署。

Fuel 适合你吗?

  • 是的,它可以适用任何项目:
    • 做交易时需要控制成本或数量
    • 需要快速的交易速度(低于 1.4 秒)
    • 有兴趣建立一个类似 Burner Wallet 的系统
    • 需要在任何 ERC-20 代币之间进行无许可的原子交换项目
    • 最终会想要部署自己的大型汇总系统

NodeJS 入门

本教程将包括:

(1)在 Node 中设置一个持久的燃料钱包,(2)将一些假的 DAI 注入你的钱包,以及(3)进行你的第一次转移。

让我们开始一个新的 Node 项目并安装 Fuel,打开你的终端。

mkdir fuel-example && cd fuel-example

npm start

npm install --save fuel-core

nano index.js

首先让我们(1)导入 fuel-core,(2)设置一个签名密钥,(3)使用 LevelDB 的包装版本设置本地持久化存储,以及(4)一个签名者对象。

注意:我们在整个 Fuel 中大量使用以太坊,这里我们使用其标准化的 SigningKey 对象用于 Fuel rollup 钱包。这个密钥可以被认为是你的 Fuel 密钥,代币可以被存入 Fuel 中。

注意:在生产中,私钥的生成和处理必须以更好的熵和更谨慎的存储方式进行。现在,我们将只使用 DB。

使用 NodeJS 的 Fuel 进行设置、龙头和转移

现在让我们(1)用我们的数据库和签名者设置一个 Fuel 钱包对象,(2)向我们的地址注入一些假 DAI。

注意:每个 IP 只能每隔 10 分钟提取一次假 DAI,所以我们用一个空的 try/catch 来包装提取,以便不超过第一个 10 分钟的窗口。

const wallet = new Wallet({ db, signer });

try { await wallet.faucet(); } catch (e) {}

现在让我们来监听钱包余额的变化;这将激活我们的实时 mempool websocket-based pubsub 系统。 注意:监听将在钱包余额的任何变化中启动;这包括水龙头金额、转账、存款和提款。

await wallet.listen( async ( ) => {
console.log('Balance update in transit',
utils.formatEther(await wallet.balance(wallet.tokens.fakeDai))。
});

现在让我们进行一次转账,将 1.5 个假 DAI 转到我们自己的账户,以测试一次转账。

await wallet.transfer(utils.parseEther('1.5'), wallet.tokens.fakeDai, wallet.address)。

console.log('You transfered 1.5 Fake Dai to yourself, congrats!');
})();

现在让我们在 Node 中保存并在本地运行该代码。

// cntrl + x then y then enter
node index.js

现在你已经成功地在 Node 中设置了(1)一个本地的燃料钱包,有一个(2)持久的密钥值存储,(3)从龙头收到了一些假的 DAI,并且(4)进行了你的第一次燃料转账。

· 10 min read
fuel

fuelwiki

两个月以前,一支由以太坊工程师和研究者组成的小队伍成立,致力于开发后来因 Vitalik Buterin 而知名为 “optimistic rollup” 的技术。我们的工作基于 ConsenSys 研究员 John Adler 的研究和工作,他在几个月前把该技术视作一项可行的可扩展性方案,并撰写了这一技术的详细描述。他所描述的可扩展方案不要求对 layer-1(以太坊底层)作任何共识规则上的改动,而且可以实现之后马上就可以改善以太坊的 “状态膨胀问题”(这个问题主要是由 ERC-20 代币(尤其是 Tether 稳定币)的转账导致的)。经过一番深度讨论,我们开始努力将一个个能解决单个问题的以太坊扩展方案实现组合起来,最终实现了一个可持续、可扩展、便宜且可靠的稳定币支付方案:Fuel。

我们相信区块链的杀手应用就是稳定币支付。如果某个区块链网络可以主导这个业务,它就可以为全球经济增加不可计数的价值、产生深远的影响。Fuel 正是认准这一点,才在以太坊上用最简单的 optimistic rollup 方法来解决吞吐量问题。

以太坊上的可持续扩展方案

我们一而再、再而三地看到,以太坊的交易吞吐量是非常有限的:ERC 20 代币的吞吐量不到 10 笔/秒。吞吐量受限在很大程度上是因为 状态数据(即账户余额以及合约存储槽等构成的数据)。以太坊的未压缩状态数据大小在 45 GB 级别,大到根本无法放进 RAM,因此节点需要大量访问硬盘,尤其是在处理代币转账的时候。

日益严峻的状态膨胀问题是以太坊当前最大的问题,因为状态,不像历史,是不能删除的。我们就是希望能够扩展以太坊吞吐量同时 不至于 加剧状态数据膨胀以及状态数据读写。实际上,只需通过交易 calldata 就能很轻松地实现这一点!只需将一条侧链的交易数据 “发送” 到链上并在链上默克尔化,我们就可以几乎消除对以太坊底层的状态访问,同时可持续地拓展吞吐量(即:不会需要全节点经常性投入大量资源或产生额外的长期成本)。

什么是 Optimistic Rollup?

Fuel 建立在 Adler 富有创见的文章《最基本可行型合并共识》之上。在该文中,Adler 为免信任、免许可、附带链上数据可用性、用错误性证明推动正确执行的侧链(也就是现在众所周知的 “Optimistic Rollup” 技术)作了可靠的最基本技术说明。

Devcon5 in a nutshell.

Optimistic rollup 有多种属性,可以将自身与早期的扩展提议如 shadow chains 和 Plasma 区别开来。不像 Shadow Chain,它不需要在链上执行状态转换,除非某人执意要这么做而且愿意出钱——在链上自动执行所有状态转换会导致状态膨胀(正是我们极力避免的问题)!也不像 Plasma,它是免许可的,而且用到了非交互式错误性证明,所以能强力抵抗链拥堵攻击(chain congestion attack)。

Fuel:概览

Fuel 侧链是专门设计用来处理以太坊上的大量支付交易的,而且在伊斯坦布尔升级激活以前就可以将 ERC-20 代币转账的成本降低 5 倍。与状态通道不同,Fuel 不承诺能实现即时确定性,但可以在以太坊区块时间内提供免信任且更便宜的交易吞吐量,而且不需要像状态通道那样要求用户全额预抵押资金。Fuel 侧链是通过准免许可型运营者模式来实现即时确定性的,在以太坊区块还没实现确定性以前,只要用户信任主要的区块委员会,就可以认为交易是即时确定的。

Fuel 链可以实现像 Burner 钱包那样的体验

Fuel 的首要用途就是降低在交易所出入资金的 gas 费用负担。使用 Fuel 可以立即让这部分成本降低 5 倍,而且不会压低相关 ERC-20 代币的价格。此外,Fuel 还可以用于执行免信任、非存托的原生原子化交易所(但要使用中心化的订单簿匹配模式)。

为最大限度提升客户端的扩展性,Fuel 使用了一种可并行处理的 UTXO 数据模型,任何电脑或者手机都能轻松完成验证。我们当前的估计是,在伊斯坦布尔更新激活以前,我们的侧链可以将以太坊的总 TPS(美妙交易处理量)提升到约 50,比起现在主链美妙只能处理约 10 笔 ERC-20 交易是 5 倍的提升。伊斯坦布尔升级(包含了 EIP-2028)之后,我们相信可以将上限进一步推高到约 200 TPS。再加上一些对 layer-1 的小升级,我们可以提高到 2000。还有呢,只要给以太坊整合了纠删码数据可用性证明,以太坊的 TPS 就可以呈平方级扩展,上升到十亿级别。

Fuel 技术要点

  • 以太坊上的 Optimistic Rollup 侧链
  • 采用 UTXTO 数据模型
  • 在以太坊区块时间内达成确定性
  • 可选的近似于 Burner 的交易体验
  • 运营者不能审查交易
  • 支持所有 ERC-20 代币和 ETH 交易(主要是 DAI/Tether)
  • 免信任、去中心化
  • 客户端可并行验证(直接运行在浏览器)
  • 致力于实现便宜的 ERC-20 交易
  • 可以使用原子化交易和流动性提供者实现随时进入、退出
  • 用户无需抵押或绑定流动性
  • 在未来,我们会努力实现平方级扩展

钱包整合

我们正在将 Fuel 设计为对开发者友好的,因此整合工作会很简单,只需要添加一个库就可以处理存款、提款和 UTXO 交易了。任何以太坊账户和合约都可以处理 Fuel 交易,只要它们能够签署和发送交易。相对于普通钱包,合约钱包从 Fuel 中得到的 gas 节省量会小一点,但在代币转移的时候仍能节约大量成本。

拓展阅读

我们在 Devcon5 之前的 EthPlanet Lightning Talk 上的演讲幻灯 最基本可用的合并型共识 UTXO 链可用的紧凑型错误性证明(无中间状态序列化) 链上非交互式数据可用性证明 Eth1 链上的多线程数据可用性 EIP-2242: Transaction Postdata

我们的下一步?

我们的以太坊智能合约和安排在浏览器内的客户端都在执行安全审计,审计完成后就会在主网上线。想了解更多信息,请看下列信息,并 follow 我们的推特 @FuelLabs_;除了了解信息,还可以参与我们即将放出的测试网和我们的正式技术说明。

Website: https://fuel.network

Twitter: https://twitter.com/FuelLabs_

GitHub: https://github.com/FuelLabs

另外,也请对我们基于 UTXO 模型的定制化 scripting 系统保持耐心,有了它,我们就可以在 Fuel 侧链上支持智能合约功能啦。

想了解更多的技术细节,请在推特上联系我们的核心开发者:@IAmNickDodson。