$ man full
Run a RogueLayer Full Node (newbie track)
Why run a full node? Apps and indexers need an RPC endpoint. Public endpoints get rate-limited. Running your own gives you predictable, uncensored access — and you support the network.
Time: 1–3 hours setup + sync time. Cost: $20–40/month VPS. Risk: Low. A full node doesn't sign blocks, so no slashing concerns. The main risk is exposing RPC without rate limits (DDoS amplification).
Chain constants
| Key | Value |
|---|---|
| Chain ID (Cosmos) | rogue_4221-1 — use in every tx |
| EVM chain-id | 4221 (0x107d) — MetaMask only; not needed to validate |
| Binary | rogued (Cosmos SDK v0.53 / CometBFT v0.38 — use rogued comet …, not tendermint) |
| Node home | ~/.evmd |
| Native denom | arogue — atto-ROGUE, 18 decimals (1 ROGUE = 1000000000000000000 arogue) |
| Min gas price | 0.0001arogue |
| Account prefix | rogue1… / valoper roguevaloper1… (keys are eth_secp256k1, coin-type 60) |
| One-command install | bash <(curl -sL https://dl.roguelayer.one/install.sh) |
| Binary download | https://dl.roguelayer.one/rogued-linux-{amd64,arm64} — musl-static, runs on any Linux distro (sha256 at the same URL + .sha256) |
| Genesis | https://dl.roguelayer.one/genesis.json (sha256 1899469fc55dc292891e4d3d12d997524939a5bd7f1ddb1a37f4a831a8e5bf4d) |
| Seed / peer | a4a5cdc25a5809acaedc68325019855f01fa8b35@seed.roguelayer.one:26656 (put in seeds and persistent_peers) |
| Sync method | blocksync from the seed (the installer default) — replays from genesis, a few minutes on this young chain. ⚠️ Do not enable state-sync: it is broken on RL1 and fails with an AppHash mismatch after restore. |
| Public RPC | CometBFT https://cometbft.roguelayer.one · EVM https://rpc.roguelayer.one · Cosmos REST https://cosmos.roguelayer.one |
| Test ROGUE | public faucet → https://faucet.roguelayer.one (~11,000 ROGUE per address / 24h; accepts rogue1… or 0x…) |
| Ports | P2P 26656 (open inbound) · CometBFT RPC 26657 · REST 1317 · gRPC 9090 · EVM JSON-RPC 8545 (keep everything but 26656 bound to localhost on a validator) |
| OS / arch | any modern x86-64 or arm64 Linux — static binary, no glibc or Go required |
All values verified live (2026-06-30). The one-command installer wires the seed, genesis, gas price, blocksync from genesis (a fresh node reaches the tip in a few minutes on this young chain — state-sync is not used), and a hardened cosmovisor + systemd service for you; pick the right hardware from the prerequisites below.
Prerequisites
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores (x86-64 or arm64) | 8 cores |
| RAM | 16 GB | 32 GB |
| Disk | 200 GB NVMe SSD | 500 GB NVMe |
| Network | broadband; 26656/tcp outbound | + port-forward 26656 inbound |
NVMe is a hard requirement. CometBFT fsyncs every block. A spinning HDD or microSD will cause missed blocks and jail you within minutes. Do not cut corners here.
Port 26656/tcp is the only inbound port you must open. Behind home NAT you can get away with outbound-only (you dial the seed), but port-forwarding 26656 lets other peers dial you and improves connectivity. RPC (26657), REST (1317), gRPC (9090), and EVM (8545) must stay bound to localhost on a validator.
Device examples
- Raspberry Pi 4/5 (8 GB RAM), 64-bit OS — arm64; the installer pulls
rogued-linux-arm64.gzautomatically. Mount your data directory on a USB3 NVMe/SSD enclosure — never use the microSD as the chain data drive. Fine for a light testnet validator. - Cloud VM — e.g. Hetzner CX42, GCP e2-standard-4, or DigitalOcean 4 vCPU · 16 GB; pick a plan labelled NVMe or SSD storage, and open port 26656 in the firewall dashboard.
- Home bare-metal / mini-PC (NUC) — any modern x86-64 machine with 16 GB+ RAM and an NVMe drive. Behind home NAT is fine; the node dials out to the seed. Port-forwarding 26656 is optional but recommended.
Step 1 — Install rogued
One-command path (recommended): the same installer the validator guide uses works for a full node too — it just installs and syncs the node; you simply never do the "become a validator" steps later.
bash <(curl -sL https://dl.roguelayer.one/install.sh)
This downloads the right binary, verifies its checksum, fetches and verifies genesis, sets your peers, and installs + starts the node as a systemd service. When it finishes, skip ahead to Step 5 (Wait for sync).
Manual path (install the pre-built binary yourself): the RogueLayer source is a private repo, so instead of building, download the ready-made binary — it's a static musl build that runs on any Linux distro, no Go or compiler needed:
ARCH=amd64 # use arm64 on an ARM machine (e.g. Ampere/Graviton VPS)
cd /tmp
curl -fLO https://dl.roguelayer.one/rogued-linux-$ARCH
curl -fsSL https://dl.roguelayer.one/rogued-linux-$ARCH.sha256 | sha256sum -c - # must print: OK
sudo install -m 0755 rogued-linux-$ARCH /usr/local/bin/rogued
rogued version
Step 2 — Initialize, fetch genesis, configure peers
(Only if you used the manual path above — the one-command installer already did this.)
rogued init "$(hostname)" --chain-id rogue_4221-1
curl -fL https://dl.roguelayer.one/genesis.json -o ~/.evmd/config/genesis.json
echo "1899469fc55dc292891e4d3d12d997524939a5bd7f1ddb1a37f4a831a8e5bf4d $HOME/.evmd/config/genesis.json" \
| sha256sum -c - # must print: OK
Edit ~/.evmd/config/config.toml and set the seeds = "" line to the value from the constants table (also set persistent_peers to the same value).
Step 3 — Decide whether to expose RPC
A full node syncs state regardless. The choice is: do you want to serve queries from your laptop only (localhost), or from the internet (so your app can use it)?
Localhost-only (safe default): skip this step.
Public RPC: open ~/.evmd/config/config.toml, find [rpc], change laddr = "tcp://127.0.0.1:26657" to laddr = "tcp://0.0.0.0:26657". Open ~/.evmd/config/app.toml, find [api], set enable = true and address = "tcp://0.0.0.0:1317". Put Caddy or Nginx in front with TLS and rate limiting — direct exposure invites DDoS.
Step 4 — Run under systemd
(Only if you used the manual path — the one-command installer already installed and started this for you.)
Same unit file as the validator track. Create /etc/systemd/system/rogued.service, replace YOUR_LINUX_USERNAME, then:
sudo systemctl daemon-reload
sudo systemctl enable --now rogued
journalctl -u rogued -f
Step 5 — Wait for sync
rogued status 2>&1 | jq .sync_info
When catching_up is false, you're done.
Verify
curl -s localhost:26657/status | jq '.result.sync_info.latest_block_height'
Compare to the explorer's reported height. They should match within a couple of blocks.
Common failures
- No peers. Open port 26656 inbound at the firewall.
disk spaceerrors. Pruning isn't enabled by default. If you don't need full history, edit~/.evmd/config/app.tomland setpruning = "default".
Run a RogueLayer Full Node (dev track)
A full node syncs all chain state and serves RPC/REST/gRPC. Identical to a validator setup minus the create-validator step, with RPC/REST optionally exposed.
Chain constants
| Key | Value |
|---|---|
| Chain ID (Cosmos) | rogue_4221-1 — use in every tx |
| EVM chain-id | 4221 (0x107d) — MetaMask only; not needed to validate |
| Binary | rogued (Cosmos SDK v0.53 / CometBFT v0.38 — use rogued comet …, not tendermint) |
| Node home | ~/.evmd |
| Native denom | arogue — atto-ROGUE, 18 decimals (1 ROGUE = 1000000000000000000 arogue) |
| Min gas price | 0.0001arogue |
| Account prefix | rogue1… / valoper roguevaloper1… (keys are eth_secp256k1, coin-type 60) |
| One-command install | bash <(curl -sL https://dl.roguelayer.one/install.sh) |
| Binary download | https://dl.roguelayer.one/rogued-linux-{amd64,arm64} — musl-static, runs on any Linux distro (sha256 at the same URL + .sha256) |
| Genesis | https://dl.roguelayer.one/genesis.json (sha256 1899469fc55dc292891e4d3d12d997524939a5bd7f1ddb1a37f4a831a8e5bf4d) |
| Seed / peer | a4a5cdc25a5809acaedc68325019855f01fa8b35@seed.roguelayer.one:26656 (put in seeds and persistent_peers) |
| Sync method | blocksync from the seed (the installer default) — replays from genesis, a few minutes on this young chain. ⚠️ Do not enable state-sync: it is broken on RL1 and fails with an AppHash mismatch after restore. |
| Public RPC | CometBFT https://cometbft.roguelayer.one · EVM https://rpc.roguelayer.one · Cosmos REST https://cosmos.roguelayer.one |
| Test ROGUE | public faucet → https://faucet.roguelayer.one (~11,000 ROGUE per address / 24h; accepts rogue1… or 0x…) |
| Ports | P2P 26656 (open inbound) · CometBFT RPC 26657 · REST 1317 · gRPC 9090 · EVM JSON-RPC 8545 (keep everything but 26656 bound to localhost on a validator) |
| OS / arch | any modern x86-64 or arm64 Linux — static binary, no glibc or Go required |
All values verified live (2026-06-30). The one-command installer wires the seed, genesis, gas price, blocksync from genesis (a fresh node reaches the tip in a few minutes on this young chain — state-sync is not used), and a hardened cosmovisor + systemd service for you; pick the right hardware from the prerequisites below.
Prerequisites
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores (x86-64 or arm64) | 8 cores |
| RAM | 16 GB | 32 GB |
| Disk | 200 GB NVMe SSD | 500 GB NVMe |
| Network | broadband; 26656/tcp outbound | + port-forward 26656 inbound |
NVMe is a hard requirement. CometBFT fsyncs every block. A spinning HDD or microSD will cause missed blocks and jail you within minutes. Do not cut corners here.
Port 26656/tcp is the only inbound port you must open. Behind home NAT you can get away with outbound-only (you dial the seed), but port-forwarding 26656 lets other peers dial you and improves connectivity. RPC (26657), REST (1317), gRPC (9090), and EVM (8545) must stay bound to localhost on a validator.
Device examples
- Raspberry Pi 4/5 (8 GB RAM), 64-bit OS — arm64; the installer pulls
rogued-linux-arm64.gzautomatically. Mount your data directory on a USB3 NVMe/SSD enclosure — never use the microSD as the chain data drive. Fine for a light testnet validator. - Cloud VM — e.g. Hetzner CX42, GCP e2-standard-4, or DigitalOcean 4 vCPU · 16 GB; pick a plan labelled NVMe or SSD storage, and open port 26656 in the firewall dashboard.
- Home bare-metal / mini-PC (NUC) — any modern x86-64 machine with 16 GB+ RAM and an NVMe drive. Behind home NAT is fine; the node dials out to the seed. Port-forwarding 26656 is optional but recommended.
Step 1 — Install rogued
One-command path (recommended):
bash <(curl -sL https://dl.roguelayer.one/install.sh)
Downloads + sha256-verifies the binary, fetches + verifies genesis, sets seeds/peers, and installs + starts the cosmovisor/systemd service — this covers Steps 1, 2, and most of Step 4 below (blocksync from genesis; state-sync is broken on RL1, do not enable it). Skip to Verify.
Manual path (pre-built binary — no build tools, and the RL1 source is private):
ARCH=amd64 # or arm64
cd /tmp
curl -fLO https://dl.roguelayer.one/rogued-linux-$ARCH
curl -fsSL https://dl.roguelayer.one/rogued-linux-$ARCH.sha256 | sha256sum -c - # must print: OK
sudo install -m 0755 rogued-linux-$ARCH /usr/local/bin/rogued
rogued version
It's a static musl binary — no glibc, Go, or build toolchain required.
Step 2 — Init + genesis + peers
(Only if you used the manual path above — the one-command installer already did this.)
rogued init "$(hostname)" --chain-id rogue_4221-1
curl -fL https://dl.roguelayer.one/genesis.json -o ~/.evmd/config/genesis.json
echo "1899469fc55dc292891e4d3d12d997524939a5bd7f1ddb1a37f4a831a8e5bf4d $HOME/.evmd/config/genesis.json" \
| sha256sum -c - # must print: OK
SEED="a4a5cdc25a5809acaedc68325019855f01fa8b35@seed.roguelayer.one:26656"
sed -i "s|^seeds = .*|seeds = \"$SEED\"|" ~/.evmd/config/config.toml
sed -i "s|^persistent_peers = .*|persistent_peers = \"$SEED\"|" ~/.evmd/config/config.toml
Step 3 — Expose RPC/REST (optional)
To serve external traffic, edit ~/.evmd/config/config.toml:
[rpc]
laddr = "tcp://0.0.0.0:26657" # was 127.0.0.1
And ~/.evmd/config/app.toml:
[api]
enable = true
address = "tcp://0.0.0.0:1317"
Put a reverse proxy (Caddy or Nginx) in front with TLS and rate limits. Do NOT expose 26657 raw to the public internet.
Step 4 — Run under systemd
(Only if you used the manual path — the one-command installer already installed and started this.)
Use the same unit file as the validator track:
[Unit]
Description=RogueLayer full node
After=network-online.target
[Service]
User=%i
ExecStart=/usr/local/bin/rogued start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
sudo systemctl enable --now rogued
until rogued status 2>&1 | jq -e '.sync_info.catching_up == false' >/dev/null; do sleep 10; done
Verify
curl -s localhost:26657/status | jq '.result.sync_info'
curl -s localhost:1317/cosmos/base/tendermint/v1beta1/blocks/latest | jq '.block.header.height'
Common failures
- No peers → open 26656 inbound at the firewall.
- Disk fills up → enable pruning in
~/.evmd/config/app.toml:pruning = "default".