分享百科

Custom Discriminators

该视频主要介绍了 Anchor 框架的最新版本 0.31,重点讲解了两个新特性:**自定义鉴别器 (Custom Discriminators)** 和 **惰性账户 (Lazy Accounts)**。 **核心内容/主要观点:** * Anchor 0.31 版本通过引入自定义鉴别器和惰性账户,旨在提升 Solana 程序的开发效率和运行性能。 * 自定义鉴别器允许开发者使用更短的鉴别器,从而减少交易数据的大小,提高链上效率。 * 惰性账户允许程序按需反序列化账户数据,避免不必要的计算开销,尤其适用于只读取部分字段或只读账户的场景。 **关键论据/关键信息:** * **自定义鉴别器:** * 默认的 8 字节鉴别器可能造成浪费,尤其是在指令数量较少的情况下。 * 可以使用 `discriminator` 宏来指定自定义长度的鉴别器(例如,1 字节)。 * 自定义鉴别器适用于指令、账户和事件。 * 自定义鉴别器可以显著减少指令数据的大小,提高链上效率。 * **惰性账户:** * 惰性账户是一种实验性的账户类型,用于按需反序列化账户数据。 * 使用 `LazyAccount` 结构体,并通过 `load` 和 `load_mut` 方法来访问账户数据。 * 惰性账户适用于只读取部分字段或只读账户的场景。 * 如果需要完全反序列化账户,惰性账户可能会增加额外的开销。 * 如果账户是可变的,惰性账户的优势会降低,甚至可能导致性能下降。 * **版本依赖:** * Anchor 0.31 推荐使用 Solana 版本 2.1。 * 需要使用 Anchor Version Manager (AVM) 来安装和管理 Anchor 版本。 * **其他改进:** * 栈内存改进,使用 init constraints 时栈的使用效率大幅提高。 * 自动 IDL 转换。 * 支持多种包管理器。 总而言之,该视频通过实际代码演示,详细介绍了 Anchor 0.31 的新特性,并分析了它们在不同场景下的适用性,为 Solana 开发者提供了有价值的参考。
8
0
0
2天前
登链社区