diff --git a/eth2/utils/cached_tree_hash/src/btree_overlay.rs b/eth2/utils/cached_tree_hash/src/btree_overlay.rs index a96df769c..5692a4391 100644 --- a/eth2/utils/cached_tree_hash/src/btree_overlay.rs +++ b/eth2/utils/cached_tree_hash/src/btree_overlay.rs @@ -2,8 +2,8 @@ use super::*; /// A schema defining a binary tree over a `TreeHashCache`. /// -/// This structure is used for succinct storage, run-time functionality is gained by converting the -/// schema into a `BTreeOverlay`. +/// This structure is used for succinct storage; run-time functionality is gained by converting a +/// `BTreeSchema` into a `BTreeOverlay`. #[derive(Debug, PartialEq, Clone)] pub struct BTreeSchema { /// The depth of a schema defines how far it is nested within other fixed-length items. @@ -48,8 +48,8 @@ pub enum LeafNode { Padding, } -/// Instantiated from a `BTreeSchema`, allows for interpreting some chunks of a `TreeHashCache` as -/// a perfect binary tree. +/// Instantiated from a `BTreeSchema`, a `BTreeOverlay` allows for interpreting some +/// non-consecutive chunks of a `TreeHashCache` as a perfect binary tree. /// /// The primary purpose of this struct is to map from binary tree "nodes" to `TreeHashCache` /// "chunks". Each tree has nodes `0..n` where `n` is the number of nodes and `0` is the root node. diff --git a/eth2/utils/cached_tree_hash/src/lib.rs b/eth2/utils/cached_tree_hash/src/lib.rs index 21fa786e4..8bc26aa79 100644 --- a/eth2/utils/cached_tree_hash/src/lib.rs +++ b/eth2/utils/cached_tree_hash/src/lib.rs @@ -1,8 +1,8 @@ //! Performs cached merkle-hashing adhering to the Ethereum 2.0 specification defined //! [here](https://github.com/ethereum/eth2.0-specs/blob/v0.5.1/specs/simple-serialize.md#merkleization). //! -//! Caching allows for reduced hashing when some object has only been partially modified. This -//! allows for significant CPU-time savings (at the cost of additional storage). For example, +//! Caching allows for reduced hashing when some object has only been partially modified, which +//! consumes less CPU-time at the cost of additional storage. For example, //! determining the root of a list of 1024 items with a single modification has been observed to //! run in 1/25th of the time of a full merkle hash. //! @@ -61,8 +61,8 @@ pub trait CachedTreeHash: TreeHash { fn update_tree_hash_cache(&self, cache: &mut TreeHashCache) -> Result<(), Error>; } -/// Implements `CachedTreeHash` on `$type` as a fixed-length tree-hash vector of the ssz encoding -/// of `$type`. +/// Implements `CachedTreeHash` on `$type`, where `$type` is a fixed-length vector and each item in +/// the `$type` is encoded as bytes using `ssz_encode`. #[macro_export] macro_rules! cached_tree_hash_ssz_encoding_as_vector { ($type: ident, $num_bytes: expr) => { @@ -95,8 +95,8 @@ macro_rules! cached_tree_hash_ssz_encoding_as_vector { }; } -/// Implements `CachedTreeHash` on `$type` as a variable-length tree-hash list of the result of -/// calling `.as_bytes()` on `$type`. +/// Implements `CachedTreeHash` on `$type`, where `$type` is a variable-length list and each item +/// in `$type` is encoded as bytes by calling `item.to_bytes()`. #[macro_export] macro_rules! cached_tree_hash_bytes_as_list { ($type: ident) => {