Solandy

@Solandy

Solana 开发者,视频创作者

注册于 2025-01-21
Solana新系统程序指令: 创建预存 SOL 账户

**视频 AI 总结**:该视频介绍了 Solana 系统程序新增的 `create account allow pre-fund` 指令,用于高效创建已预存 SOL 的账户。传统 `create account` 指令要求账户余额为零,否则会失败,而新指令允许在账户已有部分 SOL 时仍能一次性创建(分配、分配、可选转账),减少跨程序调用(CPI)次数,降低计算开销。视频详细对比了新旧指令的用法、账户排序差异,并警示了误用导致钱包锁定的风险。 **主要内容**: - 传统 `create account` 指令要求账户无余额,否则需手动分配、分配、转账三步,效率低且 CPI 开销大。 - 新指令 `create account allow pre-fund` 将三步合并为一步,可选参数 `lamports` 和 `payer`,适用于已预存 SOL 的 PDA 或固定地址账户。 - 新指令账户顺序变化:第一参数是新账户(非 payer),错误排序会意外将 payer 分配给程序,导致钱包锁定。 - 使用建议:对于 PDA 账户默认使用新指令;对于有私钥的账户需谨慎,确保正确调用构建器。 - 新指令已在主网激活,属于优化而非破坏性变更,保留旧指令兼容性。

13 0 0 2026-07-01
Solana  Web3js V3  预览

视频介绍了 Solana Web3.js 版本 3 发行候选版的更新。作者首先回顾了 Solana 开发工具从 Web3.js v1 到 v2(Solana Kit)再到 v3 的演变,指出 v3 将 Kit 的高效内部架构与用户熟悉的 v1 接口结合,以解决社区不愿迁移的问题。随后,作者通过实际代码演示展示了 v3 的主要变化,如将 `pubKey` 改为 `address`、增加 `await` 关键字、使用 `uint8Array` 代替 `Buffer`、支持 BigInt 等。作者还对比了 v1 和 v3 的性能,发现 v3 在打包大小(644KB 对 740KB)和执行速度(约 6ms 对 30ms)上均有显著提升。最后,作者认为 v3 是值得升级的版本,且与 Kit 更加兼容。 关键信息:Solana Web3.js v3 发布候选版;迁移注意点(pubKey→address、async、uint8Array、BigInt);性能提升(更小包、更快执行);与 Kit 内部架构兼容。

151 0 0 2026-06-23
Solana 开发 Agent  Skills

视频演示了在Claude code中使用Solana agent skills前后AI辅助编程的差异。作者首先测试无技能时Claude的表现,随后安装Solana Dev skills并与MCP服务器集成,使得AI能遵循最佳实践,如使用Pinocchio框架开发CU高效程序、用Mollusk进行测试、通过Shank生成IDL并部署到Devnet。视频还对比了有无技能时对Solana rent概念的解答质量,并强调了agent skills对于提升代码质量和安全性的重要性。最后指出技能有时需手动触发,且可自定义技能以符合个人偏好。 关键信息:Solana rent概念及免租模式;CU高效事件发射程序开发;Pinocchio vs Solana SDK对比;Mollusk集成测试;Shank到Kodama IDL生成;Devnet部署与验证;Agent skills的安全检查清单。

168 0 0 2026-06-22
Claude Code 真比手写 Solana 程序更好么?

视频 AI 总结: 作者挑战 Claude Code 编写了一个 Solana Coin翻转程序,但程序存在多个严重安全漏洞。通过分析随机性实现缺陷(使用 byte 模 100 导致概率偏向玩家)和交易原子性漏洞(下注和支付在同一事务中,可选择性中止),作者成功利用这些漏洞缓慢抽干了合约资金池。即使 Claude 修复了随机偏差,作者仍通过交易级攻击(前置一个条件转移指令)继续获利。视频强调 AI 生成的代码不能盲信,必须经过人工安全审计。 关键信息: - Claude 编写的Coin翻转程序存在随机性偏差:使用 1 字节值模 100(最大值 255),导致玩家胜率约 57% 而非设计的 49%。 - 业务逻辑错误:资金池检查规则(必须持有 2 倍赌注才能支付)实际上无法防止持续小额定损。 - 交易原子性漏洞:下注和支付在同一交易中完成,攻击者可附加一个转账指令保护自己——若获胜则成功,若失败则整笔交易回退,只需承担手续费。 - Claude 提出的 commit-reveal 方案(将下注和结果判定分两笔交易)仍然存在可预测 slot 的风险,作者认为仍可被黑客利用。 - 核心教训:LLM 辅助编程时仍需开发者自行审查安全逻辑,不能完全信任 AI 的“安全声明”。

