Starknet Alpha v0.11.0:开启向 Cairo 1.0 过渡

MarsBit
媒体专栏
热度: 18745

此版本中的另一项重要改进是计算成本降低了 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标志着过渡时期的开始,这将为StarknetRegenesis做准备。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

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 CairoVMPapyrus全节点,形成性能三重奏;

Offchain DA! 在该版本中,我们处理了交易成本的计算组件。在即将推出的版本中,我们将处理链上数据成本,这是目前平均交易的主要成本。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:Starknet