Skip to main content

A stream that generates a merkle tree based on the incoming data.

Project description

Repository license PyPI package Travis CI result Documentation status Support badge

A stream that generates a merkle tree based on the incoming data

From The Dat Protocol:

A hash tree or merkle tree is a tree in which every leaf node is labelled with the hash of a data block and every non-leaf node is labelled with the cryptographic hash of the labels of its child nodes. Merkle trees in Dat are specialized flat trees that contain the content of the archives.

See the following for more:

A note on naming

For the purposes of uniformity and easy of discovery alongside the reference implementation, we use the same module name as merkle-tree-stream. This may cause confusion since it is not clear what exactly is referred to when using the term “stream” in the context of Python. To be clear, this module provides a Python iterator which appears to match the implementation and meaning of the reference implementation.

from hashlib import sha256
from merkle_tree_stream import MerkleTreeIterator


def leaf(node, roots=None):
    return sha256(node.data).digest()

def parent(first, second):
    sha256 = hashlib.sha256()
    sha256.update(first.data)
    sha256.update(second.data)
    return sha256.digest()

merkle_iter = MerkleTreeIterator(leaf=leaf, parent=parent)
merkle_iter.write('hello')
merkle_iter.write('hashed')
merkle_iter.write('world')

Documentation

Mirroring

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

merkle-tree-stream-0.0.1a2.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

merkle_tree_stream-0.0.1a2-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file merkle-tree-stream-0.0.1a2.tar.gz.

File metadata

  • Download URL: merkle-tree-stream-0.0.1a2.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.2

File hashes

Hashes for merkle-tree-stream-0.0.1a2.tar.gz
Algorithm Hash digest
SHA256 bc075c053e57fd6c585eb784f283fa3813849b9042ebff887bea59ae765b722d
MD5 482af6bdb1817a0d4a5c9cc79fefe93c
BLAKE2b-256 c1df07dec5619bcc6eedfb546d52b30ba92208edf0ee0477a2eb2a17f6909b16

See more details on using hashes here.

File details

Details for the file merkle_tree_stream-0.0.1a2-py3-none-any.whl.

File metadata

  • Download URL: merkle_tree_stream-0.0.1a2-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.2

File hashes

Hashes for merkle_tree_stream-0.0.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 50549e86bf0f13b1693822c365fa4a16d4bbc3662eb1974823d656b44090edd1
MD5 19ce6f64cb42009c01f8ed3730c518b3
BLAKE2b-256 919e024c2faf04db9b23bb034a4f26a2c88ec297038f953bca01321d5fbc682f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page