登录 后可观看高清视频
Cyfrin Updraft 的 Solana 智能合约课程
21次播放
1天前
视频 AI 总结: 本视频是 Solana 课程的介绍,核心内容是讲解如何使用 Rust 语言和 Anchor 框架开发 Solana 程序。课程将通过原生 Solana 库和 Anchor 框架两种方式进行教学,旨在帮助学员快速掌握 Solana 程序开发,并深入理解 Solana 的底层原理。课程鼓励使用 AI 辅助学习,并提供了练习和解决方案,帮助学员实践和巩固所学知识。
关键信息:
- Solana 程序开发有两种方式:使用 Solana 原生 Rust 库(更深入理解底层原理)和使用 Anchor 框架(快速原型开发)。
- 学习本课程的原因包括:开发 Solana 程序、练习 Rust 编程、以及对审计和漏洞赏金感兴趣。
- 课程的先决条件包括:Rust 编程基础、区块链基础知识、以及 EVM 智能合约开发经验(如 Solidity 或 Vypr)。
- 鼓励使用 AI 辅助学习,但需要注意 AI 生成代码可能存在问题,需要结合文档和搜索进行修正。
- 课程练习分为原生程序开发和 Anchor 框架开发,练习和解决方案位于 GitHub 仓库中。
- Solana 中代码和状态分离,代码存储在 Programs 中,状态存储在 Accounts 中。
- Solana 交易可以并行执行,因此需要声明交易可能修改的所有账户。
- Solana 中部署程序或创建账户需要锁定 SOL,关闭账户或删除程序时,锁定的 SOL 会被返还。
- Solana 程序默认可升级,而 Ethereum 合约默认不可变,需要使用代理合约才能升级。
- Solana 中所有数据都存储在 Accounts 中,Accounts 包含 LAMPORTS(余额)、DATA(任意数据)、OWNER(程序所有者)、EXECUTABLE(是否为程序账户)等字段。
- PDA (Program Derived Addresses) 是没有私钥的公钥,由程序 ID、种子和 bump 确定性地创建,常用于存储用户相关信息。
- CPI (Cross-Program Invocation) 是程序调用另一个程序,有最大深度限制(目前为 4),且需要注意权限传递。
- 使用 Anchor 框架开发 Solana 程序时,可以通过 IDL (Interface Definition Language) 文件导入其他程序的接口,无需手动声明指令。
- Solana 程序有大小限制,并非所有 Rust 库都可以使用。
- 创建 Solana 账户需要指定空间大小、支付租金,并且账户本身需要签名。
- 转移 SOL 有两种方式:如果源账户属于系统程序,可以直接调用系统程序;如果源账户是 PDA,则需要手动转移。
- Solana 中与 Token 相关的概念包括:Mint Authority(铸币权)、Mint(Token 本身)、Token Program(管理 Token 的程序)、Token Account(存储 Token 余额的账户)、Associated Token Account(与用户关联的 Token 账户)。
- 可以使用 Solana CLI 管理 Token,包括创建 Token、铸币、转移 Token、查看余额等。
- 恒定和 AMM (Constant Sum AMM) 是一种以恒定价格交换 Token 的 AMM,其公式为 x + y = L,其中 L 为常数。