Module penumbra_tct::internal::complete

source ·
Available on crate feature internal only.
Expand description

Complete things are sparse representations of only the data that was inserted using Witness::Keep, with the data that was inserted using Witness::Forget being pruned eagerly.

The structure of a single Tier contains eight levels of Nodes, the bottom-most level of which contains Leafs. Alternatively, a tier can be a summarized Hash of what its contents would be, and contain nothing at all besides this hash.

In the internal levels of a complete::Tier are eight levels of complete::Nodes, each of which may have between one and four children. If a node does not have a given child, then it instead stores the hash that child used to have, when it existed. Empty nodes (all of whose children would be hashes) are unrepresentable, and instead their own hash is immediately stored in their parent node when their last child is forgotten.

At the bottom of the bottom-most tier (perhaps at the bottom of multiple Tiers), there are Items, each of which is merely a wrapper for a single Commitment.

Structs§

  • A witnessed hash of a commitment at the true leaf of a complete tree.
  • A complete, witnessed leaf of a tree.
  • A complete sparse node in a tree, storing only the witnessed subtrees.
  • A complete tier of the tiered commitment tree, being an 8-deep sparse quad-tree.
  • A complete top-level tier of the tiered commitment tree, being an 8-deep sparse quad-tree.

Traits§

  • Marker trait for a type which is the frozen completion of some Focused insertion point.
  • Forget about the authentication path to a given index, when forgetting can turn the entirety of Self into a hash.

Type Aliases§

  • An eight-deep complete tree with the given item at each leaf.