$ man archive
Run a RogueLayer Archive Node (newbie track)
What's an archive node? A full node that NEVER deletes old data. Block 1, block 1 million, block 10 million — all queryable forever.
You want this if: you run an explorer, do analytics, or need to query historical state. You don't want this if: you're an app, indexer, or validator. Use a pruned full node instead.
Time: 2 hours setup + days of initial sync. Cost: $80–200/month VPS (the disk is the expensive part).
Chain constants
| Key | Value |
|---|---|
| Chain ID | roguelayer-1 |
| Binary | rogued |
| Native denom | urogue (micro-ROGUE) |
| Display denom | ROGUE (10^6 urogue) |
| Genesis URL | TBD — set during launch |
| Seed peers | TBD — set during launch |
| Persistent peers | TBD — set during launch |
| P2P port | 26656 |
| RPC port | 26657 |
| REST/API port | 1317 |
| gRPC port | 9090 |
| EVM JSON-RPC | 8545 |
| Min Go version | 1.22 |
| Recommended OS | Ubuntu 22.04 LTS / Debian 12 |
Note:
TBDrows are intentional. They are filled in at chain launch. Doc lint toleratesTBDonly in this shared file.
Prerequisites
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8 cores |
| RAM | 8 GB | 16 GB |
| Disk (SSD) | 200 GB | 500 GB |
| Network | 100 Mbps symmetric | 1 Gbps |
| OS | Ubuntu 22.04 / Debian 12 | same |
| Open ports | 26656/tcp (P2P) inbound | 26656/tcp |
| Go | 1.22+ | 1.22+ |
| Tools | git, make, jq, curl |
+ systemd |
Open P2P (26656) at your firewall. RPC/REST/gRPC ports should NOT be exposed to the public internet on a validator — bind to localhost or to a sentry.
⚠ Archive disk needs. Budget 1–2 TB NVMe SSD. Rotational/cheap SSD will not keep up — the chain commits faster than slow disk can sync. Pay for NVMe.
Step 1 — Build a full node
Follow full node newbie track all the way through Step 4 (systemd unit creation), but DO NOT start the service yet. We need to switch it to archive mode first.
Step 2 — Turn off pruning
Open ~/.rogued/config/app.toml. Find these settings and change them:
pruning = "nothing"
min-retain-blocks = 0
[state-sync]
snapshot-interval = 0
snapshot-keep-recent = 0
pruning = "nothing" is the magic word. It tells rogued to keep every historical state forever.
In ~/.rogued/config/config.toml, also confirm:
[tx_index]
indexer = "kv"
This indexes every transaction so historical queries work.
Step 3 — Start the node
sudo systemctl enable --now rogued
journalctl -u rogued -f
Watch the log. You'll see it pulling blocks from genesis. This is slow because it's processing every block ever. Multi-day syncs are normal.
While you wait, monitor disk:
df -h ~/.rogued/
If disk usage climbs faster than you have headroom, abort and provision more disk now.
Verify
After sync completes:
rogued query block 1
If it returns block 1 (the very first block), you're an archive node. A pruned full node would error out here.
Common failures
- Disk fills up partway through sync. No recovery — the data is gone. Resize the volume / move to a bigger host and restart from genesis.
- Sync is unbearably slow. Disk is the bottleneck. Switch to NVMe.
Run a RogueLayer Archive Node (dev track)
Archive = full node with pruning = "nothing" and min-retain-blocks = 0. Keeps all historical state. Needed for explorers, analytics, and historical RPC queries.
Chain constants
| Key | Value |
|---|---|
| Chain ID | roguelayer-1 |
| Binary | rogued |
| Native denom | urogue (micro-ROGUE) |
| Display denom | ROGUE (10^6 urogue) |
| Genesis URL | TBD — set during launch |
| Seed peers | TBD — set during launch |
| Persistent peers | TBD — set during launch |
| P2P port | 26656 |
| RPC port | 26657 |
| REST/API port | 1317 |
| gRPC port | 9090 |
| EVM JSON-RPC | 8545 |
| Min Go version | 1.22 |
| Recommended OS | Ubuntu 22.04 LTS / Debian 12 |
Note:
TBDrows are intentional. They are filled in at chain launch. Doc lint toleratesTBDonly in this shared file.
Prerequisites
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8 cores |
| RAM | 8 GB | 16 GB |
| Disk (SSD) | 200 GB | 500 GB |
| Network | 100 Mbps symmetric | 1 Gbps |
| OS | Ubuntu 22.04 / Debian 12 | same |
| Open ports | 26656/tcp (P2P) inbound | 26656/tcp |
| Go | 1.22+ | 1.22+ |
| Tools | git, make, jq, curl |
+ systemd |
Open P2P (26656) at your firewall. RPC/REST/gRPC ports should NOT be exposed to the public internet on a validator — bind to localhost or to a sentry.
Disk requirement: budget 1–2 TB NVMe SSD. Archive grows linearly with chain age. Rotational disk cannot keep up.
Step 1 — Build a full node
Follow full node dev track up to Step 4 (systemd unit), but DO NOT start the service yet.
Step 2 — Turn off pruning
Edit ~/.rogued/config/app.toml:
pruning = "nothing"
min-retain-blocks = 0
[state-sync]
snapshot-interval = 0
snapshot-keep-recent = 0
Edit ~/.rogued/config/config.toml to confirm transaction indexing:
[tx_index]
indexer = "kv"
Step 3 — Start the node
sudo systemctl enable --now rogued
journalctl -u rogued -f
Full archive sync from genesis. Hours-to-days depending on chain age.
Verify
rogued query block 1 | jq '.block.header.height' # → 1
If block 1 is queryable, you're an archive node. A pruned full node would error here.
Common failures
- Disk fills up partway through sync. No recovery — the data is gone. Resize the volume / move to a bigger host and restart from genesis.
- Sync is unbearably slow. Disk is the bottleneck. Switch to NVMe.