Fuel内幕-2023年第一季 (Inside Fuel:Q1 2023)

Inside Fuel: Q1 2023

Welcome to Inside Fuel our quarterly review of technical developments and everything happening on the Fuel Network. Take a moment to catch up on all the latest news.

欢迎来到Fuel内幕,这是我们对技术发展和Fuel网络上发生的一切的季度回顾。请拨冗了解一下所有的最新消息。


Building the fastest modular execution layer would not be possible without an incredible contributor team. Here are the newest additions to the team this quarter:

如果没有一个令人难以置信的贡献者团队,建立最快的模块化执行层是不可能的。以下是本季度团队的最新成员:


🦀 Rust in 区块链 Rust in Blockchain

According to the Rust In Blockchain monthly review, Fuel is one of the most active Rust-based projects this quarter, ranking us once again in the Top 5 of the most active Rust-based blockchains.

根据Rust In Blockchain的月度回顾,Fuel是本季度最活跃的,基于Rust的项目之一,我们再次排在最活跃的基于Rust的区块链的前五名中。

✨ 揭开新的Fuel品牌面纱 (Unveiling the new Fuel Branding)

We officially unveiled the new visual identity of Fuel, the fastest modular execution layer.

我们正式公布了最快模块化执行层Fuel的新视觉标识。


🎙️ 第2层之日 (Layer 2 Day)

Right before ETH Denver, we hosted Layer 2 Day, a one-day-long event gathering all the major Ethereum Scalability maximalists from all over the world to talk about the future of blockchain, language design, account abstraction, and more!

就在ETH Denver之前,我们举办了第2层之日(Layer 2 Day),这是一个为期一天的活动,聚集了来自世界各地的所有主要以太坊扩容热心人士,讨论区块链的未来、语言设计、账户抽象等问题!

Watch the replay of all the talks and panels:
观看所有会谈和小组讨论的回放:

🏔️ ETH丹佛 (ETH Denver)

ETH Denver was an incredible opportunity for us to meet, grow and share insights to the Fuel community. If you were there, you maybe also got the chance to drink Moscow Fuel cocktails and receive exclusive Fuel swag!

ETH丹佛是一个令人难以置信的机会,让我们认识、成长并与燃料社区分享见解。如果你在那里,你可能也有机会喝到莫斯科Fuel鸡尾酒,并收到Fuel的独家礼品!

ETH Denver was also the chance for developers to experience building on Fuel using Sway. Here is a recap of the winning projects:
ETH丹佛也是一个让开发者体验使用Sway,并在Fuel上构建的机会。以下是获奖项目的回顾:

We're excited to announce the winners of the Fuel bounty prize at @EthereumDenver!
我们很高兴地宣布@EthereumDenver的Fuel赏金奖的获奖者!

🏆 Congratulations to 1st place winner Sway Network (by @swaygangsters), a decentralized, transparent and secure order book built with @SwayLang pic.twitter.com/Imw7qsEV9k
🏆 祝贺第一名得主Sway Network(@SwayLang),这是一个用@SwayLang构建的去中心化、透明和安全的订单簿 pic.twitter.com/Imw7qsEV9k
— Fuel (@fuel_network) March 9, 2023


A sample of some of the best content shared on social media by some internal and external Fuel contributors:

由一些内部和外部的Fuel贡献者在社交媒体上分享的一些最佳内容的样本:

Much more awesome Fuel content can be found here.
更多精彩的Fuel内容可以在 这里找到。


Fuelup

Fuelup是什么 (What is Fuelup?)

Fuelup is the official package manager and multiplexer for Fuel that installs The Fuel Toolchain from the official release channels. It enables you to easily install pre-packaged toolchains, keep them up to date or even create custom toolchains and switch between them.

FuelupFuel 的官方包管理器和复用器,它从官方发布渠道安装Fuel工具链 (The Fuel Toolchain)。它使您能够轻松安装预打包的工具链,使其保持最新状态,甚至创建自定义工具链并在它们之间切换。

Binaries are executed through Fuelup as proxies which allow for flexibility in the execution of tools.

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

It simplifies building and maintaining Sway applications with forc and fuel-core for common platforms.

它为一般平台使用 forcfuel-core 简化了 Sway 应用的构建和维护。

  • The fuelup installation script and docs are now all at https://install.fuel.network/latest
    fuelup的安装脚本和文档都在https://install.fuel.network/latest

  • fuelup show shows the fuels-rs SDK version that the release version was tested against Read more
    fuelup show显示发布版本所测试的fuels-rs SDK版本阅读更多

  • fuelup show now shows the fuels-rs version that was used in compatibility tests. This gives users an idea of what fuels version will certainly be compatible with the toolchain;
    fuelup show现在显示兼容性测试中使用的fuels-rs版本。这让用户了解到什么版本的fuels肯定会与工具链兼容;

🌴 Sway

