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 对计算密集型应用程序更加友好。更多详细信息如下。
Starknet alpha v0.11.0 标志着过渡期的开始,这将允许在 Starknet 的重生之前做好准备。Starknet的Regenesis计划 在几个月前发布,其重点是从基于Cairo 0的系统过渡到基于Cairo 1.0的系统。
在过渡期间,现有的 Cairo 0 合约(如果可升级)有机会维护其地址和存储,并将其实施无缝过渡到 Cairo 1.0(请参阅下一节)。
作为 Starknet 用户,这意味着您只需要在您的帐户的新 Cairo 1.0 实现发布后升级您的钱包(您可以在 Regenesis 之前随时进行升级)。预计不会出现停机,系统中的所有 dapp 将继续照常运行。
再生之后,Starknet 将停止支持整个系统中剩余的 Cairo 0 合约。这将提前进行充分沟通,并且开发人员将有足够的时间来迁移他们的合约。过渡期预计将持续几个月,dapp 开发人员已经可以开始将其实施迁移到 Cairo 1.0。在过渡期结束时,重生将会发生。
随着过渡到 Cairo 1.0,现有的 Cairo 0 合约已被弃用,并且在 Regenesis 上将不再受支持。为了允许可升级的 Cairo 0 合约即使在重生之后也能继续运行,并保持构建的状态直到那时,我们添加了一个新的系统调用 - ` replace_class`。可升级合约升级到 Cairo 1.0 实现没有问题,但底层代理(保存实际状态的合约)仍然会停留在 Cairo 0 实现上。“replace_class”系统调用通过允许代理合约替换其底层类来解决这个问题,即保留相同的地址和存储,但替换实现。
如今,Starknet 交易费用有两个主要组成部分:计算和链上数据。Starknet 交易费用的计算元素由在 L1 上验证其证明的边际成本决定(有关 更多详细信息,请参阅文档)。
最初,我们的 200m Cairo 步骤需要 5m Gas 进行验证,导致我们天真地估计每个 Cairo 步骤需要 0.05 Gas。从那时起,我们转向 递归证明 ,这可以显着降低 L1 验证成本(只有递归树的根达到 L1)。现在是时候相应地更新我们最初的估计了——L2 上每个开罗步骤的价格将降低 5 倍,现在将花费 0.01 天然气。
这种成本降低对于计算密集型应用程序(例如具有非本机签名的账户合约)而言意义重大。简单交易的成本会小幅降低(约 5%)。在未来的版本中,我们将处理第二个组成部分:链上数据成本。一旦 Starknet(又名 Volition)引入链上数据的替代方案,成本就会全面降低。
Starknet 治理的第一阶段已经启动(更多详细信息请参见 此处)。社区成员现在可以通过另一个渠道参与塑造 Starknet,即对协议变更进行投票。
Starknet 治理第一阶段将重点关注 Starknet 协议升级。每个Starknet版本升级都会首先部署在测试网上;投票者将有 6 天的时间来检查和测试在 Goerli 上运行的升级版本。在此期间,将开放快照提案,社区可以投票决定是否批准新版本部署主网。
如果该提案在 6 天的投票期内获得多数“是”票,则该提案通过,Starknet 主网将进行相应升级。
Starknet alpha v0.11.0 是第一个需要投票的 Starknet 版本。Starknet alpha v0.11.0 投票将从测试网部署开始开放六天。
相关链接:
Sierra(安全中间 表示)是编译为开罗汇编(CASM) 的中间表示**。**在 Starknet alpha v0.11.0 之前,开发人员会将 Cairo 0 编译成 CASM 并将结果发送到 Starknet 定序器。使用 Cairo 1.0,开发人员将代码编译到 Sierra,并将此中间表示发送到定序器。然后定序器会将其编译为 CASM。Sierra 保证编译为“安全 CASM”,即不会失败的 CASM 子集,使得每次执行都可证明。这保证了排序器即使对于恢复的交易也能够收取费用,从而免受 DOS 的影响。有关更多信息,请参阅 文档。
Starknet alpha 0.11.0将使用 Cairo 1.0-alpha.6版本。该版本的功能与 Cairo 0接近 ,所有 Starknet 系统调用都已存在。
请注意,Starknet 定序器使用固定的编译器版本,这意味着语言改进可能不会立即在 Starknet 中可用,只有在 Starknet 版本更新后才可用。具体来说,虽然影响 Cairo 1.0 → Sierra 编译的改进可能会立即生效,但对 Sierra → CASM 编译器的更改(更多详细信息请参阅文档 ) 将需要等待 Starknet 升级。
我们添加了 一个新的事务类型 来声明 Cairo 1.0 类。这个新的“declare”交易版本与现有的“declare”类似,有两个重要的区别:
现在发送的类对象代表 Sierra 而不是 CASM,即类的语义由 Sierra 表示定义。
用户还对编译后的类哈希进行签名。在 Sierra→CASM 编译被证明是 Starknet 操作系统的一部分之前,这是至关重要的一步。
有关更多详细信息,请参阅 文档。
从开发者的角度来看,体验保持不变。编写 Cairo 1.0 代码后,您可以使用 CLI 来声明该类。
请注意,最初 Starknet 主网上不会接受“声明 v2”交易。经过一段时间在测试网上的试验后,新的交易类型将在主网上启用,并且开罗 1.0 课程将可用。
Poseidon 是一系列哈希函数,旨在拥有非常高效的代数电路。因此,它们在 STARK 和 SNARK 等 ZK 证明系统中可能非常有用。从 Starknet alpha v0.11.0 开始,开发人员将能够使用 Poseidon。此外,Starknet 协议中的一些哈希计算将转换为 Poseidon(具体来说,类哈希、编译类哈希和部分状态承诺将使用 Poseidon,有关更多详细信息,请参阅文档 )。未来,更多内部组件将过渡到使用 Poseidon 哈希函数。
与之前的 Starknet 版本一样,升级也会对我们的 API 和其他低级组件产生影响。下面我们列出了这些内容并解决了所做的具体更改:
不再支持 v0 调用/声明事务
L1→L2消息现在需要 费用。也就是说,零费用发送的消息不会被 Starknet 排序器处理
链上数据格式 变更
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版本
现在所有与开罗 1.0 相关的基础设施都已经到位,您可以期待:
Cairo 1.0 的进一步语言改进
性能改进: 正如所承诺的那样,我们不断朝着显着提高 TPS 的方向前进。路线图的下一步是过渡到 Rust 序列器,它是在 Apache 2.0 许可证下开放开发的。新的排序器将利用 rust CairoVM 和 Papyrus 全节点,形成 Performance Trio。
链下 DA!在此版本中,我们处理了交易成本的计算部分。在即将推出的版本中,我们将处理链上数据成本,这是当今平均交易的主要成本。