#ethereum #hash #partial #tries #node #branch #leave

nightly eth_trie_utils

Types and utility functions for building/working with partial Ethereum tries

9 releases (5 breaking)

0.6.0 Apr 20, 2023
0.5.0 Mar 27, 2023
0.4.1 Dec 16, 2022
0.4.0 Oct 31, 2022
0.1.0 Oct 5, 2022

#22 in #leave

39 downloads per month

MIT/Apache

130KB
3K SLoC

Crate Docs

Ethereum Trie Utils

Currently a WIP and not the most performant.

Types and functions to work with Ethereum partial tries, which are identical to the tries described in the Ethereum yellow paper with the exception that nodes that we do not care about are replaced with Hash nodes. A Hash node just contains the merkle hash of the node it replaces.

As a concrete example, we may only care about the storage touched by a given txn. If we wanted to generate a PartialTrie for this, we would include the minimum number of nodes needed such that all of the storage addresses involved (leaves) are included in the partial trie. Since we may need to include Branch nodes, branch children that are not relevant for any of the storage of the txn are replaced with Hash nodes.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~1.5–8.5MB
~51K SLoC