Starknet 量子跃迁:性能提升,飞的体验

我们很高兴地宣布 Starknet Alpha V0.12.0 版本发布。该版本是 Starknet 的重要里程碑,标志着超强性能和可扩展性方面实现重大飞跃的开始。这个版本是 Starknet 扩展以太坊之旅的又一大步,重点是解决吞吐量和延迟问题。为了应对这些挑战,我们聚焦于 Starknet 的排序器 (Sequencer),因为吞吐量为性能所限。

Starknet Alpha V0.12.0 版本的开发很大程度上是 LambdaClass 和 StarkWare 一年多富有成效且愉快的合作结晶。我们很自豪能够与 LambdaClass 团队一起构建 Starknet。

该版本作为主要版本,将由社区投票决定。我们邀请社区参与塑造 Starknet 的未来。

性能 — 吞吐量显著提升!

该版本专注于性能,特别是吞吐量的提高,显著提高十倍。吞吐量从 v0.11.0 版本的平均每秒三万 Cairo 步 (CSPS) 飙升至最新版本的 22 万 CSPS,令人大为惊叹。这一非凡的成就得益于有针对性的优化,这些优化是 Starknet 排序器实现效率的基础,正如我们之前在性能路线图中所分享的那样。Starknet 性能提升的三个关键因素:Cairo-rs、Blockifier 和 Papyrus,它们都受益于 Rust 的强大功能。

排序器的第一个改进是集成了 Cairo-rs,这是一个由 LambdaClass 开发、用 Rust 编写的高效 Cairo 运行器。通过利用 Rust 的强大功能,Cairo-rs 增强了 Cairo 合约的执行,为用户带来了更加精简的体验。

此外,基于 Rust 的块执行逻辑 Blockifier 的引入对于提高吞吐量也起到了至关重要的作用。通过优化交易执行时间,该实施方案有效减少了等待时间并缓解了网络拥堵。本地存储解决方案 Papyrus 的加入有助于排序器本地状态的高效管理。这一增强进一步优化了系统的整体性能和响应能力。

这仅仅是第一步

此版本中的排序器优化还远远不是性能改进之路的终点。

cairo_native

Starknet 将集成 LambdaClass 的 cairo_native 编译器,这将使 Cairo 合约以更高效的方式执行。通过允许合约在 Rust 等「原生代码 」中运行,而不是在 Cairo 环境中执行,我们预计 Starknet 会获得更高的效率和性能提升。

并行化

Starknet 之前的 Python 版本排序器引入了交易并行化,性能显著提升。然而,值得注意的是,V0.12.0 版本中包含的 Rust 中的排序器初始实现尚未实现并行化交易。持续的开发工作重点是本着 block-STM 的精神,在区块内并行执行交易。借鉴 Python 实现的成功演示,这种优化将进一步提高 Starknet 的吞吐量,使其能够有效处理增加的交易量。

不再有待处理的交易

在以前的版本中,PENDING 状态表示已由排序器执行但尚未满的有效区块,仍可以添加额外交易。然而,在这个最新版本中 PENDING 状态已替换为 ACCEPTED_ON_L2,反映了交易的最终状态。这一变化简化了交易确认流程,让用户体验更流畅。

get_block_hash 系统调用

Starknet Alpha V0.12.0 版本中的另一个新增功能是引入了 get_block_hash系统调用。这个新的系统调用允许开发者在 [first_v0_12_0_block, current_block-10] 范围内检索特定 Starknet 区块的哈希值。该系统调用的签名是 fn get_block_hash(u64 block_number) -> felt252。

与此场景相关的错误消息是:「区块编号超出范围。」

为了实现这一更改,操作系统将在每个区块的开头写入一个映射,该映射位于 address = 0x1 下,其中 current_block — 10 为键,以其对应的哈希值为值。

通过 get_block_hash 系统调用,开发者可以方便地检索区块哈希,这是构建和验证存储证明的重要组成部分。这些证明可以实现高效的跨链数据访问,并增强区块链数据的可信度,甚至无需依赖第三方预言机。通过此系统调用获取区块哈希值,开发者可以准确引用特定区块的状态、交易或区块头中提交的任何其他信息。

Cairo — 改进的合约语法

