🌴
MerklePatriciaTrie
  • Introduction
  • Nodes
    • Leaf
    • Extension
    • Branch
    • Hash
  • Util
    • Nibble
    • Compact Encoding
  • Operations
    • Put
    • Get
    • Del
    • Hash
    • Proof
    • Commit
  • Storage
    • Pebble
    • MPT
  • Integration tests
  • Test Coverage
  • Roadmap
Powered by GitBook
On this page
  1. Operations

Get

The Get operation in the Merkle Patricia Trie retrieves the value associated with a given key. Although the primary goal is to fetch a value, the retrieval process requires a systematic traversal of the trie structure based on the given key.

🪜 Steps to Retrieve a Value:

  1. Convert Key to Nibble Sequence: First and foremost, transform the byte key into a sequence of nibbles. This will guide the traversal through the trie.

  2. Fetch the Current Root: Begin the retrieval process from the current root of the trie if not exist.

  3. Initiate Traversal: Using the nibble sequence, navigate through the trie to locate the desired value.

  4. Handle HashNodes:

    • If you encounter a HashNode during traversal:

      • Load the actual node using its hash.

      • Continue the retrieval process with the loaded node.

  5. Encounter Branch Node:

    • If the current node is a branch node:

      • Use the next nibble in the sequence to decide which child to continue traversal with.

      • If you've reached the end of the nibble sequence and the current branch node has a value, then you've found the desired value. Otherwise, continue traversal.

  6. Encounter Leaf Node:

    • If the current node is a leaf node:

      • Compare its key with the remaining nibble sequence.

      • If they match, you've found the value. If not, the key doesn't exist in the trie.

  7. Encounter Extension Node:

    • If the current node is an extension node:

      • Check if the extension's nibble sequence matches the beginning of the remaining nibble sequence for the key.

      • If it matches, continue traversal with the next segment of the nibble sequence. Otherwise, the key doesn't exist in the trie.

  8. Value Not Found:

    • If you reach the end of the nibble sequence without finding a matching leaf node or without exhausting the entire key, the key doesn't exist in the trie.

PreviousPutNextDel

Last updated 1 year ago