Solana Mainnet 部署清单:上线前要验证什么

部署 Solana 应用到 mainnet 的完整清单。代码、基础设施、监控、让团队措手不及的事。

BoltTx Team··9 min read
solanamainnet部署生产清单

从 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:

  1. 过这清单。 老实。差距在哪?
  2. 测故障转移路径。 RPC 失败怎么办?次要失败怎么办?
  3. 文档化你 runbook。 未来的你会感谢。
  4. 部署前设监控、不是部署后。 你需要 baseline。
  5. 测部署过程本身。 Staging 上、真实条件下。
  6. 回滚计划就绪。 测过。

生产负载上试一下 BoltTx

BoltTx 是为生产部署造的:

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。系统性差距(或缺)告诉你。

最常见生产问题是什么? 拥堵下尾部延迟。测试里工作的事在峰值负载下崩。

延伸阅读

返回博客列表