从 devnet 上 mainnet,是让很多本不该出问题的团队翻车的那一步。Devnet 宽容;mainnet 不。这一步会把所有开发期间没注意到的问题全暴露出来——生产负载、真钱、测试流量从没碰到过的边缘情况。
这篇是 Solana 应用 mainnet 部署清单。代码、基础设施、监控、安全、把"生产就绪"和"devnet 上能跑"分开的运维。
部署前
部署前清单:
作者外的人代码审。 尤其程序代码。Bug 在 mainnet 抓用户的钱。
审计(认真程序)。 第三方审计。处理用户资金的任何东西都值得。
Devnet 端到端测。 真流程从开始到结束。不只是单元测。
Devnet 负载测。 应力测读模式和提交模式。Devnet 行为宽容,但你仍能发现问题。
安全审。 具体:权限管理、签名安全、key 存储。
文档。 你的代码做什么?怎么 debug?未来的你会感谢。
回滚计划。 部署后出问题你怎么办?
基础设施清单
生产级 RPC。 公共 mainnet RPC 不够。挑一个有文档化 SLA 和容量保证的服务商。
读 RPC 和写 RPC。 经常是不同服务商;不同优化。
故障转移 RPC。 主挂了怎么办?
连接池配。 Keep-alive 开;池大小给峰值并发。
环境变量配。 没硬编码 URL 或 key。
Secret 管理。 生产 key 在 vault、不在 repo。高价值签名硬件钱包或 KMS。
日志基础设施。 日志去哪?可搜索?保留多久?
指标基础设施。 P95 延迟、错误率、业务指标。部署前仪表板就绪。
告警。 什么条件叫醒人?
每笔签名级别遥测。 每提交交易都跟踪结果。
代码级清单
客户端代码:
生产发送 skipPreflight: true。 显式管模拟。
maxRetries: 0。 自己用新 blockhash 管重试。
显式 compute budget。 限和价两个。
画像感知的 tip 策略。 基于预期值变化。
发送后确认。 别信签名返回意味着上链。
每发送做每笔签名级别遥测。 包括 simulate 失败的。
每个 RPC 调用错误处理。 网络错误、限流、超时。
应用层幂等。 重试别重复执行。
日终止开关。 损失限、敞口限、手动停。
优雅关闭。 排空在飞请求;不崩。
给 Anchor 程序
部署程序:
多签程序升级权限。 别从单 key 部署生产程序。用 Squads 或类似。
部署前审计。 第三方。尤其处理资金的程序。
真测试覆盖。 不只是 happy path。
权限管理文档。 谁能用什么 key 做什么?
升级路径文档。 你需要升级时发生什么?
真 IDL 分发。 客户端要 IDL;他们怎么拿对的版本?
账户迁移计划。 账户布局变,现有账户怎么办?
运维就绪
Runbook。 出现各种故障时该怎么处理?常见场景写下来文档化。
On-call 轮换。 生产问题发生时有人被叫。
事故响应过程。 严重等级、升级、沟通。
状态页或同等。 用户知道有问题。
客户支持渠道。 用户怎么联系你?
关键数据备份。 链下数据(分析、用户元数据)备份。
灾难恢复计划。 测过的、不只是文档。
交易特定清单
应用做任何交易:
三明治被夹敞口测量内置。 对比 AMM 数学预期 vs 实际 fill。持续监控。
Anti-MEV RPC 路由。 只要是有方向性的交易,这块就没得让步,必须有。
仓位规模限。 每笔和每天。
损失限。 日和单仓。
暂停功能。 不重部能停交易吗?
P&L 归因。 每笔交易,知道什么是利润、什么是费、什么是被夹税、什么是滑点。
回测基础设施。 策略变前回测。
纸上交易模式。 生产条件下不带真钱测新策略。
安全清单
热钱包冷钱包分离。 热钱包最少资金。冷钱包给金库。
生产 key 用硬件钱包。 或 KMS 后端签名。
Key 轮换程序。 何时怎么轮 key?
共享环境里环境变量不放 key。 用合适 secret 管理。
只 HTTPS。 生产无 HTTP。
自己服务限流。 别被 DDoS。
到处输入验证。 别信用户输入。
敏感操作审计日志。 谁何时做了什么?
监控清单
延迟监控。 发送 P50/P95/P99 确认延迟。读查询延迟。随时间趋势。
错误率监控。 失败发送、失败读、交易失败。异常告警。
成本监控。 总费、tip、不成功发送的成本。趋势线。
业务指标。 P&L、交易量、用户活动(dApp)。成功是什么样?
三明治被夹敞口监控(交易)。 持续、不一次性。
资源监控。 你服务器 CPU、内存、网络。
Solana 网络监控。 Slot 高度、网络健康、validator 状态。
部署日
低流量时段部署。 出错恢复更容易。
回滚就绪。 测过回滚路径。
监控仪表板开着。 盯部署。
安静 on-call。 别周五下午部署。
沟通计划。 出事告诉谁?
能就渐进推。 Canary 发布胜过大爆炸部署。
部署后
24-48 小时盯。 问题有时只在有意义流量后才出现。
对比指标 baseline。 性能是你期望的吗?
客户反馈。 用户在说什么?
渐进应力测。 别立刻推到峰值。
从问题学。 让你惊讶的事,给下次文档化。
这周可以做什么
准备 mainnet:
- 过这清单。 老实。差距在哪?
- 测故障转移路径。 RPC 失败怎么办?次要失败怎么办?
- 文档化你 runbook。 未来的你会感谢。
- 部署前设监控、不是部署后。 你需要 baseline。
- 测部署过程本身。 Staging 上、真实条件下。
- 回滚计划就绪。 测过。
生产负载上试一下 BoltTx
BoltTx 是为生产部署造的:
- 亚秒级确认作为设计底线、P95 表现公开可查
- 原生 Anti-MEV 路由默认
- 每笔签名级别投递遥测给生产 debug
- 专属 SWQoS + 优先级连接,所有套餐都包含——拥堵下也能保证上链
- Tip-based 计费对齐成本和成功操作
import { Connection } from "@solana/web3.js";
const connection = new Connection(
"https://bolttx.io/?api-key=YOUR_API_KEY",
"processed"
);
免费档注册。承诺前用生产类负载测免费档。
常见问题
该周五部署 mainnet 吗? 不。周二或周三早上让你工作时间修事。
RPC 服务商最少 SLA 该接受什么? 生产,找文档化 uptime(99.9%+ 合理)、文档化延迟承诺、清晰事故响应。
该自跑 validator 吗? 大多数团队不要。用托管 RPC。自托管运维贵、没有相称的收益。
怎么知道 Anti-MEV 保护在工作? 对比 AMM 数学预期输出和实际 fill。系统性差距(或缺)告诉你。
最常见生产问题是什么? 拥堵下尾部延迟。测试里工作的事在峰值负载下崩。