6 Commits

Author SHA1 Message Date
jjy 09092d0039 Merge pull request #13 from nervosnetwork/release-v0.3.2
Release v0.3.2
2021-08-23 19:54:10 +08:00
jjy caa2a4fdce chore: upgrade version to v0.3.2 2021-08-23 19:47:57 +08:00
jjy f0925ef6bd fix: fix warning messages 2021-08-23 19:47:39 +08:00
jjy 13d50d12d9 Merge pull request #11 from darwinia-network/main
Public `helper`
2021-07-15 16:52:40 +08:00
Xavier Lau b16216f90e Public helper 2021-06-23 19:39:40 +08:00
jjy 9f9a95c73e Update README.md 2021-01-21 15:04:52 +08:00
5 changed files with 14 additions and 11 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "ckb-merkle-mountain-range"
version = "0.3.1"
version = "0.3.2"
authors = ["Nervos Core Dev <dev@nervos.org>"]
edition = "2018"
license = "MIT"
+1 -1
View File
@@ -38,7 +38,7 @@ For example, we insert a leaf to the example MMR:
3. insert parent node to position `20`.
4. the node `20` also has a left sibling `17`, calculate parent node: `merge(mmr[17], mmr[20])`.
5. insert new node to next position `21`.
6. the node `20` have no left sibling, complete the insertion.
6. the node `21` have no left sibling, complete the insertion.
Example MMR after insertion of a new leaf:
+10 -8
View File
@@ -1,7 +1,7 @@
#[macro_use]
extern crate criterion;
use criterion::Criterion;
use criterion::{BenchmarkId, Criterion};
use bytes::Bytes;
use ckb_merkle_mountain_range::{util::MemStore, Error, MMRStore, Merge, Result, MMR};
@@ -53,13 +53,15 @@ fn prepare_mmr(count: u32) -> (u64, MemStore<NumberHash>, Vec<u64>) {
}
fn bench(c: &mut Criterion) {
c.bench_function_over_inputs(
"MMR insert",
|b, &&size| {
b.iter(|| prepare_mmr(size));
},
&[10_000, 100_000, 100_0000],
);
{
let mut group = c.benchmark_group("MMR insertion");
let inputs = [10_000, 100_000, 100_0000];
for input in inputs.iter() {
group.bench_with_input(BenchmarkId::new("times", input), &input, |b, &&size| {
b.iter(|| prepare_mmr(size));
});
}
}
c.bench_function("MMR gen proof", |b| {
let (mmr_size, store, positions) = prepare_mmr(100_0000);
+1 -1
View File
@@ -1,7 +1,7 @@
#![cfg_attr(not(feature = "std"), no_std)]
mod error;
mod helper;
pub mod helper;
mod merge;
mod mmr;
mod mmr_store;
+1
View File
@@ -14,6 +14,7 @@ use crate::{Error, Merge, Result};
use core::fmt::Debug;
use core::marker::PhantomData;
#[allow(clippy::upper_case_acronyms)]
pub struct MMR<T, M, S: MMRStore<T>> {
mmr_size: u64,
batch: MMRBatch<T, S>,