摘要
运行 Solana 验证者意味着操作一个参与共识的投票节点,这需要仔细的硬件规划、密钥管理以及用于监控和运维的可靠 RPC 连接。本指南将介绍实际准备步骤、运行自己的验证者与委托之间的权衡,以及节点上线后如何保持可观测性。
你将找到一份以决策为导向的检查清单、硬件和网络要求、密钥生成和投票账户设置、监控信号以及常见故障模式。在托管 RPC 或专用节点有帮助的地方,我们会指向 OnFinality 的 Solana 基础设施,作为你设置中 RPC 和可观测性方面的选项。
你应该运行 Solana 验证者还是委托?
在购买硬件或生成密钥之前,先决定运行验证者是否适合你的团队。Solana 验证者是一个帮助确认区块并赚取奖励的投票节点,但它也带来真实的运营成本:硬件、带宽、密钥托管和持续监控。如果你的目标只是赚取质押奖励,将 SOL 委托给现有验证者要简单得多。如果你的目标是为网络去中心化做出贡献、控制自己的投票账户或建立基础设施专业知识,那么运行自己的验证者是合理的。
使用这个快速比较来构建决策。
| 目标 | 运行自己的验证者 | 委托给现有验证者 |
|---|---|---|
| 赚取质押奖励 | 可能,但被运营成本抵消 | 是,设置最少 |
| 控制投票账户和佣金 | 完全控制 | 无 |
| 为去中心化做贡献 | 直接贡献 | 间接 |
| 运营负担 | 高:硬件、监控、升级 | 低 |
| 密钥托管风险 | 你管理身份和投票密钥 | 你只保留质押权限 |
| 最适合 | 基础设施团队、长期运营者 | 大多数 SOL 持有者 |
如果你决定运行验证者,本指南的其余部分涵盖准备、设置以及你将依赖的 RPC 和监控层。如果你只需要为应用提供可靠的 Solana RPC 访问而不是验证者,请参阅 Solana RPC 端点 和 RPC 定价。
Solana 验证者实际做什么
Solana 验证者通过验证交易并生成或投票区块来参与网络。两个密钥对很重要:
- 身份密钥对 在网络中标识你的节点,用于 gossip 和 turbine 通信。
- 投票账户密钥对 记录你的投票并决定奖励和佣金的去向。
验证者还需要投票账户的 提取权限,如果你接受委托质押,还需要 质押权限。将这些角色分开是一种安全最佳实践:身份密钥保留在验证者主机上,而投票和提取权限可以保存在更受保护的存储中。
Solana 的吞吐量很高,因此验证者必须跟上区块生产和投票。这就是为什么硬件、网络延迟和磁盘性能比典型的 RPC 消费者更重要。
需要规划的硬件和网络要求
确切的最低要求随着网络发展而变化,因此将下面的数字视为规划指导,并在购买前根据官方 Solana 文档确认当前建议。
| 资源 | 规划指导 | 为什么重要 |
|---|---|---|
| CPU | 现代多核服务器 CPU | 投票和交易处理对 CPU 敏感 |
| RAM | 充足的内存余量 | 账户和账本操作内存密集 |
| 磁盘 | 快速 NVMe SSD,有增长空间 | 账本和账户数据持续增长 |
| 网络 | 低延迟、高带宽链路 | Gossip 和 turbine 流量对延迟敏感 |
| 电源和冷却 | 尽可能冗余 | 停机降低奖励和声誉 |
| 位置 | 靠近网络对等点 | 更低延迟提高投票成功率 |
两个运营注意事项与原始规格同样重要。首先,避免在主机上过度分配无关工作负载。其次,规划账本增长和快照,以免在升级窗口期间磁盘耗尽。
分步指南:准备验证者主机
以下步骤描述了设置的形态。始终遵循当前官方 Solana 验证者文档以获取确切的命令和标志,因为 CLI 选项在版本之间会变化。
- 配置专用主机。 选择满足或超过当前 CPU、RAM 和 NVMe 指导的机器,并具有稳定的互联网网络路径。
- 安装 Solana CLI 工具套件。 使用官方安装程序并固定已知版本,以便升级是有意为之而非意外。
- 创建身份密钥对。 在验证者主机上生成并安全备份。丢失身份密钥可能影响你节点的地位。
- 创建投票账户。 生成投票账户密钥对,然后在链上创建投票账户并为其注入所需的免租金余额。
- 配置验证者启动命令。 将节点指向可信的 RPC 端点以获取集群信息,设置预期的创世哈希,并在快速存储上选择账本路径。
- 启动并验证。 使用 CLI 状态命令和监控堆栈确认节点正在追赶,然后投票。
- 设置监控和警报。 跟踪投票积分、槽高度、拖欠状态、磁盘使用和对等点数量。
一个简化的启动命令如下所示。将其视为模板,并将路径和密钥替换为你自己的值:
solana-validator \
--identity ~/validator-keypair.json \
--vote-account ~/vote-account-keypair.json \
--ledger ~/ledger \
--rpc-port 8899 \
--entrypoint entrypoint.mainnet-beta.solana.com:8001 \
--expected-genesis-hash <GENESIS_HASH> \
--known-validator <KNOWN_VALIDATOR_IDENTITY> \
--limit-ledger-size
不要从博客文章复制入口点或已知验证者身份而不对照官方来源验证。它们会变化,错误的值可能会阻止你的节点正确加入集群。
RPC 在验证者运维中的位置
即使验证者主机也需要可靠的 RPC 访问。你将使用 RPC 进行集群状态检查、账户查找、测试期间交易提交和监控脚本。运行完整验证者并不会自动为你的工具提供干净、低延迟的 RPC 端点,并且将繁重的 RPC 查询与验证者职责混合可能会争夺资源。
这就是托管 RPC 或专用节点可以提供帮助的地方。OnFinality 提供 Solana RPC API 访问和专用节点基础设施,因此你可以将监控和工具流量与验证者主机分开。你可以查看 Solana RPC 端点 和 专用节点 选项,并在 RPC 定价 页面比较成本。
针对 Solana RPC 端点的简单健康检查如下所示:
curl https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
在主网之前的开发和测试中,你可以使用 Solana Devnet RPC 端点来演练脚本,而无需触及主网质押。
告诉你出问题的监控信号
一旦你的验证者上线,监控就是保持其健康的关键。跟踪这些信号并在变化时发出警报,而不是等待仪表板审查。
| 信号 | 表明什么 | 建议响应 |
|---|---|---|
| 投票积分停止增加 | 节点可能拖欠或未投票 | 检查日志、对等点和时钟同步 |
| 槽高度落后 | 节点落后于集群 | 检查磁盘、CPU 和网络 |
| 对等点数量下降 | Gossip 或网络问题 | 验证防火墙和连接性 |
| 磁盘使用快速攀升 | 账本增长或快照问题 | 修剪账本,扩展存储 |
| 重复重启 | 配置或资源问题 | 检查启动标志和主机负载 |
| 脚本中的 RPC 错误 | 端点或速率问题 | 切换到托管端点 |
一个小型监控探针可以像定期 RPC 调用一样简单,记录当前槽并在停止推进时发出警报:
async function checkSlot(rpcUrl) {
const res = await fetch(rpcUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "getSlot" }),
});
const { result } = await res.json();
console.log("current slot:", result);
return result;
}
定期运行此脚本并与已知良好的端点进行比较。如果你的验证者对槽的视图与托管 RPC 端点不同,你就有了有用的早期预警。
常见设置陷阱及如何避免
大多数验证者问题都源于少数可避免的错误。
- 低估磁盘增长。 账本和账户数据稳步增长。配置比你认为需要的更多 NVMe 并启用账本限制。
- 与其他工作负载共享主机。 RPC 查询、构建或无关服务可能会耗尽验证者的 CPU 和 I/O。
- 丢失密钥备份。 身份和投票密钥必须安全离线备份。将它们视为生产机密。
- 忽略时钟同步。 时间漂移可能导致投票失败。保持主机上的 NTP 健康。
- 跳过升级演练。 首先在非生产主机或 devnet 上测试 CLI 和验证者升级。
- 使用不可靠的 RPC 端点进行监控。 如果你的监控依赖于不稳定的端点,你会得到误报。托管端点可以减少这种噪音。
关键要点
- 首先决定你需要运行验证者还是简单地委托;运行验证者是一项基础设施承诺,而不仅仅是质押操作。
- 围绕 CPU、RAM、快速 NVMe 存储和低延迟网络规划硬件,并根据官方 Solana 文档确认当前最低要求。
- 分离身份、投票和提取权限,并安全备份密钥。
- 尽可能将 RPC 和监控流量保持在验证者主机之外;托管 Solana RPC 或专用节点可以承担该负载。
- 监控投票积分、槽高度、对等点数量和磁盘使用,并在变化时发出警报。
- 在触及主网之前,在 devnet 或暂存主机上演练升级。
常见问题
我需要验证者才能使用 Solana RPC 吗? 不。RPC 访问和验证者操作是分开的。你可以为应用和工具使用托管 Solana RPC 端点,而无需运行验证者。
我可以同时运行验证者和使用托管 RPC 吗? 可以,而且这通常是一个好模式。让验证者专注于共识职责,并通过托管端点(如 OnFinality 的 Solana RPC 或专用节点)路由监控、工具和应用流量。
启动验证者需要多少 SOL? 你需要足够的 SOL 来为投票账户的免租金余额提供资金,加上质押以具有竞争力。确切金额和经济性会变化,因此请查看当前官方指导和质押仪表板。
最大的运营风险是什么? 停机和密钥管理不善。停止投票的验证者会失去奖励和声誉,丢失的密钥可能难以或无法恢复。
我可以在主网之前在哪里测试? 使用 Solana Devnet RPC 端点来演练脚本和升级。当你准备好生产时,查看 支持的 RPC 网络 和 RPC 定价。
下一步
如果你决定运行验证者,从硬件规划和密钥生成开始,然后在上线前构建监控。如果你真正的需求是用于应用或可观测性的可靠 RPC,请探索 OnFinality 的 Solana RPC 端点、专用节点 选项以及 提供商选择指南,以使基础设施与你的工作负载匹配。