This commit implements 'prospective leaf hashing' -- computing what the hash of a sparse Merkle tree leaf *would* be for a key-value insertion without actually performing that insertion. For SimpleSmt, this is trivial, since the leaf hash and its payload are the same. For the full Smt, the new leaf payload (and thus, its hash) depend on the existing payload in that leaf, making the prospective hash logic a combination of the normal insertion logic and the normal hash logic. But because we're only interested in the hash and not the intermediate value, we can skip allocations and sorts for the payload itself. |
||
---|---|---|
.. | ||
dsa | ||
hash | ||
merkle | ||
rand | ||
utils | ||
lib.rs | ||
main.rs |