336 0 0 2026-06-11
Solana教程: Borsh vs Bincode vs Wincode

视频 AI 总结: 本视频深入对比了 Solana 程序中三种 Rust 序列化库:Borsh、Bincode 和 WinCode。作者通过构建原生 Solana 程序,演示了各库的序列化/反序列化流程,并测量了计算单元消耗。Bincode 因维护已停止而被跳过,重点聚焦于 Borsh 与 WinCode 的对比。结果显示 WinCode 更高效,尤其在支持零拷贝(zero-copy)时能大幅降低计算开销(例如从 1339 CU 降至 380 CU),但零拷贝仅适用于对齐良好的固定大小类型(如 u64、地址、数组),不适用于字符串、向量或 Option 等变长类型。WinCode 默认使用 8 字节长度前缀(而非 Borsh 的 4 字节),需要特别注意。最终结论:推荐使用 WinCode 替代 Borsh 以获得更好的性能。

316 0 0 2026-06-07
Solana教程 批量代币指令

视频 AI 总结: 该视频深入解析了 Solana Token Program 的批量指令(batch instruction)功能。首先通过对比测试说明,在顶层直接执行多条指令时批量反而消耗更多计算单元,但在 CPI(跨程序调用)场景下,批量指令能显著节省计算,因为 CPI 本身开销大。视频遍历了 Token Program 几乎所有可批量指令(如初始化铸币、铸造、转账、冻结、解冻、批准、撤销、销毁、关闭账户等),并排除了嵌套批量。同时实测了批量容量限制:主要受交易大小和单指令最多 255 个账户引用约束,例如 revoke 最多可批量 127 条,transfer 约 73 条。最后演示了如何解码批量指令内部的子指令。视频作者认为该功能计算优化幅度有限,且增加了解析复杂度,但既然已上线,开发者应利用它以节省 CPI 成本。 关键信息: - 批量指令在顶层调用时反而浪费计算,仅在 CPI 中才有优势(单次 CPI 开销大,批量合并为一次 CPI 可省 600+ 计算单元)。 - 几乎所有 Token Program 的常用指令都可批量(除 batch 指令自身),包括初始化铸币/账户、铸造、转账、销毁、冻结、解冻、批准、撤销、关闭账户、提取超额 lamports 等。 - 批量指令的数量限制:受交易大小(约 1232 字节)和单指令最大账户数(255)影响。例如 revoke(2 账户)最多 127 条;transfer(3 账户)最多约 73 条;burn(3 账户)约 60 条。 - 批量后的解码比较复杂,需要逐层解析顶层 batch 指令内的子指令。 - 该功能已在主网(epoch 971)生效,但实际收益不大,主要适合需要频繁 CPI 调用 Token Program 的程序。 Chapters: 0:00 intro 1:10 efficiency 9:04 what can we batch 24:57 biggest batch possible 37:12 parseBatchInstruction 41:29 conclusion

523 0 0 2026-05-26
Solana 开发 Day7: 如何提示(测试、AI 辅助开发...)

视频 AI 总结:本视频是 Solana 开发入门系列的最后一天,回顾了前六天内容(CLI、交易、Anchor 程序、PDA、代币等),重点介绍了本地测试(Solana test validator 和 Surfpool)、AI 辅助开发(vibe coding)以及 compute budget 等进阶主题。推荐官方文档、视频频道和 Solana Stack Exchange 作为后续学习资源,并鼓励通过实践项目和参与社区继续提升技能。 关键信息: 1. 本地测试可通过 Solana test validator 或 Surfpool 实现,后者更接近主网环境。 2. AI 是辅助工具,能提升编码效率,但开发者仍需理解底层原理并承担架构责任。 3. 推荐学习资源:docs.solana.com(官方文档)、视频频道(300+视频)、Solana Stack Exchange(问答社区)。 4. compute budget 和 compute unit 是优化交易的重要概念,需进一步了解。 5. 建议通过构建小项目、贡献开源项目、参与黑客松等方式积累实战经验。

