Great article! Just wanted to provide my own tl;dr below

MPT Ingredients: Merkle Tree + Prefix Tree + Custom Modification

MPT Nodes: Leaf nodes + branch nodes + extension nodes

State root: 256 bit hash of root

Geth KV Store: levelDB

Parity KV Store: rocksDB


1. Transaction Trie - mapping from transction hash → raw transactions

2. Transaction Reciept Trie - mapping from transaction hash → transaction execution Metadata

3. World State Trie - mapping from account address (including contracts) to account data

4. Account Storage Trie - mapping from integers to integers specific to an account/contract

Per the answer at [1], I'm still trying to understand if it's one transaction trie per block or one for the entirety of the state.

[1] https://ethereum.stackexchange.com/questions/15142/how-many-tries-does-ethereum-have,