
以太坊的可扩展性危机:执行层
这是 Fuel Labs 系列作品的第一部分,涵盖了以太坊上可扩展性和执行相关的主题。本系列旨在对增强以太坊性能和扩容相关的挑战提供全面的洞见,也包括当前致力于使其更高效和可扩展来实现广泛采用的解决方案。 以太坊的架构由多个层组成,每个层在网络的运行中都发挥着至关重要的作用。在这些层中,执行层尤为重要。交易处理、智能合约执行以及一致和安全状态的维护都在执行层完成。然而,这一层往往是限制以太坊网络整体性能和可扩展性的瓶颈。以太坊上的执行执行是指在区块链上执行交易和执行状态更改所需的计算。这种计算通常涉及通过检查签名和代币余额来验证交易,并执行更新状态所需的链上逻辑。当全节点更新其账本副本来反映新的代币传输、智能合约代码更新和数据存储更改时,就会发生状态更改。执行层的主要功能包括: 交易处理: 验证并执行用户发送的交易。 智能合约执行: 运行智能合约的代码,智能合约是自动执行的合约,其中协议条款直接写入代码中。 状态管理:维护区块链的状态,包括账户余额、智能合约状态和其他基本数据。由于其复杂的状态树,以太坊的状态管理尤其具有挑战性,但是像 Verkle 树 这样的创新,可以通过支持更...

FuelVM:专为以太坊扩容方案设计的执行环境
本文是 Fuel Labs 系列文章的第三部分,探讨了与以太坊扩展性和执行相关的话题。这个系列旨在提供关于提升以太坊性能和容量所面临的挑战的全面洞见,以及当前致力于提高以太坊效率和扩展性的解决方案,以促进其广泛采用。 Fuel 最初起源于以太坊上的乐观扩容方案(optimistic rollup),于 2020 年 12 月底发布了 Fuel V1。Fuel V1 的目标是为以太坊提供一个信任最小化的侧链,这个侧链继承了以太坊的安全性,但采用了一个彻底重新设计的执行模型,即未花费交易输出(UTXO)模型。Fuel V1 是唯一一个在实践中通过完整的乐观欺诈证明和无第三方多重签名的方式实现了以太坊安全性继承(现由 L2Beat 定义为“阶段 2”状态)的 rollup。 大多数当前的区块链项目依赖于通用虚拟机,如 EVM 和 WASM。虽然这些架构在过去带来了显著的进展,但它们在解决特定扩展需求方面仍然存在不足,尤其是在 2018 年前的单片架构之下。通用虚拟机(VM)虽然功能多样,但往往缺乏针对区块链执行独特需求的优化(详见第二部分)。 自 V1 以来,Fuel 的发展是广泛而战...

以太坊的可扩展性危机:执行层
这是 Fuel Labs 系列作品的第一部分,涵盖了以太坊上可扩展性和执行相关的主题。本系列旨在对增强以太坊性能和扩容相关的挑战提供全面的洞见,也包括当前致力于使其更高效和可扩展来实现广泛采用的解决方案。 以太坊的架构由多个层组成,每个层在网络的运行中都发挥着至关重要的作用。在这些层中,执行层尤为重要。交易处理、智能合约执行以及一致和安全状态的维护都在执行层完成。然而,这一层往往是限制以太坊网络整体性能和可扩展性的瓶颈。以太坊上的执行执行是指在区块链上执行交易和执行状态更改所需的计算。这种计算通常涉及通过检查签名和代币余额来验证交易,并执行更新状态所需的链上逻辑。当全节点更新其账本副本来反映新的代币传输、智能合约代码更新和数据存储更改时,就会发生状态更改。执行层的主要功能包括: 交易处理: 验证并执行用户发送的交易。 智能合约执行: 运行智能合约的代码,智能合约是自动执行的合约,其中协议条款直接写入代码中。 状态管理:维护区块链的状态,包括账户余额、智能合约状态和其他基本数据。由于其复杂的状态树,以太坊的状态管理尤其具有挑战性,但是像 Verkle 树 这样的创新,可以通过支持更...

