Skip to content
Merkle Mountain Range in python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
mmr
tests
.gitignore
README.md
setup.py bump version 0.0.4 Jul 6, 2019

README.md

MMR.py

Merkle Mountain Range

Install

pip3 install -U git+https://github.com/jjyr/mmr.py.git

Example

from mmr import MMR

def test_mmr():
    def serialize(i):
        return i.to_bytes(4, 'little')

    mmr = MMR()
    # push 0..11 into MMR, and record MMR positions
    positions = [mmr.add(serialize(i)) for i in range(0, 11)]
    merkle_root = mmr.get_root()
    # proof
    elem = 5
    pos = positions[elem]
    # generate proof for 5
    proof = mmr.gen_proof(pos)
    # verify proof
    result = proof.verify(root=merkle_root, pos=pos,
                          elem=serialize(elem))
    assert(result)
    print("Ok")

test_mmr()

See tests to learn more.

License

MIT

You can’t perform that action at this time.