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

mpt_trie

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

7 unstable releases (3 breaking)

0.4.1 Jul 15, 2024
0.4.0 Jul 15, 2024
0.3.0 Jun 12, 2024
0.2.1 Apr 19, 2024
0.1.0 Feb 21, 2024

#12 in #tries


Used in 3 crates (2 directly)

MIT/Apache

220KB
5K 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

~4–9MB
~98K SLoC