课程导论
这门课程讲什么
本课程将带你从零开始,使用原生 Rust 语言开发一个真实可用的 Solana 链上程序。我们选择构建的项目是一个「链上数据存储器」——用户可以在区块链上存储、更新和管理自己的数据。
通过这个项目,你将掌握 Solana 程序开发的核心概念:
- 账户模型:如何定义和序列化数据结构。
- PDA 派生:程序如何管理自己的“银行账户”。
- 租赁机制 (Rent):如何在链上为存储空间付费。
- 跨程序调用 (CPI):如何组合其他程序的功能。
这些知识是理解 Solana 生态系统的基石,无论你未来开发 DeFi 协议、NFT 市场还是其他应用,都会用到它们。
为什么选择原生 Rust?
在 Solana 开发社区,Anchor 框架是目前最流行的选择。它提供了便捷的账户验证、自动化的序列化处理和友好的开发体验。
但我们有意在本课程中避开 Anchor,选择原生 Rust 开发,原因如下:
1. 理解底层机制 (The "Why")
框架会隐藏很多细节。例如,Anchor 会自动帮你做账户所有权检查。如果你只学 Anchor,当你要调试一个复杂的安全漏洞时,你可能根本不知道底层的 AccountInfo 到底长什么样。
2. 调试能力 (The "How")
当程序出现 "Error: AccountNotInitialized" 时,理解底层原理能让你更快定位问题。是数据长度不对?还是 Discriminator 没写进去?原生开发会逼你面对这些细节。
3. 灵活性 (The "What")
原生开发让你完全掌控程序的每一个字节。对于极度追求计算单元 (CU) 优化的场景,原生代码往往比框架更高效。
学习路径建议:先学原生 Rust 就像先学手动挡开车。学会之后,你再去开自动挡(Anchor)会觉得无比轻松,并且在遇到极端路况时,你依然有能力掌控车辆。
适合什么人学习
本课程面向具有 Web2 开发经验、希望进入 Web3 领域的开发者。你需要具备以下基础:
- 熟悉至少一门编程语言(JavaScript、Python、Go 等)
- 了解基本的命令行操作
- 对区块链有基本认知(知道什么是钱包、交易、智能合约)
你不需要预先掌握 Rust 语言——我们会在必要时解释 Rust 的语法特性。但如果你有时间,阅读 Rust 官方教程的前几章会让学习过程更顺畅。