119 0 0 2026-05-26
Solana 开发 Day6 : 序列化与反序列化

视频 AI 总结: 本视频讲解在 Solana 开发中手动处理数据序列化与反序列化的必要性。通过使用 Pinocchio 框架(而非 Anchor),演示如何定义账户结构、手动编码/解码指令数据与账户存储,并对比了手动操作、Borsch 库以及指针转换等不同实现方式。强调开发人员需自行决定数据字节的排列顺序和含义,从而更深入理解账户底层表示。 关键信息: - 序列化/反序列化是 Solana 开发的核心技能,开发者需自行定义账户数据及指令数据的字节布局。 - Pinocchio 相比 Solana SDK 更高效,但需要手动处理入口点、账户验证和数据打包。 - 常见序列化库如 Borsch 存在局限性(如对地址类型支持不佳),手动实现或使用更高效方案更受推荐。 - 客户端可通过相同定义的 codec 对账户数据进行反序列化,以获取有意义的字段值。 - 视频提供了手动序列化、使用 Borsch、以及通过 unsafe 指针直接操作内存三种实现方式,并对比其优缺点。

108 0 0 2026-05-25
Solana 开发 Day5 : 代币

视频 AI 总结: 本视频是 Solana 开发入门系列第五天,核心讲解 Solana 上的代币机制。代币在 Solana 上通过代币程序(Token Program)管理,无需部署自定义合约即可创建。代币分为两种标准:Token Keg(传统)和 Token Extensions(新功能)。视频演示了通过 CLI 和 TypeScript 编程方式创建铸币账户(mint)、关联代币账户(ATA)、铸造和转移代币的完整流程,并强调了账户所有权、PDA 和序列化等关键概念。 **关键信息:** 1. Solana 代币通过 Token Program(Token Keg 或 Token Extensions)管理,无需自行编写合约。 2. 代币核心账户:铸币账户(mint)定义代币类型,代币账户(token account)存储余额,推荐使用关联代币账户(ATA)。 3. 创建代币需先通过系统程序创建账户,再调用初始化铸币指令;铸造和转移需要正确的签名和账户关系。 4. ATA 是 PDA,由关联代币程序通过种子(钱包、代币程序、铸币地址)派生。 5. 代币具有小数位(默认为9),转移即更改授权人,任何持有授权者均可销毁代币(burn)。 6. 实际编程中需注意区分 Token Keg 与 Token Extensions 的导入路径,避免账户不匹配错误。

109 0 0 2026-05-25
一钥签万物:Solana Keychain 统一签名接口框架

视频 AI 总结: 1. 视频核心内容: 本视频介绍 Solana Keychain——一个统一签名接口的框架,支持多种签名后端(本地密钥、Turnkey、Privy 等)。作者通过实际编码,演示了只需替换少量配置即可轻松切换签名方式,大幅简化开发者对不同 SDK 的集成工作,并最终成功配置了本地 Vault 签名。 2. 关键信息: - Solana Keychain 提供统一的 Solana 签名接口,底层支持多种实现(内存、Turnkey、Privy、Vault 等)。 - 使用 Keychain Signer 可屏蔽各 SDK 差异,开发者只需传入对应凭据(如 API 密钥、钱包 ID),无需深入理解各服务细节。 - 本地密钥对、Turnkey、Privy 三种签名的代码结构几乎一致,切换仅需修改 backEnd 和参数。 - Vault 配置较复杂(需本地或集群部署、TLS 证书、Token等),但最终同样可通过 Keychain 无缝集成。 - 该框架提高了开发效率与密钥管理灵活性,适合需要多签名服务或升级安全性的 Solana 项目。

94 0 0 2026-05-21