A stream that generates a merkle tree based on the incoming data.
Project description
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:
The Dat Protocol: Merkle Tree
The Dat Protocol: Merkle Tree Stream
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc075c053e57fd6c585eb784f283fa3813849b9042ebff887bea59ae765b722d |
|
MD5 | 482af6bdb1817a0d4a5c9cc79fefe93c |
|
BLAKE2b-256 | c1df07dec5619bcc6eedfb546d52b30ba92208edf0ee0477a2eb2a17f6909b16 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50549e86bf0f13b1693822c365fa4a16d4bbc3662eb1974823d656b44090edd1 |
|
MD5 | 19ce6f64cb42009c01f8ed3730c518b3 |
|
BLAKE2b-256 | 919e024c2faf04db9b23bb034a4f26a2c88ec297038f953bca01321d5fbc682f |