Skip to content

Ethereum_overview

Ethereum is the most widely-used blockchain for smart contracts and decentralized applications. Understanding Ethereum’s architecture is essential for any blockchain infrastructure engineer, as you’ll likely work with Ethereum nodes in production.


Ethereum is a programmable blockchain that allows developers to build and deploy smart contracts and decentralized applications (dApps).

AttributeValue
Launch DateJuly 30, 2015
TokenETH (Ether)
Block Time12 seconds (PoS)
ConsensusProof of Stake (after The Merge)
TPS~15-30 (L1); rollups scale to 100,000+ via blobspace (EIP-4844)
Gas Limit30 million gas per block

┌─────────────────────────────────────────────────────────────────┐
│ ETHEREUM NETWORKS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ MAINNET │ │
│ │ Production - Real value, real applications │ │
│ │ Chain ID: 1 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ TESTNETWORKS │ │
│ │ │ │
│ │ Sepolia ─── New testnet (2022) ─── Recommended │ │
│ │ Goerli ─── Old testnet (deprecated) │ │
│ │ Holesky ─── Validator testnet │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ LOCAL/PRIVATE NETWORKS │ │
│ │ │ │
│ │ Ganache, Hardhat, Besu (dev mode) │ │
│ │ For local development and testing │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ ETHEREUM UPGRADE TIMELINE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 2015 2016 2017 2019 2020 2022 2023 2024+ │
│ │ │ │ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │Frontier│ │Homestead│ │Metropolis│ │Istanbul│ │Beacon│ │Merge │ │Shapella│ │ │
│ │ │ │ │ │ │ │ │ │Chain │ │ │ │ │ │Surge │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ Key Milestones: │
│ - Frontier (2015): Initial release │
│ - Homestead (2016): First upgrade │
│ - The Merge (2022): PoW → PoS │
│ - Shapella (2023): Staking withdrawals │
│ - Dencun (2024): EIP-4844 blobs (proto-danksharding) for rollups │
│ - Surge (roadmap): Rollups + (dan)ksharding, NOT chain-level sharding │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ ETHEREUM POST-MERGE ARCHITECTURE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ EXECUTION CLIENT │ │
│ │ (Handles transactions, EVM, state) │ │
│ │ │ │
│ │ Geth / Erigon / Nethermind / Besu / Reth │ │
│ │ │ │
│ │ - Transaction Pool (Mempool) │ │
│ │ - State Database │ │
│ │ - EVM Execution │ │
│ │ - Block Building │ │
│ │ - JSON-RPC API │ │
│ └────────────────────────────────┬───────────────────────────────────┘ │
│ │ Engine API │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ CONSENSUS CLIENT │ │
│ │ (Handles PoS, Beacon Chain, validation) │ │
│ │ │ │
│ │ Lighthouse / Prysm / Teku / Nimbus / Lodestar │ │
│ │ │ │
│ │ - Beacon Chain │ │
│ │ - Validator Management │ │
│ │ - Fork Choice │ │
│ │ - Attestations & Proposals │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ Execution Client must connect to Consensus Client via Engine API │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

ClientLanguageDevelopersStatus
GethGoEthereum FoundationStable
ErigonGoErigon TeamStable
NethermindC#/.NETNethermindStable
BesuJavaHyperledgerStable
RethRustParadigmBeta
ClientLanguageDevelopersStatus
LighthouseRustSigma PrimeStable
PrysmGoPrysmatic LabsStable
TekuJavaConsenSysStable
NimbusNimStatusStable
LodestarTypeScriptChainSafeStable

The EVM is a runtime environment for executing smart contracts on Ethereum.

┌─────────────────────────────────────────────────────────────────┐
│ ETHEREUM VIRTUAL MACHINE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Smart Contract Bytecode │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ PUSH1 0x60 PUSH1 0x60 ADD PUSH1 0x00 SSTORE │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ OPCODES │ │
│ │ │ │
│ │ Stack Operations: PUSH, POP, DUP, SWAP │ │
│ │ Arithmetic: ADD, SUB, MUL, DIV, MOD │ │
│ │ Comparison: LT, GT, EQ, ISZERO │ │
│ │ Storage: SLOAD, SSTORE │ │
│ │ Memory: MLOAD, MSTORE, MSIZE │ │
│ │ Control: JUMP, JUMPI, JUMPDEST │ │
│ │ Logging: LOG0, LOG1, LOG2, LOG3, LOG4 │ │
│ │ System: CREATE, CALL, DELEGATECALL, STATICCALL │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ GAS CALCULATION │ │
│ │ │ │
│ │ Each opcode has a gas cost: │ │
│ │ - ADD: 3 gas │ │
│ │ - SLOAD: 2100 gas (cold) / 100 gas (warm) │ │
│ │ - SSTORE: 20000 gas (set) / 5000 gas (modify) │ │
│ │ - CALL: 2600 gas + value transfer │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Gas is the unit of computation on Ethereum. Each operation requires a specific amount of gas.

