Skip to content

infra(archive-node): bare-metal buildout — provision → sync → first-party RPC origin #2111

Description

@JSONbored

Archive node: from raw provisioned server to production RPC origin

Supersedes this issue's original scope, which described a pruned (128GB) subtensor-node service on Railway. The actual plan (decided in #2518/#2518) is a dedicated bare-metal archive node on Latitude.sh, not a pruned node on a managed platform. Server is already provisioned by the owner (2026-07 buildout, being built tonight alongside the indexer node).

Deliverable

A full, unpruned (--pruning=archive --sync=full) subtensor node, synced to head, serving as (1) the RPC origin for the indexer node's index-chain/indexer-rs + backfill services, and (2) the first TRUSTED_RPC_UPSTREAM_ORIGINS entry in the Worker's RPC proxy, with public archive nodes demoted to failover.

Sizing reference

docs.learnbittensor.org/subtensor-nodes/subtensor-node-requirements: 4 cores/16GB min; archive storage ~3.5TB+ as of block #7,929,000 (2026-03-28) — confirm the provisioned box has real headroom past that as the chain continues to grow. No official warp-sync snapshot URL exists — initial sync is either full genesis sync or a self-produced snapshot.

Steps (see sub-issues)

  1. OS bootstrap & hardening
  2. Install + configure subtensor (full archive), systemd unit, disk/IO tuning
  3. Initial sync + self-snapshot to R2 (reproducible bootstrap for future replicas / geo-HA)
  4. Decide + implement the network path to the indexer node (private VLAN / WireGuard / RPC-over-TLS — currently undocumented anywhere, a real gap flagged in the 2026-07-03 architecture research)
  5. Wire into the Worker's RPC proxy as first-party origin
  6. Monitoring + alerting (sync lag, peer count, disk usage, RPC latency) — process-restart alerting shipped, see infra(archive-node): subtensor txpool-background "crash" — root-caused as benign (scheduled restart), not a bug #4775
  7. Ansible role (subtensor-archive) — see Decision: deep-history cold-tier data architecture (2-box: archive node + indexer/DB) — PG/Timescale vs +columnar sibling #2518-config-mgmt (JSO-2517)

Part of #2518 (#2518). Related: indexer-node epic. See ADR 0013 (docs/adr/0013-hybrid-deployment-topology.md) + runbook (deploy/README.md) — note both currently assume co-location with the indexer box, which the real 2-box plan doesn't have; the network-path sub-issue above is where that gets resolved.

maintainer-only.

Metadata

Metadata

Assignees

Labels

backendmaintainer-onlyOwner-only work — yields no Gittensor points.roadmapRoadmap epic / tracking

Projects

Status
In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions