Skip to content

Questions

This chapter covers the most common interview questions related to blockchain nodes. These questions are based on real interview experiences and will help you prepare for node operator, blockchain engineer, and DevOps positions.


Answer: A blockchain node is a computer or server that runs blockchain software, connects to other nodes in a peer-to-peer network, stores a copy of the blockchain, validates transactions and blocks, and participates in the consensus mechanism.


Q2: What is the difference between a full node and a light node?

Section titled “Q2: What is the difference between a full node and a light node?”

Answer:

FeatureFull NodeLight Node
Data StorageComplete blockchain (~1.2TB for Ethereum)Only block headers (~1GB)
Initial SyncDays to weeksMinutes
SecurityFull verificationLimited verification
FunctionalityComplete (query any data)Limited (needs proofs)
Use CaseValidators, RPC servicesMobile wallets

Q3: What are the main components of a blockchain node?

Section titled “Q3: What are the main components of a blockchain node?”

Answer:

  1. P2P Network Layer - Handles communication with other nodes
  2. Transaction Pool (Mempool) - Holds pending transactions
  3. Block Validator - Validates incoming blocks
  4. State Database - Stores account balances and contract state
  5. Virtual Machine (EVM) - Executes smart contracts
  6. RPC API - Exposes interfaces for external applications

Answer: Consensus is the process by which network nodes agree on the current state of the blockchain. It ensures all honest nodes have the same copy of the distributed ledger. Common mechanisms include:

  • Proof of Work (PoW) - Miners solve puzzles
  • Proof of Stake (PoS) - Validators stake tokens
  • Delegated PoS (DPoS) - Elected validators
  • PBFT/Tendermint - Byzantine fault tolerance

Q5: What is the difference between PoW and PoS?

Section titled “Q5: What is the difference between PoW and PoS?”

Answer:

AspectProof of WorkProof of Stake
MechanismSolve mathematical puzzlesStake cryptocurrency
EnergyVery highLow (99% less)
HardwareSpecialized ASICsStandard servers
Block ProposersMinersValidators (randomly selected)
Security51% attack expensive51% attack requires 51% staked tokens
ExampleBitcoinEthereum

Answer: The Merge (September 2022) was Ethereum’s transition from Proof of Work to Proof of Stake. It merged the original execution layer with the new Beacon Chain (consensus layer). After The Merge:

  • Energy consumption reduced by ~99%
  • No more mining
  • Validators now produce blocks
  • Changed from 12-14s to consistent 12s block time

Q7: What are execution clients and consensus clients in Ethereum?

Section titled “Q7: What are execution clients and consensus clients in Ethereum?”

Answer: After The Merge, Ethereum uses dual-client architecture:

  • Execution Client (EL): Handles transactions, EVM execution, state management

    • Examples: Geth, Erigon, Nethermind, Besu
  • Consensus Client (CL): Handles Proof of Stake, Beacon Chain, validation

    • Examples: Lighthouse, Prysm, Teku, Nimbus

They communicate via Engine API using JWT authentication.


Answer: Geth (Go Ethereum) is the most popular Ethereum client, written in Go. It’s:

  • The official Go implementation
  • Used by majority of nodes on mainnet
  • Supports full, snap, and light sync modes
  • Provides JSON-RPC API for interactions

Q9: What are the different sync modes in Geth?

Section titled “Q9: What are the different sync modes in Geth?”

Answer:

ModeDescriptionTimeStorage
FullVerifies every block and transactionWeeks~1.2TB
Snap (default)Downloads state snapshot, then catches upHours~1.2TB
LightOnly block headersMinutes~1GB

Recommendation: Use --syncmode snap for production RPC nodes.


Q10: How do you check if an Ethereum node is synced?

Section titled “Q10: How do you check if an Ethereum node is synced?”

Answer:

Terminal window
# Using Geth console
geth attach http://localhost:8545
eth.syncing
# Returns:
# {
# currentBlock: 18500000,
# highestBlock: 18501234,
# knownStates: 50000000,
# pulledStates: 48000000
# }
# When synced, returns: false

Or using JSON-RPC:

Terminal window
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'

Answer: Gas is the unit of computation on Ethereum. Each operation (transaction, smart contract execution) requires a specific amount of gas.

  • Gas Limit: Maximum gas you’re willing to spend
  • Gas Used: Actual gas consumed
  • Gas Price: Price per unit (in Gwei)
  • Transaction Fee = Gas Used × Gas Price

After EIP-1559:

  • Base Fee: Burned by network (dynamic)
  • Priority Fee: Goes to validator (tip)

Q12: What is the difference between Geth and Erigon?

Section titled “Q12: What is the difference between Geth and Erigon?”

Answer:

FeatureGethErigon
DeveloperEthereum FoundationErigon Team
Sync SpeedSlower (weeks)Faster (days)
Storage~1.2TB~900GB
DatabaseLevelDBMDBX
APIStandardExtended (Erigon-specific)

Erigon is faster and more storage-efficient but API-compatible with Geth.


Q13: How would you set up an Ethereum node from scratch?

Section titled “Q13: How would you set up an Ethereum node from scratch?”

Answer:

Terminal window
# 1. Install Geth
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.14.tar.gz
tar -xzf geth-linux-amd64-1.13.14.tar.gz
sudo mv geth /usr/local/bin/
# 2. Start node with snap sync (recommended)
geth \
--syncmode snap \
--http \
--http.addr 127.0.0.1 \
--http.port 8545 \
--http.api eth,net,web3 \
--datadir /data/ethereum
# 3. Monitor sync status
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'
# 4. Check block number to verify sync
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Q14: What are the hardware requirements for running an Ethereum node?

Section titled “Q14: What are the hardware requirements for running an Ethereum node?”

Answer:

ComponentMinimumRecommended
CPU4 cores8+ cores
RAM8 GB16-32 GB
Storage1 TB SSD2 TB NVMe SSD
Network25 Mbps100 Mbps

For archive nodes (storing all historical state):

  • Storage: 10-12 TB
  • RAM: 32-64 GB

Answer: An RPC node is a full node that exposes APIs (JSON-RPC, WebSocket) for external applications to interact with the blockchain. It’s used by:

  • Decentralized applications (dApps)
  • Wallets
  • Block explorers
  • Trading bots
  • Analytics tools

Answer: The mempool (Memory Pool) is where pending transactions wait before being included in a block. It:

  • Stores unconfirmed transactions
  • Holds transactions from all users
  • Transactions are ordered by gas price
  • Cleared when included in a block or expired

Answer:

  1. Network Security:

    • Don’t expose RPC to public (bind to localhost)
    • Use firewall rules
    • Enable TLS/SSL
  2. Key Management:

    • Never expose private keys on RPC nodes
    • Use hardware wallets for validators
  3. Access Control:

    • Implement rate limiting
    • Use API keys if needed
    • Restrict CORS domains
  4. System Security:

    • Run as non-root user
    • Keep software updated
    • Use monitoring and alerts

Answer: Slashing is a penalty for validator misbehavior that results in loss of staked tokens. Common slashing conditions:

  • Double signing: Signing two different blocks at same height
  • Double voting: Attesting to two conflicting blocks
  • Surround voting: Creating conflicting attestations

Slashing protects network integrity by making malicious behavior expensive.


Answer: A bootnode is a well-known node that helps new nodes discover peers on the network. When starting a new node, it connects to bootnodes to get a list of active peers.

Ethereum mainnet bootnodes:

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

Q20: What is the difference between a validator and a full node?

Section titled “Q20: What is the difference between a validator and a full node?”

Answer:

AspectFull NodeValidator
ConsensusValidates blocksProposes & validates blocks
Block ProductionNoYes
Stake RequiredNoYes (32 ETH for Ethereum)
Slashing RiskNoYes
Can Query DataYesYes

Q21: What would you do if your node won’t sync?

Section titled “Q21: What would you do if your node won’t sync?”

Answer:

  1. Check network connectivity:

    Terminal window
    curl -X POST http://localhost:8545 \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'
  2. Check sync status:

    Terminal window
    eth.syncing
  3. Check logs:

    Terminal window
    journalctl -fu geth -n 100
  4. Verify correct network:

    Terminal window
    curl -X POST http://localhost:8545 \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
  5. Restart with fresh database (last resort):

    Terminal window
    rm -rf /data/ethereum/geth/chaindata
    systemctl restart geth

Q22: Node is synced but not receiving transactions - what could be wrong?

Section titled “Q22: Node is synced but not receiving transactions - what could be wrong?”

Answer:

  1. Check if you’re connected to peers: net_peerCount
  2. Check mempool: txpool.content
  3. Verify transactions are reaching the network
  4. Check if your node is properly connected to the P2P network

Answer: State pruning removes unnecessary historical state data while keeping blockchain integrity. Types:

  • Pruned node: Only keeps recent state (1.2TB)
  • Archive node: Keeps all historical states (12TB)

Geth flags:

Terminal window
--pruneancientstore # Prune ancient data
--history.state 90000 # Keep last 90k state entries

Q24: How does Ethereum’s snap sync work?

Section titled “Q24: How does Ethereum’s snap sync work?”

Answer: Snap sync:

  1. Downloads the most recent state snapshot from peers
  2. Downloads blocks from that point to current head
  3. Verifies state by executing transactions
  4. Once synced, operates like a full node

It provides the same result as full sync but is much faster (hours vs weeks).


Answer: The Engine API is the communication interface between execution clients (Geth, Erigon) and consensus clients (Lighthouse, Prysm) after The Merge. It uses:

  • JSON-RPC over HTTP
  • JWT authentication
  • Methods like engine_forkchoiceUpdatedV2, engine_newPayloadV2

Terminal window
# Check sync status
eth.syncing
# Check peer count
net_peerCount
# Get latest block
eth_blockNumber
# Get balance
eth_getBalance("address", "latest")
# Send transaction
eth_sendRawTransaction("0x...")
# Check chain ID
eth_chainId
ServicePort
P2P (Geth)30303
HTTP RPC8545
WebSocket8546
Metrics6060
pprof6061

These questions cover the most important topics for blockchain node interviews:

  • Blockchain fundamentals
  • Ethereum architecture and The Merge
  • Geth/Ethereum client operations
  • Sync modes and troubleshooting
  • Security best practices
  • RPC and API concepts

Practice these questions and you’ll be well-prepared for your interview!


In Chapter 56: Hands-on Task Scenarios, we’ll practice common hands-on tasks.


Last Updated: 2026-02-20