┌─────────────────────────────────────────────────────────────────┐
│ GAS MECHANICS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Transaction Fee = Gas Used × Gas Price │
│ │
│ Components: │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Gas Limit: Maximum gas you're willing to spend │ │
│ │ (e.g., 21,000 for simple ETH transfer) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ Gas Used: Actual gas consumed by execution │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ Gas Price: Price per unit of gas │ │
│ │ - Base fee (network determined) + Priority fee │ │
│ │ - Measured in Gwei (1 Gwei = 10^-9 ETH) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ Max Fee: Maximum you're willing to pay │ │
│ │ - 2 * (base + priority) typically │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ EIP-1559 (London Upgrade): │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Base Fee: Burned, adjusts dynamically │ │
│ │ Priority Fee: Goes to validator (tips) │ │
│ │ │ │
│ │ Formula: │ │
│ │ total_fee = gas_limit * (base_fee + priority_fee) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
OperationGas Cost
Simple Transfer21,000
ERC-20 Transfer~65,000
Swap (Uniswap)~150,000-300,000
Deploy Contract~1,000,000+
Storage Write20,000+

Ethereum has two types of accounts:

┌─────────────────────────────────────────────────────────────────┐
│ ETHEREUM ACCOUNTS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ EXTERNALLY OWNED ACCOUNT (EOA) │ │
│ │ │ │
│ │ - Controlled by private key │ │
│ │ - Can send transactions │ │
│ │ - Can hold ETH and tokens │ │
│ │ - Has nonce (transaction counter) │ │
│ │ │ │
│ │ Address: 0x742d35Cc6634C0532925a3b844Bc9e7595f1e3E4 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ SMART CONTRACT ACCOUNT │ │
│ │ │ │
│ │ - Controlled by code (smart contract) │ │
│ │ - Has executable code │ │
│ │ - Has storage │ │
│ │ - Can hold ETH and tokens │ │
│ │ - Can be called by EOAs or other contracts │ │
│ │ │ │
│ │ Address: 0x... (created via CREATE/CREATE2) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Both types have: balance, nonce, codeHash, storageRoot │
│ │
└─────────────────────────────────────────────────────────────────┘

Understanding the full journey of a transaction — from wallet to finalized block — is the single best way to show end-to-end understanding in an interview. Here is the Ethereum (post-Merge) flow.

┌─────────────────────────────────────────────────────────────────┐
│ TX → BLOCK LIFECYCLE (Ethereum, post-Merge) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Wallet │───▶│ Mempool │───▶│ Block Proposal │ │
│ │ dApp │ │(txpool) │ │ (CL + EL) │ │
│ └─────────┘ └────┬─────┘ └────────┬─────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ Propagation │ │ Execution │ │
│ │ (devp2p) │ │ (EVM, state │ │
│ │ │ │ root change) │ │
│ └──────────────┘ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Broadcast block │ │
│ │ + import by all │──────────────▶│
│ │ nodes │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Finality (Casper │ │
│ │ FFG, ~2 epochs) │ │
│ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
StepWhat happensWhere
1. Submissioneth_sendRawTransaction — node checks signature, nonce, balance, gas, EIP-155 chain idRPC layer → txpool
2. Mempool entryTx lands in txpool_pending (or txpool_queued if nonce-gapped); relayed to peers via devp2p gossiptxpool, P2P
3. Block buildingThe consensus client picks the next proposer; the EL builds the block payload (ordered txs, execution) and hands it to the CL via the Engine APIEngine API (engine_forkchoiceUpdatedV3, engine_getPayloadV3)
4. ExecutionEVM runs each tx: state transitions, gas metering, logs; per-tx receipts are producedEVM / state trie
5. State rootAll state changes collapse into the world-state stateRoot committed in the new headerPatricia-Merkle trie (ch28)
6. Broadcast/importThe CL-wide new block is gossiped; every other node validates (header, execution, state root) and imports itP2P, block validation
7. FinalityCasper FFG finalizes the block once two epochs of attestations reference it (~12.8 min); before that it is only justified and can be reorgedConsensus layer

Interview talking point: “A transaction is included in a block after step 3, executed in step 4, canonical-but-reorgable after step 6, and final after step 7. When someone says ‘my tx is pending forever’, I check the txpool first (is it gossiping?), then gas/nonce, then whether the node is synced.”

Different ecosystems move a tx to a block differently — never generalize Ethereum specifics to other chains:

ProtocolMempoolWho builds the blockFinality
Ethereumtxpool (gas-price ordered)PoS proposer (CL selects, EL executes)Casper FFG — final after ~2 epochs (~12.8 min)
Bitcoinmempool (fee-rate ordered)Miner solves PoWProbabilistic — ~6 confirmations (~1 h) convention
Cosmos (CometBFT)mempoolRound-robin proposer per heightInstant upon commit — 2/3+ precommits; reorgs possible only in rare pegged rounds
SolanaTPU ingest queueLeader schedule (PoH)Finalized after ~2 slots + confirmation (~a few hundred ms)
PolkadottxpoolBABE slot producer for the relay chainGRANDPA — finalizes in batches with authority-set signatures

QuestionAnswer
What is The Merge?Transition from PoW to PoS on Ethereum
What are execution vs consensus clients?Execution handles transactions/EVM; consensus handles PoS
What is gas in Ethereum?Unit of computation for transaction fees
What is EIP-1559?London upgrade that burns base fees
Walk me through a transaction’s lifecycleSee 6.8: submit → mempool → proposal → execute → state root → broadcast → finality

  • Ethereum is the leading smart contract platform
  • Uses dual-client architecture (execution + consensus)
  • Multiple client implementations exist for diversity
  • Gas fees are paid in ETH (Gwei)
  • Post-Merge uses Proof of Stake

In Chapter 7: Geth Client - Setup & Configuration, we’ll dive into the most popular Ethereum client - Geth.


Last Updated: 2026-02-20