在此版本中,我们对智能合约语法进行了重大改进。新语法注重安全性,并为可扩展性奠定基础。在这种情况下,安全意味着对合约的面向外部的组件(接口/存储/事件)更加明确,这使开发者可以更好地了解与合约交互时会发生什么。

可扩展性将在后续版本中最终确定,允许合约使用外部库中的组件。这是任何智能合约语言的一个关键特性,并将解决 Starknet 开发社区中的一个重大问题。要详细了解语法改进动机和语法变更内容,请参阅 Cairo 路线图博客文章和社区论坛文章。

虽然新的编译器版本有重大变更,但您可以继续使用旧的编译器版本 (v1.1.0) ,并在接下来的 6 个月里将生成的合约部署在 Starknet 上。这体现了我们新的编译器升级协议的重大变化:随着新的编译器版本推出,由旧编译器版本编译的合约可以继续使用六个月以上,以便社区进行调整。当然,一旦在 Starknet 上声明了 Cairo 合约(不是 Cairo 0),就可以持续可供部署和交互。

下一步的计划是什么?

短期目标:0.12.1 版本

短期来看,Starknet 的重点是增强用户体验和交易可靠性。下一个版本 0.12.1 将引入另一个重大改进:将失败的交易纳入区块。到目前为止,失败的交易并未包含在区块中,因此排序器无法收取费,并增加 nonce。这给开发者带来了用户体验问题。开发者不能靠 nonce 序列,这迫使他们在发送新交易之前不断监控交易状态。这一更改还可以保护排序器,防止有人在没有付款的情况下用失败的交易向系统发送垃圾交易。本次更新旨在为用户在与 Starknet 交互时提供更流畅、更无缝的体验。

长期愿景:吞吐量、延迟和成本

展望未来,Starknet 的总体愿景是在规模和成本方面实现大幅可扩展性。路线图中下一个优先事项是大幅降低交易成本。

通过降低成本,Starknet 旨在使交易变得更加经济实惠和更具包容性,从而实现更广泛的用例,并赋能开发者和用户。对降低成本的承诺与 Starknet 的使命相一致,即为去中心化应用程序提供可扩展、灵活且经济高效的基础设施。

Starknet Alpha V0.12.0 版本投票

Starknet 治理第一阶段的重点主要是 Starknet 协议升级。

每个主要的 Starknet 版本升级都会首先部署在测试网上,为 Starknet 社区提供几天的时间来检查和测试升级版本。在此审查期间,将开放快照提案,让社区投票决定是否批准升级版本用于主网部署。

如果该提案在投票期间获得大多数 YES 票,则该提案获得通过,Starknet 主网将进行相应升级。

Starknet Alpha V0.12.0 投票现已上线!

欢迎每个人在 Starknet Snapshot 空间上注册通知服务。查看代表简介线程(Delegate Profile Thread)和代表发现(Delegation discovery),从而成为代表或选择代表,并在社区论坛上讨论 Starknet alpha v0.12.0 版本提案。

总结

Starknet Alpha V0.12.0 版本专注于增强性能和用户体验。新版本引入了基于 Rust 的排序器实现,吞吐量提升十倍,并降低交易延迟。其他功能包括新的编译器版本、删除待处理交易状态,并添加区块哈希系统调用。

Starknet 开发者有权编写具有影响力的解决方案。开始您的 Cairo 开发之旅,阅读 Cairo 文档,注册 Cairo Basecamp,或浏览教程。想了解所有版本的更新信息?订阅我们的 Starknet 开发者 Newsletter。

来源:,本站:/AIWeb3.0/2023-07-10/380.html

生成海报
收藏
考拉

考拉

还没有填写个人资料!会员中心-修改资料-个人介绍填写!

相关推荐

StarkNet 如何彻底改变加密签名

淘汰复杂密钥,采用人脸识别。关于帐户抽象的案例研究

一旦可以使用人脸识别等熟悉的方式来签署加密交易,我们能预见自托管的蓬勃发展。众所周知,自行运行管理钱包是最初的加密 ...

0 条评论

微信扫一扫,分享到朋友圈

QQ QQ

客服 工作时间:周一至周六 9:30-22:00 QQ:670088886(点击咨询) 直奔主题,别问在不在,谢谢!

热线 热线

13888888888

微信 微信
微信
公众号 公众号
公众号