store: remove SimpleSMT/MerkleTree/Mmr add/with methods

This commit is contained in:
Augusto F. Hack
2023-04-20 22:42:42 +02:00
parent 8161477d6a
commit eb316f51bc
3 changed files with 62 additions and 140 deletions

View File

@@ -66,7 +66,8 @@ fn get_leaf_merkletree(c: &mut Criterion) {
let mtree_leaves: Vec<Word> = leaves.iter().map(|v| v.into()).collect();
let mtree = MerkleTree::new(mtree_leaves.clone()).unwrap();
let store = MerkleStore::new().with_merkle_tree(mtree_leaves).unwrap();
let mut store = MerkleStore::new();
store.extend(mtree.inner_nodes());
let depth = mtree.depth();
let root = mtree.root();
let size_u64 = size as u64;
@@ -108,9 +109,8 @@ fn get_leaf_simplesmt(c: &mut Criterion) {
.unwrap()
.with_leaves(smt_leaves.clone())
.unwrap();
let store = MerkleStore::new()
.with_sparse_merkle_tree(SimpleSmt::MAX_DEPTH, smt_leaves)
.unwrap();
let mut store = MerkleStore::new();
store.extend(smt.inner_nodes());
let depth = smt.depth();
let root = smt.root();
let size_u64 = size as u64;
@@ -178,7 +178,8 @@ fn get_node_merkletree(c: &mut Criterion) {
let mtree_leaves: Vec<Word> = leaves.iter().map(|v| v.into()).collect();
let mtree = MerkleTree::new(mtree_leaves.clone()).unwrap();
let store = MerkleStore::new().with_merkle_tree(mtree_leaves).unwrap();
let mut store = MerkleStore::new();
store.extend(mtree.inner_nodes());
let root = mtree.root();
let half_depth = mtree.depth() / 2;
let half_size = 2_u64.pow(half_depth as u32);
@@ -221,9 +222,8 @@ fn get_node_simplesmt(c: &mut Criterion) {
.unwrap()
.with_leaves(smt_leaves.clone())
.unwrap();
let store = MerkleStore::new()
.with_sparse_merkle_tree(SimpleSmt::MAX_DEPTH, smt_leaves)
.unwrap();
let mut store = MerkleStore::new();
store.extend(smt.inner_nodes());
let root = smt.root();
let half_depth = smt.depth() / 2;
let half_size = 2_u64.pow(half_depth as u32);
@@ -258,7 +258,8 @@ fn get_leaf_path_merkletree(c: &mut Criterion) {
let mtree_leaves: Vec<Word> = leaves.iter().map(|v| v.into()).collect();
let mtree = MerkleTree::new(mtree_leaves.clone()).unwrap();
let store = MerkleStore::new().with_merkle_tree(mtree_leaves).unwrap();
let mut store = MerkleStore::new();
store.extend(mtree.inner_nodes());
let depth = mtree.depth();
let root = mtree.root();
let size_u64 = size as u64;
@@ -300,9 +301,8 @@ fn get_leaf_path_simplesmt(c: &mut Criterion) {
.unwrap()
.with_leaves(smt_leaves.clone())
.unwrap();
let store = MerkleStore::new()
.with_sparse_merkle_tree(SimpleSmt::MAX_DEPTH, smt_leaves)
.unwrap();
let mut store = MerkleStore::new();
store.extend(smt.inner_nodes());
let depth = smt.depth();
let root = smt.root();
let size_u64 = size as u64;
@@ -347,10 +347,13 @@ fn new(c: &mut Criterion) {
// This could be done with `bench_with_input`, however to remove variables while comparing
// with MerkleTree it is using `iter_batched`
group.bench_function(BenchmarkId::new("MerkleStore::with_merkle_tree", size), |b| {
group.bench_function(BenchmarkId::new("MerkleStore::extend::MerkleTree", size), |b| {
b.iter_batched(
|| leaves.iter().map(|v| v.into()).collect::<Vec<Word>>(),
|l| black_box(MerkleStore::new().with_merkle_tree(l)),
|l| {
let mtree = MerkleTree::new(l).unwrap();
black_box(MerkleStore::new().extend(mtree.inner_nodes()));
},
BatchSize::SmallInput,
)
});
@@ -369,7 +372,7 @@ fn new(c: &mut Criterion) {
)
});
group.bench_function(BenchmarkId::new("MerkleStore::with_sparse_merkle_tree", size), |b| {
group.bench_function(BenchmarkId::new("MerkleStore::extend::SimpleSmt", size), |b| {
b.iter_batched(
|| {
leaves
@@ -378,7 +381,10 @@ fn new(c: &mut Criterion) {
.map(|(c, v)| (c.try_into().unwrap(), v.into()))
.collect::<Vec<(u64, Word)>>()
},
|l| black_box(MerkleStore::new().with_sparse_merkle_tree(SimpleSmt::MAX_DEPTH, l)),
|l| {
let smt = SimpleSmt::new(SimpleSmt::MAX_DEPTH).unwrap().with_leaves(l).unwrap();
black_box(MerkleStore::new().extend(smt.inner_nodes()));
},
BatchSize::SmallInput,
)
});
@@ -397,7 +403,8 @@ fn update_leaf_merkletree(c: &mut Criterion) {
let mtree_leaves: Vec<Word> = leaves.iter().map(|v| v.into()).collect();
let mut mtree = MerkleTree::new(mtree_leaves.clone()).unwrap();
let mut store = MerkleStore::new().with_merkle_tree(mtree_leaves).unwrap();
let mut store = MerkleStore::new();
store.extend(mtree.inner_nodes());
let depth = mtree.depth();
let root = mtree.root();
let size_u64 = size as u64;
@@ -446,9 +453,8 @@ fn update_leaf_simplesmt(c: &mut Criterion) {
.unwrap()
.with_leaves(smt_leaves.clone())
.unwrap();
let mut store = MerkleStore::new()
.with_sparse_merkle_tree(SimpleSmt::MAX_DEPTH, smt_leaves)
.unwrap();
let mut store = MerkleStore::new();
store.extend(smt.inner_nodes());
let depth = smt.depth();
let root = smt.root();
let size_u64 = size as u64;