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
βͺ Tries :
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,