1. 课程导论:原生 Rust 开发

课程导论

这门课程讲什么

本课程将带你从零开始,使用原生 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 官方教程的前几章会让学习过程更顺畅。

RUSTPlayground
EDITOR ACTIVE
Initializing RUST Environment...

开发模式对比

Transaction Input
Raw Bytes
Your Code (Native)
1. Deserialization
Manually parse &[u8] to Objects
2. Security Checks
Check Owner, Signer, Writable flags...
3. Business Logic
Execute actual program function
原生开发特点:你需要亲自处理每一颗螺丝钉。虽然繁琐,但你清楚地知道数据是如何流动的,以及安全隐患在哪里。这对于深入理解 Solana 至关重要。