Skip to content

Node_types

Understanding the different types of blockchain nodes is crucial for infrastructure engineers. Each node type serves a specific purpose and has different resource requirements. In production environments, you may run multiple node types to meet various needs.


┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCKCHAIN NODE TYPES │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ │
│ │ FULL NODE │ ◄── Most common, validates everything │
│ └────────┬────────┘ │
│ │ │
│ ┌────────▼────────┐ ┌─────────────────┐ │
│ │ LIGHT NODE │ ◄── │ ARCHIVE NODE │ │
│ │ Limited data │ │ Full history │ │
│ └─────────────────┘ └────────┬────────┘ │
│ │ │
│ ┌─────────────────┐ │ │
│ │ RPC NODE │◄─────────────┘ │
│ │ API services │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ VALIDATOR │ ◄── Consensus participation │
│ │ / MINER │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

A full node downloads and validates every block and transaction from the genesis block. It independently verifies the entire blockchain history.

FeatureDescription
StorageStores complete blockchain data
ValidationValidates all transactions and blocks
IndependenceCan operate without other nodes
Network RoleBackbone of decentralization
BlockchainMainnet Data Size
Ethereum~1.2 TB (after Merge)
Bitcoin~600 GB
Cosmos~200 GB
Solana~10 TB
Terminal window
# Example: Running Ethereum Full Node with Geth
geth --syncmode full --http --http.addr 0.0.0.0 --http.port 8545
  • ✅ Complete independence and privacy
  • ✅ Maximum security and trustlessness
  • ✅ Contribute to network health
  • ❌ High storage requirements
  • ❌ Initial sync takes significant time
  • ❌ Resource intensive

A light node (or light client) only downloads block headers and verifies a small subset of transactions. It relies on full nodes for most data.

  • Mobile wallets
  • Browser extensions
  • Resource-constrained devices
  • Quick transaction verification
┌─────────────────────────────────────────────────────────────────┐
│ LIGHT NODE OPERATION │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Light Node │
│ ┌─────────────┐ │
│ │ Block │────── Download only headers │
│ │ Headers │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Want TX │────▶│ Full Node A │────▶│ Return TX │ │
│ │ Proof │ │ │ │ + Merkle │ │
│ └─────────────┘ └─────────────┘ │ Proof │ │
│ └─────────────┘ │
│ │
│ Light Node verifies: │
│ 1. Transaction is in block (Merkle proof) │
│ 2. Block follows consensus rules │
│ │
└─────────────────────────────────────────────────────────────────┘
Terminal window
# Example: Running Ethereum Light Node with Geth
geth --syncmode light --http
  • ✅ Low storage requirements (~1 GB)
  • ✅ Fast initial sync (minutes vs days)
  • ✅ Suitable for mobile devices
  • ❌ Depends on full nodes for data
  • ❌ Lower security guarantees
  • ❌ Cannot verify all state independently

An archive node stores the complete blockchain history AND all historical states. It’s essentially a full node plus complete historical snapshots at every block.

  • Blockchain explorers (Etherscan, Blockscout)
  • Analytics and data indexing
  • Historical state queries
  • Auditing and compliance
  • dApp backends requiring historical data
┌────────────────────────────────────────────────────────────────┐
│ STORAGE COMPARISON │
├────────────────────────────────────────────────────────────────┤
│ │
│ Ethereum Mainnet (approximate): │
│ │
│ ┌──────────────────┬────────────────────────────────────┐ │
│ │ Node Type │ Storage Required │ │
│ ├──────────────────┼────────────────────────────────────┤ │
│ │ Light Node │ ~1 GB │ │
│ │ Full Node │ ~1.2 TB │ │
│ │ Archive Node │ ~12 TB │ │
│ └──────────────────┴────────────────────────────────────┘ │
│ │
│ Note: Archive nodes require 10x more storage than full nodes │
│ │
└────────────────────────────────────────────────────────────────┘
Terminal window
# Example: Running Ethereum Archive Node with Geth
geth --syncmode full --history.state 0 --http
  • ✅ Query any historical state
  • ✅ Required for block explorers
  • ✅ Complete historical data
  • ❌ Extremely high storage (10+ TB)
  • ❌ Very slow initial sync
  • ❌ High RAM requirements (32GB+)

