Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

ValidatorStack/solana-vigil

DevOps & Self-hosting

Read-only monitoring and host auditing for Linux Solana validators, covering VAT runway, BLS, duties and alerts.

241
40
Go
MIT
1 day old

What Vigil Does

Vigil is a single Go binary that runs on a Linux Solana validator server and reports on the things operators usually stitch together by hand: vote-account VAT runway, BLS registration state, delinquency, identity consistency, leader production, per-slot missed duties, and a read-only Linux host audit. It can export Prometheus metrics, send alerts to Slack, Discord, Telegram, PagerDuty or a generic webhook, and produce self-contained HTML/JSON reports.

The design is deliberately read-only. It never loads keys, signs transactions, restarts the validator, switches identities, or changes host settings, so it is aimed at operators who want observation and paging rather than automation. It targets mainnet-beta validator servers on Linux AMD64/ARM64, with testnet as a staging environment. Host-audit and per-slot duty results are only meaningful when Vigil runs on the actual validator being monitored.

Quickstart

On the validator server, install a release as root:

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

The installer verifies SHA-256 and, if cosign is present, the keyless Sigstore signature. You can also download the script first and review it before running it with --version v0.1.0; user-local installs use --prefix "$HOME/.local/bin". Then run guided setup and a one-shot check:

vigil init
vigil check --config vigil.json

init asks only for public addresses and RPC URLs, probes the local RPC (normally http://127.0.0.1:8899), and checks identity ownership and matching genesis hashes. For automation:

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

check returns 0 OK, 1 warning, 2 critical, 3 unknown. Finally start continuous monitoring and test alert delivery:

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

Without a configured destination, alerts go to the log. Webhook secrets are read from environment variables referenced in the config, not stored in JSON. For long-running hosts the README provides systemd units under deploy/ that run the watcher and exporter as a dedicated user.

Constraints and Limits

  • The host audit may need broader read permissions and tools such as ethtool, timedatectl or chronyc, and reports missing evidence as unknown.
  • The Prometheus exporter binds to loopback by default and should not be exposed directly to the internet.
  • The default VAT fee is 0.8 SOL per epoch and is configuration, not a protocol guarantee; verify it against current cluster rules.
  • This release does not parse Alpenglow block-footer certificate participation, normalize Firedancer's tile endpoint, track SFDP deadlines, or verify client upgrade binaries. plan-restart only returns an advisory leader-free window and never restarts anything.
  • RPC URLs may contain provider credentials; Vigil rejects URLs with embedded userinfo, but credentials managed via environment should still be protected by your own secret system.
  • Licensed MIT; Go 1.23+ or later is sufficient to build, with no third-party Go module dependencies.

HotRepo's Take

Vigil appeared on HotRepo's new-project list on 2026-11-10, with 132 stars gained and 22 forks gained during a roughly 3.5-hour observation window starting that afternoon; the single star snapshot that day recorded 132 stars. That is a short record, so it establishes early attention rather than a trend. What the material does support is a narrow, concrete scope: read-only validator operations with explicit safety boundaries, documented unknown-state handling, and deployable Prometheus and systemd assets, which makes it most relevant to operators already running Solana validator servers who need paging and host drift checks rather than another dashboard.

Project source and documentation

Written by AI from the project's README, updated . The project's own docs are the source of truth.