Giter VIP home page Giter VIP logo

go-merkletree's Introduction

Go-MerkleTree

A simple implementation of Merkle Tree in Go.

Takes an array of strings as input and returns the Merkle root of the tree.

How to run

  • Clone the repo

    git clone [email protected]:dafaqdhruv/Go-MerkleTree.git && cd Go-MerkleTree
  • Build executable

    go build
  • Run with input

    ./merkleTree hello this is a merkle tree

    Expected output

    Root hash for the input string is
    c393dac244e2441a310dc3a8ca09b2859e3155e572f5f8074db7f35ec6a5eaaa
    

Test merkle package

  • Inside repository root, switch to merkle directory

    cd merkle
  • Run test to check if package works correctly

    go test

The test builds a Merkle tree using the following array as input:

["hello", "this", "is", "a", "merkle", "tree"]

The resulting Merkle tree is shown below:

graph
A(c393...eaaa) --> B(c06c...f5cd)
A --> C(487e...d094)
B --> D(8815...0d52)
B --> E(1bc4...70e2)
D --> G(2cf2...9824)  --> M(hello)
D --> H(1eb7...8408)  --> N(this)
E --> I(fa51...57f6)  --> O(is)
E --> J(ca97...48bb)  --> P(a)
C --> K(7975...5590)  --> Q(merkle)
C --> L(dc9c...0622)  --> R(tree)
Loading

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.