搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

ValidatorStack/solana-vigil

运维与部署

面向 Linux Solana 验证节点的只读监控与主机审计工具,覆盖 VAT 余额、BLS、出块与告警。

241
40
Go
MIT
创建于 1 天前

项目介绍

Vigil 是一个运行在 Linux Solana 验证节点上的只读运维工具,把常被分散处理的检查集中到单个 Go 二进制里:投票账户 VAT 余额与可支撑轮数、BLS 注册状态、延迟与身份一致性、出块与漏块、Prometheus 指标、告警,以及只读的 Linux 主机审计。它不加载私钥、不签名、不发交易、不重启验证节点、不切换身份,也不修改主机设置,定位是观测和告警,而不是自动化运维。

适用对象是运行 Solana mainnet-beta 验证节点(AMD64/ARM64)的运维者;testnet 可作为上线前的演练环境。主机审计和逐 slot 出块检查只有 Vigil 直接运行在被监控的节点上才有意义,仅连接 RPC 的机器无法提供同样的证据。

快速使用

在验证节点上以 root 安装:

curl -fsSL https://raw.githubusercontent.com/ValidatorStack/solana-vigil/main/install.sh | sudo bash

安装脚本会校验 SHA-256;如果系统已安装 cosign,还会校验 Sigstore 无密钥签名。也可以先下载脚本查看,再用 --version v0.1.0 执行;安装到用户目录时使用 --prefix "$HOME/.local/bin"。随后运行引导配置和一次性检查:

vigil init
vigil check --config vigil.json

init 只询问公开地址和 RPC 地址,会探测本地 RPC(通常是 http://127.0.0.1:8899),并核对身份是否拥有投票账户、创世哈希是否一致。自动化场景可用:

vigil init \
  --non-interactive \
  --vote-account YOUR_PUBLIC_VOTE_ACCOUNT \
  --local-rpc http://127.0.0.1:8899 \
  --output vigil.json

check 的退出码为 0 正常、1 警告、2 严重、3 未知。最后启动持续监控并测试告警投递:

vigil watch --config vigil.json
vigil test-alert --config vigil.json

未配置告警目标时,告警写入日志。Webhook 等密钥通过配置里的环境变量名读取,不写进 JSON。长期运行时,仓库的 deploy/ 目录提供 systemd 单元,以专用用户运行 watcher 和 exporter。

使用约束

  • 主机审计和逐 slot 出块检查要求 Vigil 运行在真实被监控的节点上;审计可能需要更大的读权限以及 ethtool、timedatectl、chronyc 等工具,缺失的证据会标记为 unknown。
  • Prometheus exporter 默认只监听回环地址,不应直接暴露到公网。
  • 默认 VAT 费用为每 epoch 0.8 SOL,这是配置值而非协议保证,需要按当前集群规则核实。
  • 当前版本不解析 Alpenglow 区块尾部证书参与情况,不归一化 Firedancer 的 tile endpoint,不跟踪 SFDP 版本期限,也不校验客户端升级二进制;plan-restart 只给出建议的空闲出块窗口,不执行任何重启。
  • RPC URL 可能包含服务商凭据;Vigil 拒绝带内嵌 userinfo 的 URL,但通过环境变量管理的凭据仍需由你自己的密钥系统保护。
  • 许可证为 MIT;构建需要 Go 1.23 或更新版本,没有第三方 Go 模块依赖。

HotRepo 点评

Vigil 在 2026-11-10 进入 HotRepo 新项目榜,当天下午开始的约 3.5 小时窗口内新增 132 Star、22 Fork;当天的 Star 快照记录为 132。记录时间很短,只能说明早期关注度,不足以判断趋势。材料能支撑的是它范围明确:只读的验证节点运维、清晰的边界、对未知状态的显式处理,以及可直接部署的 Prometheus 和 systemd 配置。它更适合已经在运行 Solana 验证节点、需要告警和主机漂移检查的运维者,而不是又一个仪表盘。

项目源码与说明

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。