Blocks and Chains
How blocks link.
Blocks and Chains is a free Web3 & DApp Development Fundamentals lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Web3 & DApp Development Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
What Is a Block?
A block is the fundamental container in a blockchain. It bundles together a set of validated transactions along with metadata that ties it to the rest of the chain.
Each block has two main parts:
- Header — metadata (timestamp, hashes, nonce)
- Body — the list of transactions
Anatomy of a Block Header
The header is small but powerful. A typical Ethereum-style header includes:
previousHash— hash of the prior blocktimestamp— when the block was createdmerkleRoot— fingerprint of all transactionsnonce— value used in consensus
The header is what gets hashed to identify the block.
block Header {
previousHash: 0x9f1c...a3
timestamp: 1717000000
merkleRoot: 0x4be2...07
nonce: 42891
}How Blocks Link Together
Every block stores the hash of the previous block. This single field is what turns a pile of blocks into a chain.
Because each block points backward, the blocks form an ordered, append-only sequence reaching all the way back to the very first block.
Block 0 (Genesis)
| hash = 0xAAA
v
Block 1 prevHash = 0xAAA hash = 0xBBB
|
v
Block 2 prevHash = 0xBBB hash = 0xCCCThe Genesis Block
The genesis block is the first block in any blockchain. It is special because it has no parent — its previousHash is typically all zeros.
Every other block can be traced back to genesis, which acts as the shared root of trust for the entire network.
Genesis = {
previousHash: 0x0000000000000000
timestamp: 1438269973
transactions: []
}Why the Backward Link Matters
The backward link makes tampering obvious. If someone alters a transaction in an old block, that block's hash changes.
But the next block stored the old hash in its previousHash field, so the link breaks. The mismatch is instantly detectable.
Chains Are Append-Only
Blockchains are append-only data structures. You can add new blocks to the tip, but you cannot insert or delete blocks in the middle without breaking every link that follows.
This property is the foundation of blockchain immutability.
Block Height
Block height is the number of blocks between a given block and the genesis block. Genesis is height 0, the next block is height 1, and so on.
Height gives every block a clear position and lets the network agree on which chain is longest.
height 0 -> Genesis
height 1 -> Block 1
height 2 -> Block 2
...
height N -> latest blockTransactions Inside a Block
The block body holds an ordered list of transactions. Order matters: it determines the final state after the block is applied.
Once a block is finalized, the transactions it contains — and their order — are fixed forever.
Block 12 body:
tx[0]: Alice -> Bob (5 ETH)
tx[1]: Bob -> Carol (2 ETH)
tx[2]: Carol -> Dave (1 ETH)Block Size and Limits
Blocks cannot grow without limit. Each chain sets a cap — Bitcoin uses a byte limit, while Ethereum caps the total gas a block may consume.
These limits keep blocks small enough to propagate quickly across the network.
Identifying a Block by Its Hash
A block's identity is its hash — the output of running its header through a cryptographic hash function.
Change any field in the header and the hash changes completely. That is why hashes act as tamper-evident fingerprints for blocks.
blockHash = sha256(
previousHash + timestamp +
merkleRoot + nonce
)Putting It Together
A blockchain is simply a linked list of blocks where each link is a cryptographic hash of the prior block.
This combination of ordering, hashing, and append-only writes is what makes the chain trustworthy without any central authority.
Quick Check
Test your understanding of how blocks connect.
Recap: Blocks and Chains
You learned that:
- A block has a header (metadata) and a body (transactions)
- Blocks link by storing the previousHash
- The genesis block is the root with no parent
- Chains are append-only, making them immutable
- A block's identity is its hash
Next, we explore how Merkle Trees summarize all transactions efficiently.
Frequently asked questions
Is the “Blocks and Chains” lesson free?
Yes — the full text of “Blocks and Chains” is free to read here on the web, and the Web3 & DApp Development Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Web3 & DApp Development Fundamentals course, upgrade to CoddyKit PRO.
What will I learn in “Blocks and Chains”?
How blocks link. You practise Web3 & DApp Development Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Web3 & DApp Development Fundamentals?
No prior experience is required. Web3 & DApp Development Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Blocks and Chains” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Web3 & DApp Development Fundamentals lesson?
Yes. Every Web3 & DApp Development Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Blocks and Chains
- Merkle Trees
- Hashing in Blockchain
- Distributed Ledgers