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 hashes)
Built Distribution
eth_mpt-0.2.0-py3-none-any.whl
(12.4 kB
view hashes)