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