pokt-network / gomerkle

Golang Merkle tree implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gomerkle

Build Status Coverage Status GoDoc Go Report Card

Golang Merkle tree implementation

Usage

package main

import (
    "crypto/sha256"
    "fmt"

    "github.com/pokt-network/gomerkle"
)

func main() {
    data := [][]byte{
        []byte("Buzz"),
        []byte("Lenny"),
        []byte("Squeeze"),
        []byte("Wheezy"),
        []byte("Jessie"),
        []byte("Stretch"),
        []byte("Buster"),
    }
    tree := gomerkle.NewTree(sha256.New())
    tree.AddData(data...)

    err := tree.Generate()
    if err != nil {
        panic(err)
    }

    // Proof for Jessie
    proof := tree.GetProof(4)
    leaf := tree.GetLeaf(4)
    fmt.Println(tree.VerifyProof(proof, tree.Root(), leaf))
}

About

Golang Merkle tree implementation

License:MIT License


Languages

Language:Go 100.0%