FuelVM:专为以太坊扩容方案设计的执行环境
本文是 Fuel Labs 系列文章的第三部分,探讨了与以太坊扩展性和执行相关的话题。这个系列旨在提供关于提升以太坊性能和容量所面临的挑战的全面洞见,以及当前致力于提高以太坊效率和扩展性的解决方案,以促进其广泛采用。 Fuel 最初起源于以太坊上的乐观扩容方案(optimistic rollup),于 2020 年 12 月底发布了 Fuel V1。Fuel V1 的目标是为以太坊提供一个信任最小化的侧链,这个侧链继承了以太坊的安全性,但采用了一个彻底重新设计的执行模型,即未花费交易输出(UTXO)模型。Fuel V1 是唯一一个在实践中通过完整的乐观欺诈证明和无第三方多重签名的方式实现了以太坊安全性继承(现由 L2Beat 定义为“阶段 2”状态)的 rollup。 大多数当前的区块链项目依赖于通用虚拟机,如 EVM 和 WASM。虽然这些架构在过去带来了显著的进展,但它们在解决特定扩展需求方面仍然存在不足,尤其是在 2018 年前的单片架构之下。通用虚拟机(VM)虽然功能多样,但往往缺乏针对区块链执行独特需求的优化(详见第二部分)。 自 V1 以来,Fuel 的发展是广泛而战...

Subscribe to Fuel Labs - Chinese Blog

Subscribe to Fuel Labs - Chinese Blog
Share Dialog
Share Dialog


<100 subscribers
<100 subscribers
我们很高兴将 Fuel 的测试网络迁移到 Beta-5。Beta-5 网络具有许多新功能和更新,包括钱包集成、抗 DDoS、改进的 Sway DevEx 等等。
通过 Beta-5,开发人员可以使用新的 npm create fuels 包,简化了为任何人构建全栈 dApp 的过程——无论您是前端还是后端开发人员。此外,它还带来了 Fuel 钱包连接器,引入了一个全面的系统,增强了 dApp 的互操作性,并使钱包能够超越浏览器扩展程序。
用户可以下载 Fuel 钱包,并通过生态系统页面在线探索 Beta-5 上的应用。
请注意,beta-5 是最终的测试网络。接下来,我们将启动激励测试网。更多信息即将发布。
Beta-5 引入了一系列增强和新功能:
Sway 中的泛型支持经历了重大升级。通过通用特性约束,Sway 在开发人员体验方面取得了重大进展。这使得传统模式(如迭代器、转换特性等)得以实现。
新增的交易策略加强维护了用户的安全。
此外,该功能为未来的多维定价模型铺平了道路,该模型将降低交易成本,并促进更多不影响存储交易的交易量。
Fuel 钱包连接器引入了一个全面的系统,增强了 DApp 与钱包的互操作性,使其能够超越浏览器扩展程序。在此处阅读更多。
新的工具提供了开发全栈 Fuel dApps 的最快方式。作为 forc 的 typescript 封装器,它简化了构建或部署合约以及将 Sway 集成到网页应用程序的工作流程。在此处阅读更多。
以下是功能和更新的完整列表:
新增 u256 原始类型,支持算术操作,取代 U256
现在允许 impl 方法之间的方法调用
我们支持通用特性约束,例如:

我们完全支持关联类型,例如:

