Starknet Alpha v0.11.0:开启向 Cairo 1.0 过渡
此版本中的另一项重要改进是计算成本降低了 5 倍。
原文作者:StarkWare
原文来源:medium
原文标题:Starknet Alpha v0.11.0: The Transition to Cairo 1.0 Begins
编译:MarsBit
TL;DR
●Starknet alpha v0.11.0 已经发布并在测试网上线。
●你现在可以在 Starknet 测试网上部署 Cairo 1.0 合约并与之交互。
●Starknet 上的计算成本便宜 5 倍。
●主网升级到 Starknet alpha v0.11.0 将首次进行治理投票,
●这标志着过渡期的开始。
●只有在测试网上运行几周后,我们才能确保新系统顺利运行,才能在主网上部署 Cairo 1.0 合约。
介绍
我们很高兴地宣布,期待已久的 Starknet alpha v0.11.0 已在测试网上上线!为什么说这是 Starknet 迈出的一大步?在 Starknet v0.11.0 中,你可以部署和运行Cairo 1.0智能合约。我们还引入了一个新的系统调用,允许将现有合约平稳过渡到 Cairo 1.0 运行。
Cairo 1.0 在两个不同方面改进了 Starknet。首先,它通过提供更丰富的编程语言改善了开发体验,该语言向 Cairo 引入了(除其他外)类型/泛型/特征/错误处理。其次,Cairo 1.0 在 Starknet 的去中心化进程中发挥了关键作用:Starknet alpha v0.11.0 中发送的 Cairo 1.0 合约编译为 Sierra。Sierra 保证每个合约的执行都是可证明的,这是实现去中心化 Starknet 的一个重要步骤。
此版本中的另一项重要改进是计算成本降低了 5 倍。这将使 Starknet 对计算密集型应用程序更加友好。详情如下。
为Regenesis做好准备
Starknet alpha v0.11.0标志着过渡时期的开始,这将为Starknet的Regenesis做准备。Starknet的Regenesis计划是在几个月前发布的,它的重点是从基于Cairo 0的系统过渡到基于Cairo 1.0的系统。
在过渡期间,现有的Cairo 0合约(如果它们是可升级的)有机会维护它们的地址和存储,并无缝地将它们的实现过渡到Cairo 1.0(请参阅下一节)。
作为一个Starknet用户,这意味着你只需要在你的账户的新Cairo 1.0实现发布时升级你的钱包(你可以在任何时间升级到Regenesis本身)。预计不会出现停机,系统中的所有dapp将继续正常运行。
在Regenesis之后,Starknet将在整个系统中停止支持剩余的Cairo 0 合约。这将提前进行沟通,开发者将有足够的时间来迁移他们的合约。预计过渡期将持续几个月,dapp开发人员已经可以开始将他们的实现迁移到Cairo 1.0。在过渡时期结束时,Regenesis 将会启动。
顺利迁移至Cairo 1.0
随着向Cairo 1.0过渡,现有的Cairo 0合约将被弃用,并且在Regenesis时将不再受支持。为了允许可升级的Cairo 0合约继续运行(即使在Regenesis之后),并保持构建状态,我们添加了一个新的系统调用- ' replace_class '。可升级的合约升级到Cairo 1.0没有问题,但是底层代理(持有实际状态的合约)将仍然停留在Cairo 0。' replace_class '系统调用通过允许代理合约替换其底层类来解决这个问题,即保持相同的地址和存储,但替换实现。
计算成本便宜了5倍!
目前,Starknet的交易费用有两个主要组成部分:计算和链上数据。Starknet交易费用的计算元素是由在L1上验证其证明的边际成本决定的(详情请参阅文档)。
最初,我们认为2亿Cairo合约证明步骤需要500万Gas验证,这导致我们天真的以为Cairo每个合约步骤需要0.05Gas。自此,我们转向递归证明,这将大幅减少L1验证成本(只有递归树的根到达L1)。现在是时候更新我们原来的估算了- L2上的每个合约步骤成本将降低5倍,现在将花费0.01Gas。
这种成本的降低对于计算密集型应用程序来说意义重大,例如具有非本地签名的帐户合约。简单交易的成本会略有降低(约5%)。在未来的版本中,我们将处理第二个组件:链上数据成本。一旦Starknet(又名Volition)引入链上数据的替代方案,将全面实现成本降低。
Starknet治理首次投票
Starknet治理的第一阶段已经启动(更多细节在这里)。社区成员现在可以通过一个额外的渠道,即对协议更改进行投票,参与优化Starknet。
Starknet治理第一阶段将集中于Starknet协议升级。每一次Starknet版本升级都将首先部署在测试网上;投票者将有6天的时间来检查和测试在 Goerli 上运行的升级版本。在此期间,将开放一个Snapshot提案,社区可以投票决定是否批准主网部署新版本。
如果提案在6天的投票期间获得多数“赞成”票,则提案通过,Starknet主网将相应升级。
Starknet alpha v0.11.0是Starknet第一个进行投票的版本。Starknet alpha v0.11.0的投票将从测试网部署开始时计算,开放6天。
Cairo 1.0和Sierra
Sierra是一种可以编译为Cairo字节码(CASM)的中间表示层。在Starknet alpha v0.11.0之前,开发者会将Cairo 0编译到CASM中,并将结果发送到Starknet测序器。在Cairo 1.0中,开发者将其代码编译到Sierra,并将这个中间表示发送到排序器。随后,定序器将其编译到CASM。Sierra被保证编译为“安全的CASM”,即CASM的一个子集,它不会失败,每一次执行都是可证明的。这保证了排序器将能够收取费用,即使是恢复的交易,防止DOS。有关更多信息,请参阅文档。
关于【Starknet Alpha v0.11.0:开启向 Cairo 1.0 过渡】的延伸阅读
Coin Metrics:分析以太坊 Blob 与 EIP-4844 的影响
自3月13日起,多个Layer-2解决方案采用blob交易,超过950,000个blob已发布到以太坊,降低了操作成本。EIP-4844升级提高了L2的可伸缩性和降低交易成本,每天约有10,000个blob发布。blob被设计为18天后过期,防止永久存储膨胀。随着rollups使用blob发布大量数据,blob空间利用率将增加。blob费用根据需求动态调整,4月份因铭文blob激增而增加,但随后又降低。Blob的采用是EIP-4844降低数据存储开销和增强L2可伸缩性的积极信号。然而,跨资产、流动性和用户体验碎片化等挑战仍需解决。随着更多L2利用blob,拥塞可能会再次出现。
Stacks Nakamoto 升级,BTC生态的文艺复兴
Stacks是一个跨链共识区块链,旨在将智能合约功能移植到比特币网络中。其共识机制为转移证明,通过燃烧比特币来参与挖矿。Stacks 2.0主网已推出,获得美国证券交易委员会批准的代币销售。Stacks 3.0升级解决了安全性、性能和可扩展性等问题,引入签名者角色,提高链的可扩展性。Nakamoto升级解决了MEV问题,提高了挖矿过程的公平性和稳定性。升级将在4月22日开始,提高Stacks区块链的透明度和信任度。
Starknet alpha 0.11.0将使用Cairo 1.0 alpha.6版本。该版本接近Cairo 0的特性,所有的Starknet系统调用都已经存在。
请注意,Starknet排序器使用固定的编译器版本,这意味着语言改进可能不会立即在Starknet中可用,只有在Starknet版本更新后才可用。具体来说,虽然影响Cairo 1.0→Sierra编译的改进可能会立即生效,但Sierra→CASM编译器的更改(更多细节请参阅文档)只会在等待Starknet升级后才会更新。
还有什么新进展?
新交易类型-Declare v2
我们为Cairo 1.0类添加了一个新的交易类型。这个新的' declare '交易版本类似于现有的' declare ',但有两个重要的区别:
现在发送的类对象表示Sierra而不是CASM,即类的语义由Sierra表示定义。
用户还对编译后的类哈希进行签名。在Sierra→CASM编译被证明是Starknet操作系统的一部分之前,这是至关重要的一步。
要了解更多细节,请参阅文档。
从开发者的角度来看,体验还是一样的。编写完Cairo 1.0代码后,可以使用CLI声明该类。
请注意,最初,' declare v2 '交易将不被Starknet主网接受。在测试网上试用一段时间后,新的交易类型将在主网上启用,Cairo 1.0类也将可用。
Poseidon来了
Poseidon是一个系列哈希函数,设计用于非常有效的代数电路。因此,它们可能在ZK证明系统(如stark和SNARKs)中非常有用。从Starknet alpha v0.11.0开始,开发者将能够使用Poseidon。此外,作为Starknet协议一部分的一些哈希计算将过渡到Poseidon(具体来说,类哈希,编译类哈希,以及部分状态承诺将使用Poseidon,详情请参阅文档)。在未来,更多的内部组件将过渡到使用Poseidon哈希函数。
在Starknet中使用的确切版本和参数可以在这里找到。
各种各样的变化
像之前的Starknet版本一样,升级也会对我们的api和其他低级组件产生影响。下面我们列出了这些,并说明了所做的具体更改:
●不再支持 v0 调用/发起交易
●L1→L2 消息现在需要费用。也就是说,Starknet sequencer 不会处理零费用发送的消息
●链上数据格式改变
●API 更改(此处未列出所有更改,请参阅文档以获取详尽列表):
●添加了一个新的 `get_compiled_class_by_class_hash` 端点
●`get_class_by_hash` 返回 Cairo 0 / Cairo 1.0 类(取决于请求的哈希值)
●`get_state_update` 有一个用于替换类的新部分,并且声明分为 Cairo 0 和 Cairo 1 类。
●`estimate_fee` 和 `simulate_tx` 现在可以跳过验证
●新的Starknet JSON-RPC版本
接下来会发生什么?
现在所有与Cairo 1.0相关的基础设施都已就绪,你可以期待:
对Cairo 1.0语言的进一步改进;
性能改进:正如承诺的那样,我们继续朝着显著提高TPS的方向前进。路线图中的下一步是过渡到Rust序列器,它是在Apache 2.0许可下开发的。新的排序器将使用Rust CairoVM和Papyrus全节点,形成性能三重奏;
Offchain DA! 在该版本中,我们处理了交易成本的计算组件。在即将推出的版本中,我们将处理链上数据成本,这是目前平均交易的主要成本。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:MarsBit,如有侵权请联系删除。转载或引用请注明文章出处!