Releasing soon Vigo is in alpha and closing in on its first stable release. Expect breaking changes between releases until then — we're looking for testing partners with meaningful fleets across diverse architectures. Learn more →

title: swarm_seeds

swarm_seeds

Reports the seed files this envoy makes available for envoy-originated swarm distribution. Scans /var/lib/vigo/swarm/seed/ for files that have a matching .swarm JSON manifest, computes each file's SHA-256, and symlinks it into the blob cache so the peer server can serve it. The server uses this to know which envoys can originate which blobs.

Files without a matching manifest, or with an unreadable/invalid one, are reported separately under broken_seeds so the operator can see a misconfigured seed instead of it silently never distributing. Revoked seeds (present in the graveyard and not re-distributed since) are skipped. Returns null when the seed directory doesn't exist or holds nothing reportable.

Fields

The payload carries whichever of these is non-empty (there is no updated_at):

Field Type Description
seeds object[] One entry per distributable seed. Omitted when empty. See below.
broken_seeds object[] One entry per seed with a missing/invalid .swarm manifest. Omitted when empty. Each: filename, error.

seeds[]

Field Type Description
sha256 string SHA-256 of the seed file (the blob id peers fetch by). Cached by (filename, size, mtime) so multi-GiB files aren't rehashed every cycle.
label string The seed's filename.
size int File size in bytes.
target string Hostname/pattern the seed is targeted at, from the .swarm manifest.
retention string Retention policy from the manifest.

When the trait is absent

null when /var/lib/vigo/swarm/seed/ doesn't exist, can't be read, or every file was either revoked or has no manifest and there were no broken seeds to report.

See also

  • swarm — the substrate seeds distribute over.
  • vigocli swarm filecast — admin-pushed file distribution that rides the same substrate.