$ 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 | 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.
Step 1 — Install rogued
git clone https://github.com/stepheniervella/RL1.git ~/rogue
cd ~/rogue
make install
rogued version
If rogued: command not found, add export PATH=$PATH:~/go/bin to ~/.bashrc and re-source.
Step 2 — Initialize, fetch genesis, configure peers
rogued init "$(hostname)" --chain-id roguelayer-1
curl -sSL "$GENESIS_URL" -o ~/.rogued/config/genesis.json
Edit ~/.rogued/config/config.toml and set the seeds = "" line to the value from the constants table.
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 ~/.rogued/config/config.toml, find [rpc], change laddr = "tcp://127.0.0.1:26657" to laddr = "tcp://0.0.0.0:26657". Open ~/.rogued/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
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~/.rogued/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 | 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.
Step 1 — Install rogued
git clone https://github.com/stepheniervella/RL1.git ~/rogue
cd ~/rogue && make install
rogued version
Step 2 — Init + genesis + peers
rogued init "$(hostname)" --chain-id roguelayer-1
curl -sSL "$GENESIS_URL" -o ~/.rogued/config/genesis.json
sed -i 's|^seeds = ".*"|seeds = "'"$SEED_PEERS"'"|' ~/.rogued/config/config.toml
Step 3 — Expose RPC/REST (optional)
To serve external traffic, edit ~/.rogued/config/config.toml:
[rpc]
laddr = "tcp://0.0.0.0:26657" # was 127.0.0.1
And ~/.rogued/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
Use the same unit file as the validator track:
[Unit]
Description=RogueLayer full node
After=network-online.target
[Service]
User=%i
ExecStart=/home/%i/go/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
~/.rogued/config/app.toml:pruning = "default".