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:
观看所有会谈和小组讨论的回放:
- Blockchain Language Design
区块链语言设计 - L2 Bridging
L2跨链 - Defining Rollup finality
定义汇总的终态 - Account Abstraction
帐户抽象 - Alternate VMs vs. EVM
其他虚拟机与EVM - Introducing Base
Base简介 - Fuelmint: Celestia, Fuel, and Rollkit
Fuelmint: Celestia, Fuel, 和 Rollkit
🏔️ 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贡献者在社交媒体上分享的一些最佳内容的样本:
-
The Fuel dApp Template by Eda and Carlos: A developer-friendly starter kit for quickly building decentralized applications on Fuel! This template is built using NextJS, TypeScript, Tailwind CSS, Forc, and Sway.
The Fuel dApp 模板 由Eda和Carlos编写: 一个方便开发者的入门套件,用于在Fuel上快速建立去中心化应用!这个模板使用NextJS、TypeScript、Tailwind CSS、Forward等技术构建。 -
Build a DApp on Fuel by Sarah Schwartz: The essentials of what you need to know to get started building a dapp on Fuel.
在Fuel上建立一个DApp由Sarah Schwartz提供: 你需要知道的在Fuel上开始构建DApp的基本内容。 -
Building Decentralized Applications on Fuel by Eda and Carlos: A Dive into the Fuel dApp Template: Built using NextJS, TypeScript, Tailwind CSS, Forc, and Sway.
在Fuel上构建去中心化应用 作者:Eda和Carlos: 深入了解Fuel的dApp模板: 使用NextJS、TypeScript、Tailwind CSS、Forc和Sway构建。 -
FuelVM binary analysis by Jtriley: An article on the binary analysis of Fuel smart contracts. It goes through Sway compilation steps and picks apart the final executable.
FuelVM二进制分析 作者 Jtriley: 一篇关于Fuel智能合约的二进制分析的文章。它通过Sway的编译步骤,挑出了最终的可执行文件。 -
Bridging on Fuel by Rubyto: A 4 parts handful guide on how bridging on Fuel works behind the scenes: Part 1, Part 2, Part 3, Part 4.
Bridging on Fuel 作者:Rubyto: 一个由四部分组成的关于燃料桥接如何在幕后运作的指南:第一部分, 第二部分, 第三部分, 第四部分. -
Fuel Build by @0xYami9 and @0xYuminomizu: A community-led ecosystem directory.
Fuel Build 作者 @0xYami9和@0xYuminomizu: 一个社区主导的生态系统目录。 -
Supercharging Modular Execution by Eshita from Messari: A in-depth look at the Fuel Network, including a deep dive into its architecture and design choices, and potential risks and concerns.
Supercharging Modular Execution 作者Eshita,来自Messari: 对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.
Fuelup 是 Fuel 的官方包管理器和复用器,它从官方发布渠道安装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.
-
The fuelup installation script and docs are now all at https://install.fuel.network/latest
fuelup的安装脚本和文档都在https://install.fuel.network/latest; -
fuelup show
shows thefuels-rs
SDK version that the release version was tested against Read more
fuelup show
显示发布版本所测试的fuels-rs
SDK版本阅读更多; -
fuelup show
now shows thefuels-rs
version that was used in compatibility tests. This gives users an idea of whatfuels
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 instd::inputs
;
在std::input
中扩展了对Input::Message
类型字段的支持; -
Updated
std::storage::get
andstd::storage::StorageMap::get
to return anOption
;
更新了std::storage::get
和std::storageMap::get
以返回一个Option
; -
Introduced
__state_clear
,std::storage::clear
, andstd::storage::StorageMap::remove
;
引入了__state_clear
,std::storage::clear
, 和std::storageMap::remove
; -
Introduced
std::storage::StorageBytes
;
引入了std::storage::StorageBytes
; -
Added
Not
trait implementations forU128
andU256
;
为U128
和U256
增加了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 toforc deploy
and amaturity
flag toforc deploy
andforc run
;
为forc deploy
增加了salt
标志,为forc deploy
和forc 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 toLDC
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代码; derive
ableParameterize
andTokenizable
;
derive
ableParameterize
和Tokenizable
;- New script APIs:
ScriptTransaction
andCreateTransaction
;
新的脚本API:ScriptTransaction
和CreateTransaction
; - 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 behindstd
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;
修正了B512
ABI编码器和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 的限制**。