用途
Alchemy Performance and Freshness Tuning 是一个用于调优 Alchemy 后端读取操作的技能。当某个集成变慢或存在浪费时,可用它来优化。核心目标是在保持链上下文、最终性、部分错误语义和产品新鲜度契约的前提下,改善延迟、完整性与成本表现。
主要能力
- 定义端点级延迟、完整性、新鲜度和成本 SLO,以及用户可见的降级状态。
- 按链、方法、负载/分页大小、缓存状态和并发度测量基线,记录百分位数而非单一平均值。
- 去除重复调用、限制分页、仅在文档语义匹配时选用当前批处理端点,并将并发限制在共享账户预算之下。
- 对不可变的区块范围数据缓存更久,对头部敏感数据缓存更短;缓存键包含链、方法、规范化参数、区块/最终性上下文和 schema 版本。
- 通过缓存传播部分失败和过期元数据,绝不把降级结果缓存为完整成功。
- 对拟议的负载包络进行负载测试,与基线对比,验证失效与回滚,然后带遥测和停止阈值上线。
使用方式
- 准备当前第一方 Alchemy 文档,覆盖所选产品、链、功能、客户端、认证方式、限制和生命周期。
- 明确产品、应用、安全、数据/隐私、预算、发布和运维负责人。
- 准备合成或经批准的非生产夹具、凭证金丝雀、明确成功标准和经过测试的回滚边界。
- 定义 SLO 并测量基线,记录百分位数。
- 设计缓存、批处理和并发方案,并定义部分/过期状态契约。
- 负载测试、对比基线、验证失效与回滚,再带遥测和停止阈值推广。
- 输出 SLO、分段基线、调用图、缓存/批处理/并发设计、部分/过期状态契约、负载结果、遥测、停止阈值和回滚回执。
适用场景
- 缓存代币元数据(按链和合约),同时在更短的产品批准新鲜度 SLO 下刷新头部敏感余额。
- 当更快的多链结果隐藏了某个网络的 partialErrors、从而违反完整性语义时,拒绝该结果。
- 需要验证冷缓存、热缓存、过期失效、多页响应、通过缓存的部分失败、负载回滚阈值等场景。
限制
- 性能取决于端点族、链、响应大小、分页、账户吞吐、区域、缓存状态和应用工作负载,不存在通用的延迟或批处理大小保证。
- 遥测可能包含密钥标识、钱包地址或请求元数据;只能记录经批准的低基数字段,绝不记录含凭证的 URL 或完整用户负载。
- 技能调用本身不授权网络访问、凭证、钱包地址、客户数据、计划变更、支出、密钥创建或轮换、webhook 变更、部署、重放、交易构造、签名、广播或删除。
- 增加支出或保留期需要明确批准。
- 不得通过丢弃失败的网络、页面或资产来优化,除非声明不完整性。
- 不得把最新数据当作不可变数据缓存;必须附加观察到的区块/最终性上下文。
- 如果优化使尾部延迟、错误率、新鲜度或计算使用超出阈值,必须回滚。
- 应将观察到的账户、应用、网络、索引器、链或提供方行为视为环境特定证据,而非通用保证。
- 执行前需重新核对带日期的 Alchemy 第一方来源。