• A HashTree is a representation of a Merkle Tree where each of the leaf nodes contain a hash, and each parent node’s hash is constructed from the concatenation of its child hashes. This allows the HashTree to have the property that the hash of the root can be used to verify the integrity of any of the inner or leaf nodes.
  • Node 🔒
  • The total HashTree including intermediate nodes is not required to persist the state of a HashTree. From just the height, children_per_node and the set of (label,hash) pairs where the hash is not 0 is required to fully reconstruct the tree. This saves space on disk and reduces the serialization time. This is important because the longer we spend syncing the tree to disk the larger the opportunity is for the tree to become out of sync.
  • __Visitor 🔒




Type Definitions

  • Hash 🔒
    An alias for hashes stored in the nodes. For leaf nodes, this will be the hash of the credential metadata. For inner nodes, this will be the hash of all child node hashes.
  • An alias for a vector of sibling hashes for a particular node, the node itself will be None, whereas its siblings will be Some(Hash).