A validator is a node that participates in the consensus mechanism by proposing and validating new blocks. In Proof of Stake networks, validators stake cryptocurrency as collateral.

  1. Block Proposal: Create new blocks
  2. Block Validation: Verify other validators’ blocks
  3. Attestation: Vote on block validity
  4. Participation: Stay online and responsive
┌─────────────────────────────────────────────────────────────────┐
│ VALIDATOR WORKFLOW │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Stake │────▶│ Become │────▶│ Start │ │
│ │ Tokens │ │ Validator │ │ Validating │ │
│ └─────────────┘ └─────────────┘ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Receive │◀────│ Participate│◀────│ Propose │ │
│ │ Rewards │ │ in Consensus │ Blocks │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Ethereum (PoS):

  • Minimum 32 ETH stake
  • Run a consensus client (Lighthouse, Prysm, Teku)
  • Run an execution client (Geth, Nethermind, Besu)

Cosmos:

  • Stake ATOM tokens
  • Run validator software
  • Meet technical requirements

Validators can be slashed (penalized) for:

  • Downtime (being offline)
  • Double signing (proposing two blocks at same height)
  • Incorrect attestations

An RPC (Remote Procedure Call) node is a full node that exposes API endpoints for external applications to interact with the blockchain.

// Ethereum JSON-RPC Example
// eth_blockNumber - Get latest block number
{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1
}
// eth_getBalance - Get account balance
{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0x742d35Cc6634C0532925a3b844Bc9e7595f1e3E4", "latest"],
"id": 1
}
// eth_sendTransaction - Send transaction
{
"jsonrpc": "2.0",
"method": "eth_sendTransaction",
"params": [{
"from": "0x...",
"to": "0x...",
"value": "0x...",
"gas": "0x...",
"gasPrice": "0x..."
}],
"id": 1
}
AspectFull NodeRPC Node
API AccessOptionalRequired
NetworkCan be privateUsually public-facing
Rate LimitingN/AEssential
CachingMinimalExtensive
Terminal window
# Basic RPC node setup with Geth
geth \
--syncmode full \
--http \
--http.addr 0.0.0.0 \
--http.port 8545 \
--http.api eth,net,web3,debug,txpool \
--ws \
--ws.addr 0.0.0.0 \
--ws.port 8546

Bootnodes are special nodes that help new nodes discover and connect to the network. They maintain a list of active peers and share this information with incoming nodes.

┌─────────────────────────────────────────────────────────────────┐
│ BOOTNODE DISCOVERY │
├─────────────────────────────────────────────────────────────────┤
│ │
│ New Node │
│ │ │
│ │ 1. Connect to Bootnode │
│ ▼ │
│ ┌─────────────┐ │
│ │ Bootnode │────── Return peer list │
│ │ (ENR) │ │
│ └─────────────┘ │
│ │ │
│ │ 2. Connect to Peers │
│ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Peer 1 │ │ Peer 2 │ │ Peer 3 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Ethereum Mainnet:

enode://enr:-KO4QA...@bootnode.mainnet.ethdisco.net:30303

Ethereum Goerli Testnet:

enode://enr:-KO4QA...@bootnode.goerli.ethdisco.net:30303

Node TypeStorageInitial SyncUse Case
Light~1 GBMinutesMobile wallets, quick checks
Full1-2 TBHours-DaysValidation, dApps
Archive10+ TBDays-WeeksBlock explorers, analytics
ValidatorSame as fullHours-DaysConsensus, block production
RPCSame as fullHours-DaysAPI services, dApps

QuestionAnswer
Difference between full and light nodes?Full nodes validate everything; light nodes only headers
When to use archive nodes?Block explorers, analytics, historical queries
What is an RPC node used for?Providing API access for dApps and wallets
What is slashing in validators?Penalty for malicious behavior or downtime

  • Full Nodes: Complete validation, backbone of network
  • Light Nodes: Resource-efficient, for light use cases
  • Archive Nodes: Complete history, for analytics/explorers
  • Validators: Consensus participation, block production
  • RPC Nodes: API access for applications

In Chapter 4: Node Architecture & Components, we’ll explore the internal architecture of blockchain nodes.


Last Updated: 2026-02-20