2272 字
11 分钟
Solana Bootcamp 第一次课课程笔记
课程概览
Bootcamp 三阶段规划
| 阶段 | 名称 | 时间 | 目标人群 | 目标 |
|---|---|---|---|---|
| Season 1 | 区块链技术 101 | 1月6日 - 2月6日 | 有编程基础,可不了解 Solana | 掌握 Solana 技术基础,从 0 到 1 开发小项目 |
| Season 2 | 项目实战 | 待定 | 有技术背景的工程师 | 掌握产品设计和项目开发能力,具备求职能力 |
| Season 3 | 企业技术实践 | 待定 | 传统金融想拥抱 Crypto 的从业者 | 企业级区块链应用 |
合作平台
- Blueshift - Solana 最棒的内容平台
- OpenBuild - 开发者教学平台
- Solana Academy - Solana 教学平台
- 登链 - 技术论坛
讲师团队
- Max - Solana 基金会 DevRel,基础课程
- 潘毅老师 - OpenBuild 专家
- 姆汉森老师 - 《Solana 程序开发入门》作者
- 丁老师 - Blueshift Co-founder
- Michael - Solana 测试工具 TSTS 创作者
- David - Solana 程序安全专家
第一部分:Web3 职业发展
如何转型 Web3
1. 选择生态作为起点
- 推荐选择 Solana 或 以太坊
- Solana 更市场化,创业公司多,链上收入多,机会相对更多
- 两者不冲突,可以多学习
2. 入门方式
- 📖 读文档 - 官方文档和社区教程
- ✍️ 写教程 - 输出倒逼输入
- 💻 读代码 - 看优秀开源项目
- 📊 看研报 - 了解行业最新动态
3. 打造个人品牌
- 社交媒体 - 推特积极发声,参与讨论
- GitHub - 保持活跃,每隔几天提交代码,让贡献图保持绿色
- 个人网站 - 英文博客,写技术文章
- 社区答疑 - 在社区帮助他人解答问题
4. 参与贡献
- 参加黑客松(Hackathon)
- 贡献 PR 到开源项目
- 参与线下活动(如香港 Consensus 大会)
💡 核心观点:在一个去信任的行业里,信任反而是最珍贵的东西。成为靠谱的人,会获得更多机会。
Web3 技术类职业机会
| 方向 | 说明 |
|---|---|
| 传统企业区块链岗位 | Fintech/银行的区块链技术专家、合约工程师 |
| Web3 大厂技术岗 | 交易所、大型投资项目 |
| Startup 技术岗 | 初创公司,机会多但需要甄别 |
| 创业 | 成为 Founder 或加入早期项目 |
| 验证者节点 | 运营节点服务,获得 delegation 收益 |
| 套利/Quant | 围绕资产交易,通过计算机方式获利 |
秋秋分享:远程工作经验
转型经历
- 曾在 Web2 互联网行业(在线教育),经历行业下坡
- 花了约 10 个月从零学习转行到 Web3
- 现在在 OpenBuild 做 DevRel
入行建议
- 不要幻想速成 - 需要时间积累
- 选好生态 - 直接 all in Solana
- 用”做事”代替”学东西” - 做项目、帮别人答疑、贡献开源
- Building in Public - 在推特、GitHub 记录学习过程
- 进社区 - 主动做事,被人认识
- 从实习/贡献开始 - 归零心态,从零做起
- 找到长板 - 结合自己擅长的领域
- 协作能力 - Web3 很讲究协作,决定你的上限
💡 英语很重要:Web3 是 global 生态,英语能力决定机会上限
第二部分:区块链技术基础
分布式系统核心问题
CAP 定理(三选二)
- C - 一致性 (Consistency) - 所有节点同一时间显示相同数据
- A - 可用性 (Availability) - 部分节点崩溃,系统仍可工作
- P - 分区容错性 (Partition Tolerance) - 网络分区时仍能工作
| 系统类型 | 选择 |
|---|---|
| 银行系统 | C + P |
| 社交媒体 | A + P |
| 区块链 | 追求三者平衡 |
拜占庭将军问题
- 核心问题:在有叛徒(恶意节点)的情况下,如何达成共识?
- 解决方案:需要 3f + 1 个参与者来容忍 f 个叛徒
共识机制
PoW (Proof of Work) - 工作量证明
- 代表:比特币
- 原理:矿工通过大量计算找到特定哈希值
- 特点:
- 消耗大量电能
- 验证很快(几毫秒),计算很慢
- 安全假设:攻击成本 > 攻击收益
PoS (Proof of Stake) - 权益证明
- 代表:以太坊(2022年 The Merge 后)、Solana
- 原理:验证者质押代币,根据权益占比随机选择出块者
- 特点:
- 能源消耗低
- 验证者角色:以太坊叫 Proposer,Solana 叫 Leader
加密原语
1. 哈希函数
三个关键特性:
- 确定性 - 相同输入 → 相同输出
- 不可逆 - 无法从输出反推输入
- 雪崩效应 - 输入微小变化 → 输出完全不同
2. 数字签名(非对称加密)
- 公钥 ≈ 用户名(公开)
- 私钥 ≈ 密码(保密)
- Web2:密码存在数据库,数据库被黑则泄露
- Web3:开发者永远碰不到用户私钥,只需验证签名
3. 默克尔树 (Merkle Tree)
- 二叉树结构存储交易数据
- 优点:快速验证特定交易是否存在
- 原理:叶子节点存交易,父节点存子节点哈希,层层向上
区块链演变
比特币 → 以太坊 → Solana(数字黄金) (世界计算机) (去中心化资本市场)| 特性 | 比特币 | 以太坊 | Solana |
|---|---|---|---|
| 定位 | 点对点支付 | 通用计算平台 | 高性能应用链 |
| 共识 | PoW | PoS | PoS |
| TPS | ~7 | ~15 | ~5000+ |
| 确认时间 | ~10分钟 | ~12秒 | ~0.4秒 |
| 账户模型 | UTXO | Account | Account(无状态程序) |
| 执行模式 | - | 串行 | 并行 |
第三部分:Solana 编程模型
Solana 技术优势
- 确认速度快 - 约 0.4 秒
- 手续费低 - 远低于以太坊
- 并行执行 - 不涉及相同账户的交易可并行处理
- Proof of History - 历史证明,解决分布式时钟问题
核心概念
1. 账户 (Account)
💡 Solana 上一切都是账户,类似电脑文件系统”万物皆文件”
账户结构:
├── key - 账户地址(唯一标识)├── lamports - 余额(1 SOL = 10^9 lamports)├── data - 存储数据(可以是普通数据或可执行程序)├── executable - 是否可执行└── owner - 所有者(决定谁能修改数据)账户类型:
| 类型 | data 内容 | executable |
|---|---|---|
| 数据账户 | 普通数据 | false |
| 程序账户 | 可执行程序 | true |
权限规则:
- ✅ 任何人可读取账户信息
- ✅ 任何人可向账户充值
- ❌ 只有 owner 能修改数据和提取 SOL
2. 程序 (Program)
- 相当于以太坊的智能合约
- 主要用 Rust 编写
- 无状态 - 程序本身不存数据,数据存在账户中
- 通过指令与其他程序交互
💡 关键区别:以太坊合约存状态,Solana 程序管逻辑、账户存状态
3. 指令 (Instruction)
├── program_id - 要调用的程序地址├── keys[] - 需要的账户数组│ ├── pubkey│ ├── is_signer - 是否签名者│ └── is_writable - 是否可写└── data - 序列化的参数数据4. 交易 (Transaction)
├── signatures[] - 签名数组├── message│ ├── recent_blockhash - 最近区块哈希(防重放)│ ├── fee_payer - 手续费支付者│ └── instructions[] - 指令数组特性:
- 原子性 - 要么全部成功,要么全部失败
- 可包含多个指令,按顺序执行
- 第一个签名者是 fee payer
交易生命周期
用户操作 → APP → RPC Client → 验证者网络 → 执行程序 → 更新账户状态Token 系统
核心程序
| 程序 | 作用 |
|---|---|
| Token Program (SPL) | 定义 Token 规则:转账、铸造、销毁 |
| Associated Token Program | 为特定钱包+Token 生成唯一的余额账户 |
| Metadata Program | 存储元数据(图片、名称等) |
账户类型
Mint Account (铸币账户) ├── decimals - 小数位数 ├── supply - 总供应量 ├── mint_authority - 铸造权限 └── freeze_authority - 冻结权限 │ ▼Associated Token Account (关联代币账户) ├── mint - 对应的 Token ├── owner - 钱包地址 └── amount - 余额 │ ▼Metadata Account (元数据账户) ├── name ├── symbol ├── uri - 图片链接 └── ...NFT 特点
decimals = 0- 没有小数supply = 1- 只有一个- 元数据可高度自定义
💡 重要:创建 Token 不需要部署合约!只需调用链上原生程序,通过 RPC 请求即可创建。
学习资源
推荐阅读
- 📄 比特币白皮书
- 📄 以太坊白皮书
- 📄 Solana 官方文档
- 📖 Rust 语言圣经 - Rust 基础学习
开发入门
- Solana Cookbook - YouTube/哔哩哔哩教程
- GitHub 搜索 Solana - 按 Star 排序看优质项目
- Anchor - 合约开发框架,对新手友好
- Pinocchio - 更轻量的底层库(进阶)
求职资源
- jobs.solana.com - Solana 官方职位
- Bootcamp 毕业生可获得内推机会
核心 Takeaways
职业发展
- 英语比技术更重要(对国际化机会)
- 选定一个生态深耕
- 打造个人品牌,Building in Public
- 信任是最珍贵的资产
技术基础
- 区块链 = 分布式系统 + 共识机制 + 加密原语
- Solana 核心理念:Program 管逻辑,Account 存状态
- 并行执行:不涉及相同账户的交易可并行
- Token 无需部署合约:调用原生程序即可创建
下节课预告
- 时间:周四
- 讲师:潘毅老师
- 内容:Token 详解,动手实践
Solana Bootcamp 第一次课课程笔记
https://dean-blog.vercel.app/posts/solana-bootcamp-lesson-1/