Cairo :可升级合约与跨链信息发送
StarkNet 作为以太坊 L2 项目,其部署在以太坊 核心合约 提供了跨链信息传输功能,而在 StarkNet 链上,原生支持向以太坊通信的系统调用。 显然,使用这些函数可以构造一个沟通 StarkNet 和 Ethereum 的跨链应用。本文将在 Cairo 2 实战入门:编写测试部署ERC-20代币智能合约 基础上构造一个原生支持跨链的 ERC20 代币。 本文出现了大量难度不高的 solidity 代码并使用了 foundry 开发框架,如果读者不熟悉 solidity 合约编程或不熟悉 foundry 框架,请参考 Foundry教程:编写测试部署ERC-20代币智能合约。 我们可以将跨链任务拆解为两部分:部署以太坊 ERC20 代币并实现 transfer_to_L2 函数在 hello_erc20 cairo 智能合约基础上实现 transferToL1 函数本文所有代码都可在 helloCairoBridge 仓库内找到。 可升级合约 在 Cairo 2 实战入门:编写测试部署ERC-20代币智能合约 中,我们曾介绍过 class hash。事实上,我们编写的 ...
Cairo :可升级合约与跨链信息发送
StarkNet 作为以太坊 L2 项目,其部署在以太坊 核心合约 提供了跨链信息传输功能,而在 StarkNet 链上,原生支持向以太坊通信的系统调用。 显然,使用这些函数可以构造一个沟通 StarkNet 和 Ethereum 的跨链应用。本文将在 Cairo 2 实战入门:编写测试部署ERC-20代币智能合约 基础上构造一个原生支持跨链的 ERC20 代币。 本文出现了大量难度不高的 solidity 代码并使用了 foundry 开发框架,如果读者不熟悉 solidity 合约编程或不熟悉 foundry 框架,请参考 Foundry教程:编写测试部署ERC-20代币智能合约。 我们可以将跨链任务拆解为两部分:部署以太坊 ERC20 代币并实现 transfer_to_L2 函数在 hello_erc20 cairo 智能合约基础上实现 transferToL1 函数本文所有代码都可在 helloCairoBridge 仓库内找到。 可升级合约 在 Cairo 2 实战入门:编写测试部署ERC-20代币智能合约 中,我们曾介绍过 class hash。事实上,我们编写的 ...
Cairo: Sierra IR 与 Cairo 底层
在 Cairo 0 时期,我们使用 Cairo 0 进行合约编程,并将编译后的 CASM 字节码发送给排序器,排序器直接将接受到的 CASM 部署到 StarkNet 网络中。 完成合约部署后,我们继续考察合约调用的情况。假如用户调用 despoit 函数,我们首先讨论调用 Cairo 0 合约的情况,当用户完成交易签名并发送到排序器之后,排序器会根据用户给定的交易费用选择是否运行,假如一切正常完成交易运行后,排序器会生成交易的证明并获得交易的费用。这是较为正常的步骤。但存在一种可能,用户发送的 despoit 函数调用请求中存在错误,交易无法正常执行,此时,排序器无法对错误交易生成证明,这意味着排序器无法获取交易费用。 在以太坊中,这种交易会直接触发 reverted ,但节点依旧会将错误交易进行区块打包并正常拿到 gas 费用。显然,在 StarkNet 中,基于无验证生成无 gas 收入的原则,一旦遇到错误交易,节点无法获得交易费用,这部分交易费用会直接退还给用户。这会导致严重的 DDoS 问题,由于发送错误交易不存在成本,这意味着部分用户可以向排序器高频发送错误交易,这会...
Cairo: Sierra IR 与 Cairo 底层
在 Cairo 0 时期,我们使用 Cairo 0 进行合约编程,并将编译后的 CASM 字节码发送给排序器,排序器直接将接受到的 CASM 部署到 StarkNet 网络中。 完成合约部署后,我们继续考察合约调用的情况。假如用户调用 despoit 函数,我们首先讨论调用 Cairo 0 合约的情况,当用户完成交易签名并发送到排序器之后,排序器会根据用户给定的交易费用选择是否运行,假如一切正常完成交易运行后,排序器会生成交易的证明并获得交易的费用。这是较为正常的步骤。但存在一种可能,用户发送的 despoit 函数调用请求中存在错误,交易无法正常执行,此时,排序器无法对错误交易生成证明,这意味着排序器无法获取交易费用。 在以太坊中,这种交易会直接触发 reverted ,但节点依旧会将错误交易进行区块打包并正常拿到 gas 费用。显然,在 StarkNet 中,基于无验证生成无 gas 收入的原则,一旦遇到错误交易,节点无法获得交易费用,这部分交易费用会直接退还给用户。这会导致严重的 DDoS 问题,由于发送错误交易不存在成本,这意味着部分用户可以向排序器高频发送错误交易,这会...
Cairo 实战入门:Starknet Foundry 与组件语法
概述随着 Starknet Foundry 的进一步更新,使用 Starknet Foundry 进行 Cairo 智能合约开发可能会逐渐成为未来主流。 本文的主要内容实际上是介绍 cairo v2.3 引入的 Components 重大更新,但考虑 Starknet Foundry 的活跃开发,所以本文使用了 Starknet Foundry 作为开发框架,而不是与之前的文章一样使用 Cairo 自带的框架。 本文所有代码均可以在 erc20_component 仓库内找到。前置准备读者可以在 Linux 或者 Mac 系统终端内运行以下命令:curl -L https://raw.githubusercontent.com/foundry-rs/starknet-foundry/master/scripts/install.sh | sh 运行完成后,即可安装 snforge 和 sncast 两大工具。其中 snforge 用于合约项目的管理,比如触发测试等,而 sncast 则负责与 starknet 区块链进行通信,实现合约部署等功能。第一个组件读者可以运行以下命令初始...
Cairo 实战入门:Starknet Foundry 与组件语法
概述随着 Starknet Foundry 的进一步更新,使用 Starknet Foundry 进行 Cairo 智能合约开发可能会逐渐成为未来主流。 本文的主要内容实际上是介绍 cairo v2.3 引入的 Components 重大更新,但考虑 Starknet Foundry 的活跃开发,所以本文使用了 Starknet Foundry 作为开发框架,而不是与之前的文章一样使用 Cairo 自带的框架。 本文所有代码均可以在 erc20_component 仓库内找到。前置准备读者可以在 Linux 或者 Mac 系统终端内运行以下命令:curl -L https://raw.githubusercontent.com/foundry-rs/starknet-foundry/master/scripts/install.sh | sh 运行完成后,即可安装 snforge 和 sncast 两大工具。其中 snforge 用于合约项目的管理,比如触发测试等,而 sncast 则负责与 starknet 区块链进行通信,实现合约部署等功能。第一个组件读者可以运行以下命令初始...
Starknet智能合约静态分析器
卡拉卡尔是Starknet智能合约的SIERRA表示的静态分析工具。特征检测器检测脆弱的开罗代码打印机报告信息污点分析数据流分析框架易于在Scarb项目中运行安装:预编译二进制文件:预编译的二进制文件可以在我们的发布页面上找到。如果您使用Cairo编译器,则1.x.x使用二进制v0.1.x,否则,如果您使用Cairo编译器,则2.x.x使用v0.2.x。从源生成你需要Rust编译器和Cargo。 从git构建:
Starknet智能合约静态分析器
卡拉卡尔是Starknet智能合约的SIERRA表示的静态分析工具。特征检测器检测脆弱的开罗代码打印机报告信息污点分析数据流分析框架易于在Scarb项目中运行安装:预编译二进制文件:预编译的二进制文件可以在我们的发布页面上找到。如果您使用Cairo编译器,则1.x.x使用二进制v0.1.x,否则,如果您使用Cairo编译器,则2.x.x使用v0.2.x。从源生成你需要Rust编译器和Cargo。 从git构建:
Starknet Hacker House 成都
Starknet 生态系统自今年以来不断发展,从四月份的 Cairo1.0 到七月份的量子跃迁,从 Madara 排序器到 Kakarot 解释器,Starknet 基建层在不断完善。另一方面,从完全链上游戏、ZKML 到账户抽象,Starknet 也有大量应用创新的机会等待 Cairo 开发者去捕捉。 但由于 Cairo 语言及其开发工具不够完善以及一些信息壁垒,许多 Cairo 开发者仍然对 Starknet 技术栈和前沿应用不甚了解。因此 将在八月份组织开发者举办 Starknet Hacker House。Part.1 Starknet 介绍 掌握 Starknet 的基础知识并了解如何部署智能合约 Part.2 Cairo 的智能合约 编写适合 Starknet 的 Cairo 智能合约 Part.3 Starknet 开发工具 学习使用 Protostar 或 Hardhat 等工具以及 Javascript、Python、Rust 等语言与 Starknet 进行交互 Part.4 Starknet 架构 探索 Starknet 的内部运作方式,包括交易生命周期以及...
Starknet Hacker House 成都
Starknet 生态系统自今年以来不断发展,从四月份的 Cairo1.0 到七月份的量子跃迁,从 Madara 排序器到 Kakarot 解释器,Starknet 基建层在不断完善。另一方面,从完全链上游戏、ZKML 到账户抽象,Starknet 也有大量应用创新的机会等待 Cairo 开发者去捕捉。 但由于 Cairo 语言及其开发工具不够完善以及一些信息壁垒,许多 Cairo 开发者仍然对 Starknet 技术栈和前沿应用不甚了解。因此 将在八月份组织开发者举办 Starknet Hacker House。Part.1 Starknet 介绍 掌握 Starknet 的基础知识并了解如何部署智能合约 Part.2 Cairo 的智能合约 编写适合 Starknet 的 Cairo 智能合约 Part.3 Starknet 开发工具 学习使用 Protostar 或 Hardhat 等工具以及 Javascript、Python、Rust 等语言与 Starknet 进行交互 Part.4 Starknet 架构 探索 Starknet 的内部运作方式,包括交易生命周期以及...