新增属性 #[deprecated] 和 #[allow(deprecated)] 用于提供弃用警告
小值如 () 和 u8 现在在内存中以单个字节表示,而不是完整的字
具有超过六个参数的函数不再需要内联
各种优化使编译器运行速度更快
现在正确处理了许多类型系统的极端案例
新增了字节码优化,使输出更小
更好的数组初始化
优化的聚合索引
函数去重
大多数更改都提高了节点的安全性和稳定性。
重新设计了 gas 模型,涵盖了执行的所有方面。
基准测试系统得到了显著增强,涵盖了最糟糕的情况。
新增了一组新的基准测试,用于跟踪 gas 价格的准确性。
优化了重型操作并移除/替换了可利用漏洞的功能。
统一了所有 CLI 参数的命名约定。在相关字段之间添加了依赖关系,以避免在缺少参数的情况下配置错误。新增了 -debug 标志,可以启用附加功能,如调试器。
改进了遥测以涵盖内部服务工作,并添加了对 Pyroscope 的支持,允许其生成实时火焰图以跟踪性能。
改进了 P2P 层的稳定性,并调整了声誉评分。块同步的速度显著提高。
节点更加稳定和有弹性。改进了 DoS 抵抗能力和资源管理。在状态转换期间修复了关键性错误。
重新设计了 Mint 交易,使其在由块生产者定义的合约内积累块生产费用。
FuelVM 实现了许多安全性和稳定性的改进:
Sway Playground:改进了用户体验,现在可以选择要构建的工具链。
新增了用于处理常见加密操作的 forc-crypto CLI 工具。
forc-doc 现在具有带有模糊搜索和显示语义突出的搜索栏。

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

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 类型的用户体验;
Fuel 钱包连接器
Fuel 钱包连接器引入了一个全面的系统,用于增强 DApp 与钱包之间的互操作性,并使钱包能够超越浏览器扩展程序而不增加抽象层的开销。其他生态系统的实现启发了这种新设计;然而,使用 Fuel 是在协议级别实现的,以改善用户体验,而不会给 DApp 或钱包开发人员带来更复杂的操作。在我们的维基中阅读更多相关信息:https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors
Fuel 钱包连接器用户界面
基于新的连接器模式实现的新连接器用户界面为 React 应用提供了一个即用型界面,允许用户选择他们想要使用的钱包。https://next-wallet.fuel.network/docs/dev/connectors/#with-react
**更新您的 Fuel 钱包:**如果您无法在 Fuel 跨链桥或其他应用上连接您的 Fuel 钱包,那么您可能没有使用最新版本的 Fuel 钱包。以下是如何更新它的方法 进入您的扩展参数页面,激活开发者模式,并点击更新按钮。
Fuel React Hooks
现在,React 开发人员可以使用我们的 Hooks 库更自然地开发,使用 Hooks 与 fuels SDK 进行交互。我们的文档已更新,增加了示例。您可以在我们的 Hooks 参考文档中查看所有可用的 Hooks。
全新的 Fuel 浏览器
全新的 Fuel 浏览器为用户和开发人员设计,创建了旨在帮助可视化交易的整体细节、操作序列、输入和输出设计。对于更高级的用户,我们还包含了一个视图,可以使其可视化原始交易,从而消除了使用多个工具的需求。
新的浏览器还包括了对账户和谓词、合约和区块的可视化。在这里查看。
为了解决 beta-4 中可能出现的任何重大变更,Fuel 生态系统中的活跃开发者可以按照迁移指南进行迁移
要部署合约和与网络交互,需要有效的交易,而这需要使用代币。可以通过完成验证码从测试网的水龙头获取测试网 ETH。
我们很高兴将 Fuel 的测试网络迁移到 Beta-5。Beta-5 网络具有许多新功能和更新,包括钱包集成、抗 DDoS、改进的 Sway DevEx 等等。
通过 Beta-5,开发人员可以使用新的 npm create fuels 包,简化了为任何人构建全栈 dApp 的过程——无论您是前端还是后端开发人员。此外,它还带来了 Fuel 钱包连接器,引入了一个全面的系统,增强了 dApp 的互操作性,并使钱包能够超越浏览器扩展程序。
用户可以下载 Fuel 钱包,并通过生态系统页面在线探索 Beta-5 上的应用。
请注意,beta-5 是最终的测试网络。接下来,我们将启动激励测试网。更多信息即将发布。
Beta-5 引入了一系列增强和新功能:
Sway 中的泛型支持经历了重大升级。通过通用特性约束,Sway 在开发人员体验方面取得了重大进展。这使得传统模式(如迭代器、转换特性等)得以实现。
新增的交易策略加强维护了用户的安全。
此外,该功能为未来的多维定价模型铺平了道路,该模型将降低交易成本,并促进更多不影响存储交易的交易量。
Fuel 钱包连接器引入了一个全面的系统,增强了 DApp 与钱包的互操作性,使其能够超越浏览器扩展程序。在此处阅读更多。
新的工具提供了开发全栈 Fuel dApps 的最快方式。作为 forc 的 typescript 封装器,它简化了构建或部署合约以及将 Sway 集成到网页应用程序的工作流程。在此处阅读更多。
以下是功能和更新的完整列表:
新增 u256 原始类型,支持算术操作,取代 U256
现在允许 impl 方法之间的方法调用
我们支持通用特性约束,例如:

我们完全支持关联类型,例如:

