Cosmos_full_node
Chapter 15: Cosmos Full Node Setup
Section titled “Chapter 15: Cosmos Full Node Setup”Overview
Section titled “Overview”A full node in Cosmos stores the complete blockchain history and validates all transactions but doesn’t participate in block production like validators.
15.1 Full Node vs Validator
Section titled “15.1 Full Node vs Validator”| Aspect | Full Node | Validator |
|---|---|---|
| Block Production | No | Yes |
| Staking Required | No | Yes (ATOM) |
| Can Be Jailed | No | Yes |
| Hardware | Less resources | High resources |
| Use Case | RPC, indexing | Consensus |
15.2 Setup Full Node
Section titled “15.2 Setup Full Node”Install Gaiad
Section titled “Install Gaiad”# Install Go first, then:git clone https://github.com/cosmos/gaia.gitcd gaiamake installInitialize Node
Section titled “Initialize Node”# Initializegaiad init my-full-node --chain-id cosmoshub-4
# Download genesiswget -O ~/.gaia/config/genesis.json \ https://raw.githubusercontent.com/cosmos/mainnet/master/genesis.jsonStart Node
Section titled “Start Node”# Basic startgaiad start
# Seeds + persistent peers are config.toml settings, NOT gaiad CLI flags.# Edit ~/.gaia/config/config.toml:# [p2p]# seeds = "seed@node:26656"# persistent_peers = "id@peer1:26656,id@peer2:26656"# then simply: gaiad start15.3 RPC Configuration
Section titled “15.3 RPC Configuration”Enable RPC
Section titled “Enable RPC”[rpc]laddr = "tcp://0.0.0.0:26657" # note: must be indented under [rpc]Common RPC Commands
Section titled “Common RPC Commands”# Get statuscurl http://localhost:26657/status
# Get blockcurl http://localhost:26657/block?height=10000
# Get validatorscurl http://localhost:26657/validators15.4 Pruning
Section titled “15.4 Pruning”Configure Pruning
Section titled “Configure Pruning”[pruning]pruning = "default"pruning-keep-recent = "100"pruning-keep-every = "500"15.5 State Sync
Section titled “15.5 State Sync”Quick Sync
Section titled “Quick Sync”State sync is configured in config.toml — there are no --statesync.* CLI flags:
[statesync]enable = truerpc_servers = "https://rpc1.example.com:26657,https://rpc2.example.com:26657"trust_height = 12345 # obtain from your RPC provider (must be recent within trust period)trust_hash = "ABC123..." # block hash at that heighttrust_period = "168h"# Then start normallygaiad startState sync verifies the snapshot using light-client logic on the trusted height/hash. Get
trust_height/trust_hashfrom a trusted chain explorer or RPC, and keeptrust_periodwell under the chain’s unbonding period.
Summary
Section titled “Summary”- Full nodes don’t stake but validate transactions
- RPC on port 26657
- Can enable state sync for faster setup
- Prune old data to save storage
Next Chapter
Section titled “Next Chapter”In Chapter 16: Cosmos RPC & API Configuration, we’ll explore Cosmos APIs.
Last Updated: 2026-02-20