A simlpe Merkle Patricia Trie implementation
Project description
Modified Merkle Paticia Trie
MPT is the data structure used in Ethereum as a cryptographically authenticated key-value data storage.
This library is a Python implementation of Modified Merkle Patrica Trie with a very simple interface.
Example
storage = {}
trie = MerklePatriciaTrie(storage)
trie.update(b'do', b'verb')
trie.update(b'dog', b'puppy')
trie.update(b'doge', b'coin')
trie.update(b'horse', b'stallion')
old_root = trie.root()
old_root_hash = trie.root_hash()
print("Root hash is {}".format(old_root_hash.hex()))
trie.delete(b'doge')
print("New root hash is {}".format(trie.root_hash().hex()))
trie_from_old_hash = MerklePatriciaTrie(storage, root=old_root)
print(trie_from_old_hash.get(b'doge'))
try:
print(trie.get(b'doge'))
except KeyError:
print('Not accessible in a new trie.')
Installing
Install and update using pip:
pip install -U eth_mpt
Documentation
Documentation can be found on readthedocs.
Contributing
All the contributors are welcome. If you can make this library better, don't hesitate to :)
Testing
python -m unittest
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
eth_mpt-0.2.0.tar.gz
(10.0 kB
view details)
Built Distribution
eth_mpt-0.2.0-py3-none-any.whl
(12.4 kB
view details)
File details
Details for the file eth_mpt-0.2.0.tar.gz
.
File metadata
- Download URL: eth_mpt-0.2.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 387af0775cd9509cfe863b11dbe7115185fcddf2783d7a72fef0377f6def866e |
|
MD5 | b19c9878eac2ab4b7ff9c83d970423bf |
|
BLAKE2b-256 | 093dd9b6056f84c67a0bd57702ef3e0d1b4946bd41ecb18672481dae286b5d8c |
File details
Details for the file eth_mpt-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: eth_mpt-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2da48228d807ee4c86b4194ff9416d5b3db8da319027662334ddb091fb3a9de0 |
|
MD5 | db10ec0887a93b0979e8bf14cb6171c3 |
|
BLAKE2b-256 | 7df19e81d43dd3d195e0ee091ecafbe086be6792dee0065925d20554727a7c34 |