From 7943430749a22e6f26aa16ca2c48e97e9277998f Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Wed, 4 May 2016 15:54:19 -0400 Subject: Initial commit --- main.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..bfe2d4b --- /dev/null +++ b/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "flag" + "fmt" + "log" + "os" + "runtime/pprof" +) + +type Prover struct { + Merkle +} + +func NewProver(height int64, fname string, mtype string) *Prover { + m := NewMerkle(mtype, height, fname) + return &Prover{m} +} + +func main() { + height := flag.Int64("height", 0, "number of nodes is 2 ** height - 1") + fname := flag.String("db", "test.db", "filename for the database") + mtype := flag.String("mtype", "bfs", "type of Merkle tree (bfs or post)") + prof := flag.String("prof", "prof.prof", "filename for profile information") + flag.Parse() + + f, err := os.Create(*prof) + if err != nil { + log.Fatal(err) + } + pprof.StartCPUProfile(f) + defer pprof.StopCPUProfile() + + p := NewProver(*height, *fname, *mtype) + root := p.Build() + fmt.Println(root) + id := p.Size() / 2 + proof := p.Proof(id) + fmt.Println(verify(id, proof)) +} -- cgit v1.2.3-70-g09d2