欢迎来到 Web3 的世界
如果你是一名经验丰富的 Web2 开发者,你可能已经习惯了这样的架构:
- 前端:React/Vue,通过 HTTP 请求与后端通信。
- 后端:Node.js/Java/Go,处理业务逻辑。
- 数据库:MySQL/PostgreSQL/MongoDB,存储所有状态。
- 基础设施:AWS/阿里云,托管服务器。
在这个世界里,作为开发者,你是上帝。你可以随时修改数据库,你可以随时更新代码,你也掌握着用户的所有数据。
Web3 的不同之处
进入 Web3,我们需要进行一次思维范式的转变 (Paradigm Shift)。
没有“服务器”,只有“节点”
区块链是一个由成千上万个节点组成的 P2P 网络。你不再将代码部署到某一台特定的服务器上,而是部署到整个网络中。
- Web2:
POST /api/transfer-> 服务器数据库UPDATE users SET balance = ... - Web3: 构建一个
Transfer交易 -> 签名 -> 广播给网络 -> 节点共识 -> 全网账本更新。
数据库 vs 账本
在 Web2,数据库是私有的。在 Web3,Solana 就是一个巨大的、公开的、只追加的数据库。
- 任何人都可以读取上面的数据(透明性)。
- 只有拥有私钥的人才能修改属于他的数据(所有权)。
API vs 智能合约
- Web2 API: 你编写的业务逻辑,运行在黑盒子里。用户必须信任你不会作恶。
- 智能合约 (Program): 部署在链上的逻辑。代码公开可见,且不可篡改(除非预留了升级权限)。这实现了“代码即法律”。
身份认证:从密码到私钥
- Web2: 用户名 + 密码。数据存储在你的
users表里。如果你的数据库被黑,用户密码泄露。 - Web3: 公钥 + 私钥。用户使用钱包(如 Phantom)管理私钥。你作为开发者,永远碰不到用户的私钥,你只需要验证用户的数字签名。
Solana 开发映射表
为了帮助你快速理解,我们将 Web2 的概念映射到 Solana 的技术栈:
| Web2 概念 | Solana 映射 | 说明 |
|---|---|---|
| User ID | Public Key (Address) | 例如 8xR...2Lq1,这是用户的唯一标识。 |
| Password | Secret Key (Signature) | 用于签署交易,证明“我是我”。 |
| Backend API | Program (Smart Contract) | 链上运行的二进制代码 (BPF/SBF)。 |
| Database Row | Account | Solana 上存储数据的单元。 |
| Microservice | CPI (Cross-Program Invocation) | 一个程序调用另一个程序。 |
| Cron Job | Crank / Keeper | 链上没有定时器,需要外部脚本定期触发交易。 |
| Logs | Events / Logs | 存储在区块中的执行记录。 |
本课程目标
通过本课程,我们将站在 Web2 开发者的视角,剥去区块链神秘的外衣,用你熟悉的工程语言来解构 Solana。我们将学习:
- 如何像设计数据库一样设计账户模型。
- 如何像写 API 一样编写指令逻辑。
- 如何像做全栈应用一样构建 dApp。
准备好了吗?让我们开始这场去中心化的冒险。