新增属性 #[deprecated] 和 #[allow(deprecated)] 用于提供弃用警告
小值如 () 和 u8 现在在内存中以单个字节表示,而不是完整的字
具有超过六个参数的函数不再需要内联
各种优化使编译器运行速度更快
现在正确处理了许多类型系统的极端案例
新增了字节码优化,使输出更小
更好的数组初始化
优化的聚合索引
函数去重
大多数更改都提高了节点的安全性和稳定性。
重新设计了 gas 模型,涵盖了执行的所有方面。
基准测试系统得到了显著增强,涵盖了最糟糕的情况。
新增了一组新的基准测试,用于跟踪 gas 价格的准确性。
优化了重型操作并移除/替换了可利用漏洞的功能。
统一了所有 CLI 参数的命名约定。在相关字段之间添加了依赖关系,以避免在缺少参数的情况下配置错误。新增了 -debug 标志,可以启用附加功能,如调试器。
改进了遥测以涵盖内部服务工作,并添加了对 Pyroscope 的支持,允许其生成实时火焰图以跟踪性能。
改进了 P2P 层的稳定性,并调整了声誉评分。块同步的速度显著提高。
节点更加稳定和有弹性。改进了 DoS 抵抗能力和资源管理。在状态转换期间修复了关键性错误。
重新设计了 Mint 交易,使其在由块生产者定义的合约内积累块生产费用。
FuelVM 实现了许多安全性和稳定性的改进:
Sway Playground:改进了用户体验,现在可以选择要构建的工具链。
新增了用于处理常见加密操作的 forc-crypto CLI 工具。
forc-doc 现在具有带有模糊搜索和显示语义突出的搜索栏。

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

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 类型的用户体验;
Fuel 钱包连接器
Fuel 钱包连接器引入了一个全面的系统,用于增强 DApp 与钱包之间的互操作性,并使钱包能够超越浏览器扩展程序而不增加抽象层的开销。其他生态系统的实现启发了这种新设计;然而,使用 Fuel 是在协议级别实现的,以改善用户体验,而不会给 DApp 或钱包开发人员带来更复杂的操作。在我们的维基中阅读更多相关信息:https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors
Fuel 钱包连接器用户界面
基于新的连接器模式实现的新连接器用户界面为 React 应用提供了一个即用型界面,允许用户选择他们想要使用的钱包。https://next-wallet.fuel.network/docs/dev/connectors/#with-react
**更新您的 Fuel 钱包:**如果您无法在 Fuel 跨链桥或其他应用上连接您的 Fuel 钱包,那么您可能没有使用最新版本的 Fuel 钱包。以下是如何更新它的方法 进入您的扩展参数页面,激活开发者模式,并点击更新按钮。
Fuel React Hooks
现在,React 开发人员可以使用我们的 Hooks 库更自然地开发,使用 Hooks 与 fuels SDK 进行交互。我们的文档已更新,增加了示例。您可以在我们的 Hooks 参考文档中查看所有可用的 Hooks。
全新的 Fuel 浏览器
全新的 Fuel 浏览器为用户和开发人员设计,创建了旨在帮助可视化交易的整体细节、操作序列、输入和输出设计。对于更高级的用户,我们还包含了一个视图,可以使其可视化原始交易,从而消除了使用多个工具的需求。
新的浏览器还包括了对账户和谓词、合约和区块的可视化。在这里查看。
为了解决 beta-4 中可能出现的任何重大变更,Fuel 生态系统中的活跃开发者可以按照迁移指南进行迁移
要部署合约和与网络交互,需要有效的交易,而这需要使用代币。可以通过完成验证码从测试网的水龙头获取测试网 ETH。
重新归因了错误,向用户返回了更详细的错误信息,简化了调试。
TxParametersTxPoliciesTxPolicies 引入了新的字段:
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 Labs Discord 并转到 Testnet 类别下的 #questions 频道。请确保关注我们的 Twitter 获取更新。
beta-5 正在积极开发中,可能会看到重大升级甚至重生活动。
重新归因了错误,向用户返回了更详细的错误信息,简化了调试。
TxParametersTxPoliciesTxPolicies 引入了新的字段:
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 Labs Discord 并转到 Testnet 类别下的 #questions 频道。请确保关注我们的 Twitter 获取更新。
beta-5 正在积极开发中,可能会看到重大升级甚至重生活动。
No activity yet