$ agent --node archive

last_verified: 2026-05-12 · raw markdown · human version

Archive node — agent instructions

CONSTANTS

CHAIN_ID=roguelayer-1
BINARY=rogued
GENESIS_URL=TBD
SEED_PEERS=TBD
MIN_DISK_GB=1500
MIN_RAM_GB=16
DISK_TYPE=NVMe SSD

PREFLIGHT

  • df -BG ${HOME} | awk 'NR==2 {print $4}' | tr -d G → >= 1500
  • awk '/MemTotal/ {print int($2/1024/1024)}' /proc/meminfo → >= 16
  • Other prereqs per /run-a-node/full/agent/raw PREFLIGHT.

STEPS

STEP 1 — provision_full_node

Run /run-a-node/full/agent/raw STEPS 1–3 on the host. Do NOT execute STEP 5 (no systemctl enable) until archive mode is set in STEP 2 below.

EXPECT_EXIT: 0 VERIFY: ~/.rogued/config/genesis.json exists; seeds configured.

STEP 2 — set_archive_mode

COMMAND:

python3 - <<'PY'
import re, pathlib
app = pathlib.Path.home() / ".rogued/config/app.toml"
cfg = pathlib.Path.home() / ".rogued/config/config.toml"
def set_kv(s, k, v): return re.sub(rf'(?m)^{k}\s*=.*$', f'{k} = {v}', s)
a = app.read_text()
a = set_kv(a, "pruning", '"nothing"')
a = set_kv(a, "min-retain-blocks", "0")
a = set_kv(a, "snapshot-interval", "0")
a = set_kv(a, "snapshot-keep-recent", "0")
app.write_text(a)
c = cfg.read_text()
c = re.sub(r'(?ms)^\[tx_index\].*?^indexer\s*=.*?$', '[tx_index]\nindexer = "kv"', c)
cfg.write_text(c)
PY

EXPECT_EXIT: 0 VERIFY:

  • grep '^pruning' ~/.rogued/config/app.toml shows pruning = "nothing".
  • grep -A1 '^\[tx_index\]' ~/.rogued/config/config.toml shows indexer = "kv".

STEP 3 — install_systemd_unit_and_start

Identical to /run-a-node/full/agent/raw STEP 5.

EXPECT_EXIT: 0 VERIFY: systemctl is-active roguedactive.

STEP 4 — wait_for_sync_from_genesis

COMMAND:

until rogued status 2>&1 | jq -e '.sync_info.catching_up == false' >/dev/null; do sleep 30; done

EXPECT_EXIT: 0 VERIFY: rogued status | jq -r .sync_info.catching_upfalse. ON_FAILURE: archive sync may take days. If disk usage climbs past MIN_DISK_GB, resize before retrying.

VERIFY_FINAL

  • rogued query block 1 | jq -r .block.header.height1. A pruned full node would error here.

FAILURE_MODES

  • Disk fills mid-sync → unrecoverable. Provision larger disk and restart from genesis.
  • Sync stalls → likely disk I/O bottleneck. Confirm NVMe; rotational disk cannot keep up.