一般更新 (General Updates)

  • Added a new pass manager for the IR optimizer;
    为IR优化器增加了一个新的通道管理器;
  • Introduction of the #[allow(dead_code)] annotation;
    引入了#[allow(dead_code)]注解;
  • Added support for Enum::<T>::Variant syntax;
    增加了对Enum::<T>::Variant语法的支持;
  • Improvement of the performance of the register allocator;
    改善了寄存分配器的性能;
  • Disabled usage of parenthesis in unit enum variants;
    禁用了单元枚举变体中小括号的使用;
  • Added support for supertraits for ABIs;
    增加了对ABI的超级特征的支持;

错误修复 (Bug Fixes)

  • Various fixes and improvements to dead code analysis;
    对死代码分析进行了各种修正和改进;
  • Fixed multiple bugs in the type system;
    修正了类型系统中的多个错误;
  • Fixed some issues related to name shadowing rules in Sway;
    修正了一些与Sway中名称阴影规则有关的问题;

标准库 (Standard Library)

  • Extended support for Input::Message type fields in std::inputs;
    std::input中扩展了对Input::Message类型字段的支持;

  • Updated std::storage::get and std::storage::StorageMap::get to return an Option;
    更新了std::storage::getstd::storageMap::get以返回一个Option

  • Introduced __state_clearstd::storage::clear, and std::storage::StorageMap::remove;
    引入了__state_clear, std::storage::clear, 和 std::storageMap::remove

  • Introduced std::storage::StorageBytes;
    引入了std::storage::StorageBytes

  • Added Not trait implementations for U128 and U256;
    U128U256增加了 Not特性的实现;

  • Added a TryFrom trait ;
    增加了一个`TryFrom'特性;

工具(Tooling)

  • Added Markdown formatting to item previews in forc doc;
    forc doc中的项目预览增加了Markdown格式;
  • Added support for inner module doc attributes with #! and //! syntax;
    增加了对带有#!//!语法的内部模块文档属性的支持;
  • Added syntax highlighting to code blocks in forc doc;
    forc doc中的代码块添加了语法高亮;
  • Various enhancements to the LSP including collecting more tokens from the language;
    对LSP的各种增强,包括从语言中收集更多的标记;
  • Allow formatting a single file via forc fmt --path;
    允许通过forc fmt --path对单个文件进行格式化;

Forc

  • Added a forc-submit plugin command for submitting txs to a given node;
    增加了一个forc-submit插件命令,用于向指定节点提交txs;
  • Added salt flag to forc deploy and a maturity flag to forc deploy and forc run;
    forc deploy增加了salt标志,为forc deployforc run增加了maturity标志;
  • Added a forc build flag to treat warnings as errors;
    增加了一个forc build标志,将警告视为错误;

Fuel核心 Fuel Core

特点 Features:

  • Implementation of a Keygen CLI for configuring nodes;
    实现了用于配置节点的Keygen CLI;
  • Helm charts for multi-node deployments with sentries;
    用于多节点部署的Helm图表与岗哨;
  • Sticky sessions for routing API requests to sentries;
    粘性会话用于将API请求路由到岗哨;
  • Graceful shutdown for all fuel-core components;
    所有Fuel核心组件的优雅关闭;
  • Decoupled API logic from GraphQL resolvers to support alternative RPCs;
    将API逻辑与GraphQL解析器解耦,以支持替代的RPC;
  • Support for TxPointer on inputs;
    支持输入的TxPointer;
  • Retryable messages have been implemented;
    已经实现了可重试的消息;
  • Withdrawal proofs that support periodic commits to L1;
    支持定期提交到L1的撤消证明;
  • Full merklization of contract state, balances, and block headers;
    合同状态、余额和块头的完全合并;
  • Zero-length memory ranges can now pass the ownership check if the position is correct;
    如果位置正确,零长度的内存范围现在可以通过所有权检查;
  • New relative jump opcodes, new CFE instruction and an update to LDC to support position-independent code in the compiler;
    新的相对跳转操作码,新的CFE指令和对LDC的更新,进而支持编译器中的独立位置的代码;

改进之处 Improvements:

  • Numerous significant database performance improvements;
    许多重大的数据库性能改进;
  • Improved bridging safety with a separate column for message spent status;
    改进了跨链桥的安全性,为消息花费的状态设置了单独的列;
  • Removal of most usages of unsafe with equally performing alternatives in the VM;
    在虚拟机中取消了大部分 "unsafe "的使用,采用了性能相同的替代方法;
  • Removal of recursive bottlenecks in the VM;
    消除了虚拟机中的递归瓶颈;
  • ChainID is now utilized during transaction IDs and predicate owner hashing;
    ChainID现在在交易ID和谓词所有者散列过程中被使用;
  • $HP now registers points to the first available byte on the heap;
    $HP现在注册指向堆上的第一个可用字节;
  • SMO has been updated to charge from an internal balance in an internal context;
    SMO已被更新为在内部环境中从内部平衡中收费;
  • Improved load-balancing, metrics, log formatting of very large fields, and UTXO pruning;
    改进了负载平衡、度量、非常大的字段的日志格式和UTXO修剪;

重构 Refactoring:

  • Refactoring of the VM for better unit testability;
    重构了虚拟机,以提高单元测试能力;

SDKs (Fuel-TS & Fuel-RS)

🦀 Rust SDK

特点 Features:

  • Support raw_slice returns from scripts and contracts;
    支持来自脚本和合约的raw_slice返回;
  • Support for custom assets forwarding in contract calls;
    支持合约调用中的自定义资产转发;
  • Support for Sway’s #[payable];
    支持Sway的#[payable]
  • Support for Sway’s configurable constants — use the SDK to update constants values with needing to recompile your Sway code;
    支持Sway的可配置常量 - 使用SDK来更新常量值,而不需要重新编译你的Sway代码;
  • deriveable Parameterize and Tokenizable;
    deriveable ParameterizeTokenizable
  • New script APIs: ScriptTransaction and CreateTransaction;
    新的脚本API: ScriptTransactionCreateTransaction
  • Type path support and resolution of conflicting types;
    类型路径支持和解决冲突的类型;
  • Vec as output types for contract methods;
    Vec作为合同方法的输出类型;
  • A new way to filter spendable resources;
    一种过滤可花费资源的新方法;
  • Enable payments with predicates;
    启用带有谓词的支付;
  • Support returning Vec<> types from contracts;
    支持从合同中返回Vec<>类型;
  • Return result from try_from_type_application;
    try_from_type_application返回结果;
  • Added the latest block time and spendable resources with exclusion;
    增加了最新的区块时间和排除可花费的资源;

改进 Improvements:

  • Better testability with the new support for assert_eq logs;
    通过对assert_eq日志的新支持,提高了可测试性;
  • Better contract deployment configuration;
    更好的合同约部署配置;
  • Friendlier way to retrieve the latest block time;
    更加友好的方式来检索最新的区块时间;

错误修正 Bug Fixes:

  • Storage slots have to be sorted in a create tx;
    存储槽必须在创建tx时进行排序;
  • Make load_contract pub;
    使load_contract公开;
  • Coins query no longer returns spent coins;
    金币查询不再返回已用的金币;

重构 Refactoring:

  • fuels wasm-offending packages/reexports hidden behind std flag;
    fuels 隐藏在std 标签之后的wasm-offending 包/再输出
  • Improvement of log decoding and simplification of ParamType;
    改进了日志解码,简化了ParamType
  • Contract deployment configuration;
    合约部署配置;
  • Removal of the Byte type from the SDK;
    从SDK中删除了Byte类型;
  • Removal of unused file cargo;
    删除了未使用的文件cargo
  • Reorganization of harness tests;
    重新组织了线束测试;
  • Update of the PR template;
    更新PR模板;

文档 Documentation:

  • Update docs about vectors;
    更新关于向量的文档;

🧰 TypeScript SDK

特点 Features:

  • Full support for predicates and script ABI in the new typegen;
    在新的 typegen中完全支持谓词和脚本ABI;
  • main argument support for predicates and scripts;
    对谓词和脚本的main参数支持;
  • Add Predicate ABIs support to Typegen;
    Typegen中添加谓词ABI支持;
  • Add Script ABIs support to Typegen;
    Typegen中添加脚本ABI支持;
  • Implementation of vector as output slice;
    实现向量作为输出片断;

改进之处 Improvements:

  • Predicates now work similarly to wallets — predicates are now usable to pay for fees and more;
    谓词现在的工作方式类似于钱包—谓词现在可以用来支付费用和其他;

  • Switched the documentation engine;
    更换了文档引擎;

  • Re-organization of constants throughout the repo;
    重新组织了整个Repo中的常量;

  • Standardization of package configurations;
    包配置的标准化;

漏洞修复 Bug Fixes:

  • Fixed B512 ABI coder and Typegen to expect its correct Sway type;
    修正了B512ABI编码器和Typegen,以期待其正确的Sway类型;

敬请关注 (Follow Us)

关于我们 (About Us)

Fuel is the fastest execution layer for the modular blockchain stack. Powerful and sleek, the technology enables parallel transaction execution, empowering developers with the highest flexible throughput and maximum security required to scale. Developers choose the FuelVM for its superior developer experience and the ability to go beyond the limitations of the EVM.

Fuel 是模块化区块链技术栈的最快执行层。该技术功能强大且时尚,支持并行交易执行,为开发人员提供了扩展所需的最高灵活吞吐量最大安全性。开发人员选择 FuelVM 是因为它卓越的开发人员体验和运行能力 ,突破了 EVM 的限制**。

成为贡献者 (Become a Contributor)

赞赏