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
Release files for eth-mpt 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eth_mpt-0.2.0.tar.gz | 10.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eth_mpt-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.4 kB
Release files / eth_mpt-0.2.0.tar.gz
| Download URL | eth_mpt-0.2.0.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
387af0775cd9509cfe863b11dbe7115185fcddf2783d7a72fef0377f6def866e
|
|
BLAKE2b-256 checksum How to use checksums |
093dd9b6056f84c67a0bd57702ef3e0d1b4946bd41ecb18672481dae286b5d8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / eth_mpt-0.2.0-py3-none-any.whl
| Download URL | eth_mpt-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2da48228d807ee4c86b4194ff9416d5b3db8da319027662334ddb091fb3a9de0
|
|
BLAKE2b-256 checksum How to use checksums |
7df19e81d43dd3d195e0ee091ecafbe086be6792dee0065925d20554727a7c34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|