# Beta-5: 测试网络升级

By [Fuel Labs - Chinese Blog](https://paragraph.com/@fuel-labs-chinese-blog) · 2024-03-02

---

我们很高兴将 Fuel 的测试网络迁移到 `Beta-5`。`Beta-5` 网络具有许多新功能和更新，包括钱包集成、抗 DDoS、改进的 Sway DevEx 等等。

通过 `Beta-5`，开发人员可以使用新的 `npm create fuels` 包，简化了为任何人构建全栈 dApp 的过程——无论您是前端还是后端开发人员。此外，它还带来了 Fuel 钱包连接器，引入了一个全面的系统，增强了 dApp 的互操作性，并使钱包能够超越浏览器扩展程序。

用户可以下载 [Fuel 钱包](https://wallet.fuel.network/)，并通过[生态系统页面](https://app.fuel.network/portal/ecosystem)在线探索 `Beta-5` 上的应用。

_请注意，_`beta-5` _是最终的测试网络。接下来，我们将启动激励测试网。更多信息即将发布。_

主要升级和新功能
--------

`Beta-5` 引入了一系列增强和新功能：

### **通用特性约束**

Sway 中的泛型支持经历了重大升级。通过通用特性约束，Sway 在开发人员体验方面取得了重大进展。这使得传统模式（如迭代器、转换特性等）得以实现。

### **交易策略**

新增的[交易策略](https://github.com/FuelLabs/fuel-vm/blob/master/CHANGELOG.md#version-0420)加强维护了用户的安全。

此外，该功能为未来的多维定价模型铺平了道路，该模型将降低交易成本，并促进更多不影响存储交易的交易量。

### **Fuel 钱包连接器**

Fuel 钱包连接器引入了一个全面的系统，增强了 DApp 与钱包的互操作性，使其能够超越浏览器扩展程序。在[此处](https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors)阅读更多。

### **新 Dapp 开发工具**

新的工具提供了开发全栈 Fuel dApps 的最快方式。作为 forc 的 typescript 封装器，它简化了构建或部署合约以及将 Sway 集成到网页应用程序的工作流程。在[此处](https://fuellabs.github.io/fuels-ts/guide/cli/)阅读更多。

**新功能介绍**
---------

以下是功能和更新的完整列表：

### **🌴 编译器**

*   新增 `u256` 原始类型，支持算术操作，取代 `U256`
    
*   现在允许 `impl` 方法之间的方法调用
    
*   我们支持通用特性约束，例如：
    

![](https://storage.googleapis.com/papyrus_images/a4bfa02a469612d2aab5fec19f86ae840feb25b75f398ae45efc37aa2a1804c4.png)

*   我们完全支持关联类型，例如：
    

![](https://storage.googleapis.com/papyrus_images/1b529997b8b18c5b2deb03b8aa09ad75029e2e1512130ccd472f96a30265d93a.png)

*   新增属性 `#[deprecated]` 和 `#[allow(deprecated)]` 用于提供弃用警告
    
*   小值如 `()` 和 `u8` 现在在内存中以单个字节表示，而不是完整的字
    
*   具有超过六个参数的函数不再需要内联
    
*   各种优化使编译器运行速度更快
    
*   现在正确处理了许多类型系统的极端案例
    
*   新增了字节码优化，使输出更小
    
    *   更好的数组初始化
        
    *   优化的聚合索引
        
    *   函数去重
        

### **🌐 Client 客户端**

*   大多数更改都提高了节点的安全性和稳定性。
    
    *   重新设计了 gas 模型，涵盖了执行的所有方面。
        
    *   基准测试系统得到了显著增强，涵盖了最糟糕的情况。
        
    *   新增了一组新的基准测试，用于跟踪 gas 价格的准确性。
        
    *   优化了重型操作并移除/替换了可利用漏洞的功能。
        
*   统一了所有 CLI 参数的命名约定。在相关字段之间添加了依赖关系，以避免在缺少参数的情况下配置错误。新增了 `-debug` 标志，可以启用附加功能，如调试器。
    
*   改进了遥测以涵盖内部服务工作，并添加了对 Pyroscope 的支持，允许其生成实时火焰图以跟踪性能。
    
*   改进了 P2P 层的稳定性，并调整了声誉评分。块同步的速度显著提高。
    
*   节点更加稳定和有弹性。改进了 DoS 抵抗能力和资源管理。在状态转换期间修复了关键性错误。
    
*   重新设计了 `Mint` 交易，使其在由块生产者定义的合约内积累块生产费用。
    
*   FuelVM 实现了许多安全性和稳定性的改进：
    
    *   最近的审计识别出一些错误和漏洞，并已成功修复。
        
    *   更新了 gas 价格模型，收取了交易周期中使用的资源费用。
        
    *   新增了 `no_std` 和 32 位系统支持。这为未来的欺诈证明打开了大门。
        
    *   从 `PredicateId` 计算中删除了 `ChainId`，允许在跨链中使用 predicates 谓词。
        
    *   改进了一些与存储相关的操作码的性能。
        
    *   支持 `ECAL` 指令，允许向 VM 添加自定义功能。它可以在未来用于创建独特的 rollups 或高级索引器。
        
    *   [交易策略](https://github.com/FuelLabs/fuel-vm/blob/master/CHANGELOG.md#version-0420)的支持增强了用户的安全性，并关闭了网络的一些 DOS 向量。此外，该功能为未来的多维定价模型铺平了道路，此模型将降低交易成本，并实现更多不影响存储的交易量。
        
    *   重新归因了错误，向用户返回了更详细的错误信息，简化了调试。
        

### **🔧 工具**

*   Sway Playground：改进了用户体验，现在可以选择要构建的工具链。
    
*   新增了用于处理常见加密操作的 `forc-crypto` CLI 工具。
    
*   `forc-doc` 现在具有带有模糊搜索和显示语义突出的搜索栏。
    

![](https://storage.googleapis.com/papyrus_images/e304b3201808602368554e7ba47fd3f36a654de07ee720588d6fcc830c81318f.png)

### **🧩 语言服务器**

*   语言服务器中启用了模块缓存，可大大加快输入速度。
    
*   后端稳定性得到了显著提高。
    
*   添加了CodeLens的自动导入和自动限定功能。
    
*   VScode 用户可以可视化项目的依赖关系图。
    

![](https://storage.googleapis.com/papyrus_images/26001e72f948885b4f15ede66ac7e7c1829ec62cd4e4eec0744c83bd4dcf4d81.png)

### **🏗️ SDK**

*   **Rust SDK**
    
    *   重试机制：配置自动重试交易的机制，假如交易失败的话；
        
    *   支持从合约返回 `str`；
        
    *   Coin/UTXO 缓存；
        
    *   弃用 `U256` 并使用 Rust 的原生 `u256`；
        
    *   添加从 `Address`/`ContractId` 类型到 `Identity` 的转换；
        
    *   自动从网络获取交易参数的默认值：将 `TxParams` 中的 `gas_limit` 和 `gas_price` 改为可选。如果这些字段设置为 `None`，则 `TransactionBuilders` 在 `build()` 过程中使用 `ConsensusParameters` 和 `NodeInfo` 中的相应值；
        
    *   改进了谓词见证数据访问的用户体验；
        
    *   通过新的 `from_hex_str` 改进了 `Bytes` 类型的用户体验；
        
    *   `TxParameters` 被 `TxPolicies` 替换；
        
    *   `TxPolicies` 引入了新的字段：
        
        *   `WitnessLimit`
            
        *   `MaxFee`
            
    *   `ScriptGasLimit` 仅限制脚本执行；
        
    *   新的 `WitnessLimit` 影响 `max_gas` 和 `max_fee` 的计算；
        
    *   为交易 ID 计算设置了最小的 gas 费用；
        
    *   对于每个交易，设置 `GasPrice` 策略是强制性的；
        
    *   `GasLimit` 和 `MAX_GAS_PER_TX` 规则的更改；
        
    *   `get_message_proof` 现在使用 `Nonce`；
        
    *   谓词不再使用 `ChainId` 进行地址计算；
        
        *   `manual_blocks_enabled` 被 `debug` 替换；
            
    *   `fee_checked_from_tx` 利用 `FeeParameters`；
        
    *   默认启用 `utxo_validation` 和 `manual_blocks`；
        
    *   节点配置的更改：将 `local_node` 替换为默认值；
        
    *   交易类型不再执行交易。用户需要匹配并提取内部的 tx；
        
*   **Typescript SDK**
    
    *   对字符串切片的 Typegen 支持
        
    *   在部署合约时自动加载存储槽
        
    *   改进了 `AssetID` 的编码/支持
        
    *   改进了包的 tree-shakeability
        
    *   支持 Node `v20`（LTS）
        
    *   支持 GraphQL 订阅
        
    *   失败交易的重试机制
        
    *   Coin/UTXO 缓存
        
    *   改进了 DX 和实用方法来计算费用
        
    *   用于创建/自动化新全栈 Fuel dApps 的新 CLI 工具
        
    *   `TxPolicies`  引入了新的字段：
        
        *   `WitnessLimit`
            
        *   `MaxFee`
            
    *   仅限制脚本执行；
        
    *   新的 `WitnessLimit` 影响 `max_gas` 和 `max_fee` 的计算；
        
    *   `get_message_proof` 现在使用 `Nonce`；
        
    *   谓词不再使用 `ChainId` 进行地址计算；
        
        *   `manual_blocks_enabled` 被 `debug` 替换；
            

### **🔌 前端**

*   Fuel 钱包连接器
    
    *   Fuel 钱包连接器引入了一个全面的系统，用于增强 DApp 与钱包之间的互操作性，并使钱包能够超越浏览器扩展程序而不增加抽象层的开销。其他生态系统的实现启发了这种新设计；然而，使用 Fuel 是在协议级别实现的，以改善用户体验，而不会给 DApp 或钱包开发人员带来更复杂的操作。在我们的维基中阅读更多相关信息：[https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors](https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors)
        
*   Fuel 钱包连接器用户界面
    
    *   基于新的连接器模式实现的新连接器用户界面为 React 应用提供了一个即用型界面，允许用户选择他们想要使用的钱包。[https://next-wallet.fuel.network/docs/dev/connectors/#with-react](https://next-wallet.fuel.network/docs/dev/connectors/#with-react)
        

\*\*更新您的 Fuel 钱包：\*\*如果您无法在 Fuel 跨链桥或其他应用上连接您的 Fuel 钱包，那么您可能没有使用最新版本的 Fuel 钱包。**以下是如何更新它的方法** 进入您的扩展参数页面，激活开发者模式，并点击更新按钮。

*   Fuel React Hooks
    
    *   现在，React 开发人员可以使用我们的 Hooks 库更自然地开发，使用 Hooks 与 fuels SDK 进行交互。我们的文档已更新，增加了示例。您可以在我们的 [Hooks 参考文档](https://next-wallet.fuel.network/docs/dev/hooks-reference/)中查看所有可用的 Hooks。
        
*   全新的 Fuel 浏览器
    
    *   全新的 Fuel 浏览器为用户和开发人员设计，创建了旨在帮助可视化交易的整体细节、操作序列、输入和输出设计。对于更高级的用户，我们还包含了一个视图，可以使其可视化原始交易，从而消除了使用多个工具的需求。
        
    *   新的浏览器还包括了对账户和谓词、合约和区块的可视化。在[这里](https://app.fuel.network/)查看。
        
    
    **更多给开发者和用户的资源**
    ----------------
    
    ### **🧳 迁移指南**
    
    *   为了解决 `beta-4` 中可能出现的任何重大变更，Fuel 生态系统中的活跃开发者可以按照迁移指南进行迁移
        
        → [https://docs.fuel.network/guides/testnet-migration/](https://docs.fuel.network/guides/testnet-migration/)
        
    
    ### **🚰 水龙头**
    
    *   要部署合约和与网络交互，需要有效的交易，而这需要使用代币。可以通过完成验证码从测试网的[水龙头](https://faucet-beta-4.fuel.network/)获取测试网 ETH。
        
    
    ### **📃 GraphQL 终端点**
    
    *   [Fuel 核心](https://github.com/FuelLabs/fuel-core)节点使用 GraphQL 而不是 JSON RPC。`beta-5` 的公共 GraphQL 终端点的 Playground 可在[此处](https://beta-4.fuel.network/playground)找到。
        
    
    ### **🏃🏻 入门指南**
    
    *   要了解 Fuel，请查看新的 [Fuel 文档库](https://docs.fuel.network/)。
        
    *   要开始在 Fuel 上搭建，请查看[开发者快速入门](https://docs.fuel.network/guides/quickstart/)。该指南为在 Fuel 上构建 dapp 的开发人员提供了点到点的步骤。
        
    
    _如果您有任何问题（与开发相关或其他方面），您可以加入_ [_Fuel Labs Discord_](https://discord.gg/xfpK4Pe) _并转到 Testnet 类别下的 #questions 频道。请确保关注我们的_ [_Twitter_](https://twitter.com/fuel_network) _获取更新。_
    
    `beta-5` 正在积极开发中，可能会看到重大升级甚至重生活动。
    

* * *

**加入 Fuel 社区**
==============

*   [**Twitter**](https://twitter.com/fuel_network?ref=fuel-labs.ghost.io)
    
*   [**Discord**](http://discord.com/invite/xfpK4Pe?ref=fuel-labs.ghost.io)
    
*   [**LinkedIn**](https://www.linkedin.com/company/fuel-labs/?ref=fuel)
    
*   [**Lens**](https://lenster.xyz/u/fuelnetwork?ref=fuel-labs.ghost.io)
    
*   [**YouTube**](https://www.youtube.com/channel/UCam2Sj3SvFSAIfDbP-4jWZQ?ref=fuel)
    
*   [**Forum**](https://forum.fuel.network/?ref=fuel-labs.ghost.io)
    

**成为 Fuel 贡献者**
===============

*   [Explore our current job openings](https://jobs.lever.co/fuellabs)
    
*   [探索现有职位空缺](https://jobs.lever.co/fuellabs)

---

*Originally published on [Fuel Labs - Chinese Blog](https://paragraph.com/@fuel-labs-chinese-blog/beta-5)*
