
Starknet 春季 DeFi 激励计划
原文:Starknet Foundation Introduces: The Start of DeFi Spring 翻译及校对:「Starknet 中文社区」 📑 转载请注明出处 🕹️精选速览「Starknet 春季 DeFi 激励计划」4000 万 STRK 奖励用户3 月 7 日开始领取激励生态任务获得专属 NFT引言2023 年 11 月 9 日,Starknet 基金会宣布 Starknet DeFi 委员会成立及其成员任命,该委员会的任务是促进 Starknet DeFi 增长。 经过两个月的内部和外部研究后,Starknet 基金会非常兴奋地宣布推出为实现这些目标而量身定做的计划。 Starknet 基金会与 OpenBlock Labs 的合作,推出「Starknet 春季 DeFi 激励计划」。本为期六到八个月的项目,在此期间将向参与 Starknet 上 DeFi 协议的参与者分发 4000 万 STRK。 这是 DeFi 委员会扩大 Starknet DeFi 规模系列举措的第一步。第一部分:STRK 分发DeFi 委员会计划在接下来的六到八个月内,D...

开辟道路,构建游戏新世界
原文:Trailblazing the Way to Building New Worlds 翻译及校对:「Starknet 中文社区」Starknet 正在新兴的自治世界领域崭露头角!精选速览Starknet 处于不断发展的链上游戏和自治世界领域的前沿,利用 Dojo 引擎和 Madara 的强大功能实现链上游戏。对于希望利用资产所有权和无限互操作性的开发者以及用户来说,通过 Starknet 的高吞吐量和 Cairo,一个充满可能性的世界正在兴起。多个团队正在通过 Starknet 的功能来打破 EVM 的限制,探索游戏的新天地。引言自治世界融合了科技、游戏、去中心化、创造力和创新。在这些世界里,没有中央权力机构,可以独立运行,用户可以参与并探索,创建内容,进行互动,而这一切都无需经过任何人的许可,也不存在任何审查方面的顾虑。 对引领创建自治世界的先锋者们来说,Starknet 的定位是他们的不二之选。这些世界需要一个 L1 来确保它们可以永久存在,但它们也需要一个强大的 L2 来应对其复杂性。以以太坊为基础层,以 Starknet 为扩展和创造力的支持层,将两者进行结合,保...
「Starknet 中文」社区致力于 Starknet 在中文世界发展,提供最全生态资讯。

Subscribe to Starknet 中文
Share Dialog

<100 subscribers
原文:Open Sourcing Cairo 1.0! 作者:StarkWare 翻译:「StarkNet 中文」社区
Cairo 1.0 开源啦!这还仅仅只是开源 StarkNet 堆栈的第一步
现公开 Cairo 1.0 编译器的预览版,可以尝试基本的 Cairo 1.0 代码了
Cairo 1.0 核心和 Rust 非常类似
这只是预览版本,并不是正式发布。还有更多改进正在进行中,第一版编译器预计在明年第一季度上线
Cairo 1.0 现不支持 StarkNet,但将在明年第一季度实现 StarkNet 支持
在 2020 年,我们发布了支持可验证计算的图灵完备编程语言 Cairo。Cairo 最初作为一种汇编语言,随着不断的开发变得极具表现力。两个月前,我们曾公开表示 Cairo 1.0 解决了当前形势中一些重要问题:
虽然 Cairo 的语法相比初阶段已经有了显著的改进,但开发者体验仍可以不断改善。Cairo 1.0 作为受 Rust 启发的全类型语言,便于编写相同的逻辑和减低出错概率。
现有的编译器与 StarkNet 的开发同属一个 Repo,难以追踪其语言更改。而 Cairo 1.0 编译器重新编写,允许更快捷的开发功能和更多社区参与。
现在每一次计算都是可证明的。目前,Cairo 程序可能在特定的输入指令时失败(如在某些计算分支中得到 assert 1=2 指令),导致无法证明计算。在 Cario 1.0 中,程序在每一个分支都是可证明的,这对于 StarkNet 中的 DOS 保护是至关重要的。
今天,我们实现了上述目标中的第一个里程碑,将开发转移至公共 Repo 并开源 Cairo 1.0!尽管现阶段还无法在 StarkNet 部署,开发者们可以尝试使用 Cairo 1.0 和体验新功能。
现在可以编译和执行基础的原生 Cairo 程序。尽管很多语法/语言仍在改进,但可以先熟悉 Cairo 1.0,感受未来升级的乐趣。
请注意,暂不支持编写 StarkNet 合约。StarkNet 语法(存储变量/调用合约/事件和其他系统调用)将在未来几周添加。
为展示旧版语法和 Cairo 1.0 之间的差异,我们在下面展示了找到第 n 个斐波那契数的几种不同实现/偏好。
在 Cairo 1.0 中,你可以使用类似 rust 的匹配表达式。再也不用怕可能导致引用撤销的 if/else 命题了!

Cairo 0 中使用 felt 和指针,而在 Cairo 1.0 中我们有复杂数据类型的原生访问形式了。在下面你可以看到生成前 n 个斐波那契数列的示例。

在上图可见,不再是直接用内存指针,而是使用 Array::<felt> 类型和 array_append 函数。
以下代码说明了 Cairo 1.0 中结构的用法。

以下内容仅针对 Rust 爱好者。Cairo 1.0 使用和 Rust 类似的方式管理内存。特别是所有权和借用的概念。因此,通过访问
FibResult结构的成员(在此例中为result.value),我们移除了result,这就意味着除非 FibResult 是可复制的,否则我们无法在result.index中再次访问它。为克服这个问题,我们添加了FibResult类型的#[derive(Copy)]属性。在未来版本中,我们还会为结构添加自动解构,这样就可以在不触及其他成员的情况下移动一个成员的所有权(特别是,即使FibResult没有复制属性,上述代码也会编译)。
特别要注意的是,Cairo 1.0 完全抽象掉了 Cairo 原本的(非确定性只读)内存模型。
以下代码计算第 n 个斐波那契数,但与之前的示例不同,这里所有的输入都是 uint128 类型。请注意,这里解决了在 Cairo 0 中处理 uint 的一大痛点。此处的 uint128(以及未来的 uint256)都是原生数据类型。

两个 128 位的整数相加会导致溢出。以上代码使用了 Option 枚举和问号运算符来处理其中一个中间加法运算的溢出情况。而目前的 uint256 加法语法,必须调用 uint256_check 来保证可靠性。另外,我们未来将添加 panic 概念(与 Rust 中的 panic 宏类似),并且加法溢出等简单错误将无法匹配并自动传播,也就意味着在相加 uint 时不必使用Option或?了。
现在来自己动手尝试编译和运行当前所支持的 Cairo 1.0 程序吧。按照说明教程,学会 cairo-run 指令。请注意后台将由 Lambdaclass 开发的 Rust Cairo VM 执行指令。
点击查看入门示例,请注意这只是编译器开发的预览版本,我们将会在几周内改进编译器以及 CLI。
编译器的第一个版本将着重支持 Cairo 1.0 中 StarkNet 的所有现存功能,该版本计划于明年第一季度推出。除此之外,我们正在扩展 Cairo 1.0 编译器性能。将在几周内上线:
StarkNet 性能:编写智能合约系统调用功能
循环
全新库函数
改进语言服务器
原生 StarkNet Gas 概念
敬请关注编译器最新进展!